Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14118

Re: DCG restrictions on the left-hand side [Novacore]

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Re: DCG restrictions on the left-hand side [Novacore]
Date 2024-07-31 07:55 +0200
Message-ID <v8cjk1$j8js$1@solani.org> (permalink)
References <v8bc1u$indc$1@solani.org> <v8bc91$inkj$1@solani.org> <v8bccd$inkj$2@solani.org>

Show all headers | View raw


Although SWI-Prolog implements a lot of checks.
It still allows this one:

?- a-->b.
ERROR: Unknown procedure: (-->)/2

?- assertz((a-->b)).
true.

?- a-->b.
true.

Scryer Prolog managed to prevent this, in that
the assertz/1 throws an error.

Think will finally adopt this behaviour to
prevent the end-user from accidentially

fiddling with (-->)/2.

Mild Shock schrieb:
> 
> This was discussed here:
> 
> Definite Clause Grammars Harmonization Proposal
> Last edit jschimpf? October 20, 2016, at 12:42 AM
> https://eclipseclp.org/wiki/Prolog/DCG
> 
> Not sure why Scryer Prolog doesn't implement it.
> 
> Mild Shock schrieb:
>>
>> In Novacore we are lucky, its a side effect of
>> phrase translating the head and a multi-file check:
>>
>> ?- [user].
>> p;q --> r.
>> Fehler: Kann Prädikat ;/2 nicht umdefinieren, nicht als Mehrdateien 
>> markiert.
>>
>> But might work out differently if a DCG is expanded
>> and asserted. Ok, its actually not so bad:
>>
>> ?- expand_term((p;q --> r), X), assertz(X).
>> Fehler: Kann Prädikat ;/2 nicht aktualisieren.
>>      user auf 1
>>
>>
>> Mild Shock schrieb:
>>> Guess how many newer Prolog systems allow this here:
>>>
>>> ?- [user].
>>> p;q --> r.
>>>     true.
>>>
>>> On the other hand SWI-Prolog disallows it:
>>>
>>> ?- [user].
>>> p;q --> r.
>>>
>>> ERROR: user://1:29:
>>> ERROR:    No permission to define dcg_nonterminal `p;q'
>>
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:39 +0200
  Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:43 +0200
    Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:45 +0200
      Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-31 07:55 +0200
        Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-31 08:07 +0200
  post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-10 20:20 +0200
    Re: post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-10 20:33 +0200
      Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:02 +0200
        Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:05 +0200
          Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:16 +0200
            Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:25 +0200
              Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 14:46 +0200
  A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 11:18 +0200
    Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 11:23 +0200
      Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 13:08 +0200

csiph-web