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


Groups > comp.lang.prolog > #14627

More Cringe, even PEG is now better off than DCG (Was: gprolog not conforming by DCG miscarriage [ISO/IEC TS 13211-3:2025])

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject More Cringe, even PEG is now better off than DCG (Was: gprolog not conforming by DCG miscarriage [ISO/IEC TS 13211-3:2025])
Date 2025-07-09 03:41 +0200
Message-ID <104khcr$1vbsb$1@solani.org> (permalink)
References <102kofc$q82v$1@solani.org> <104jaeh$1umr9$1@solani.org> <104jl4a$1utdo$1@solani.org> <104kgor$1vbjs$1@solani.org>

Show all headers | View raw


Hi,

More cringe incoming:

Implementations conforming to this TS shall not
define or use a predicate !/2.
http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdraft-2023-08-14.pdf 


LoL

Guess what DCG gets almost rendered totally
useless without (\+)/3 and (!)/2. Especially
for efficient and intelligent parsing.

With (\+)/3 and (!)/2 its gets close to PEG:

Parsing expression grammar (PEG)
https://en.wikipedia.org/wiki/Parsing_expression_grammar

PEG doesn't shy away from Not-predicate: !e, here an example:

C     ← Begin N* End
Begin ← '(*'
End   ← '*)'
N     ← C / (!Begin !End .)

Homework: do it in Prolog.

Bye

P.S.: Check out gprolog, its very easy:

/* GNU Prolog 1.5.0 (64 bits) */
p --> q, !, r.
p --> q, !.

And then:

/* GNU Prolog 1.5.0 (64 bits) */
?- listing.
p(A, B) :-
	q(A, C), !,
	r(C, B).
p(A, B) :-
	q(A, C), !,
	C = B.

Mild Shock schrieb:
> Hi,
> 
> If I take this DCG miscarriage:
> 
> Implementations conforming to this TS shall
> not define or use a predicate (\+)/3.
> http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdraft-2023-08-14.pdf 
> 
> 
> Possibly the same as here, but who pays
> 98 CHF for such a nonsense?
> 
> ISO/IEC TS 13211-3:2025
> https://www.iso.org/standard/83635.html
> 
> I must believe gprolog is not conforming.
> 
> LoL
> 
> Bye
> 
> P.S.: You can check yourself, it fully supports (\+)/3:
> 
> /* GNU Prolog 1.5.0 (64 bits) */
> p --> \+ q, r.
> p --> \+ q.
> 
> And then:
> 
> /* GNU Prolog 1.5.0 (64 bits) */
> ?- listing.
> p(A, B) :-
>      \+ q(A, _),
>      r(A, B).
> p(A, B) :-
>      \+ q(A, _),
>      A = B.
> 
> Mild Shock schrieb:
>>  > If you have a suitable Prolog plugin,
>>  > you can do all kind of search,
>>
>> Currently the marketplace shows me only one Prolog
>> plugin, but it rather adresses gprolog than SWI-Prolog.
>> Strange I think there were more. But if plugins don’t
>>
>> get maintained they often become incompatible.
>> I didn’t try the below yet, seems to be new!
>>
>> https://plugins.jetbrains.com/plugin/20982-prologcode
>>
>> So only I Prolog tries to tap into a company like
>> JetBrains that has profit of at least 200 million USD
>> per year, with a growth of 5 - 7% per year.
>>
>> Prologers are all communists I guess.
>>
>> P.S.: The plugin seems to be from Switzerland.
>> But it wasn’t me! PrologCode is a plugin for IntelliJ
>> IDEA that provides support for the Prolog language.
>>
>> Specifically, it provides:
>>
>> Prolog syntax highlighting
>> Prolog code completion
>> Prolog code folding
>> Prolog code navigation
>>
>> Three different ways to run a GNU Prolog REPL
>> Real-time background syntax checking.
>>
>> Initially, this plugin was developed as part of
>> a project for the course “Programmation
>> logique” at HEIA-FR.
>>
>> https://www.heia-fr.ch/
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Wanna found an IDE business. Well the Editor
>>> is only the Tip of the Ice Berg. What gives
>>> you wings like red bull, is this:
>>>
>>> - Instant editing:
>>>    Files don’t really have a modified status,
>>>    they get directly written. Typically the MVC
>>>    is buffer based there. But for instant editing,
>>>    buffers are written when an application switch happens.
>>>
>>> - Local File Content History:
>>>    IntelliJ keeps a local file content history.
>>>    This compensates the dangers of instant editing.
>>>    Instant editing is very useful for tool interaction,
>>>    like interacting with a Prolog system. Through local
>>>    file content history I can view local changes and
>>>    undo them across IDE starts.
>>>
>>> - CVS Integration:
>>>    IntelliJ has CVS integration, like SVN, GIT, etc..
>>>    through their local history. You can freely choose
>>>    what to commit or not. And you can also receive
>>>    changes from a repo.
>>>
>>> - File System Operation Integration:
>>>    Local File Content History and CVS Integration are
>>>    in sync with refactoring. So when I move a file, this
>>>    is a move on the file system. But File Content History
>>>    and CVS don’t get confused by a move. The simply show it
>>>    in their history as well.
>>>
>>> - File Content Index:
>>>    The IDE also maintains a global text index, and
>>>    this text index gets notified by external changes and
>>>    internal changes. They pretty well have it always accurate,
>>>    including file moves, lengthy re-indexing of a whole
>>>    repository happens rarely.
>>>
>>> Mild Shock schrieb:
>>>> Hi,
>>>>
>>>> The average Prologer in 2025:
>>>>
>>>> Interview with an Emacs Enthusiast [Colorized]
>>>> https://www.youtube.com/watch?v=urcL86UpqZc
>>>>
>>>> What happens when a Prolog does a web server?
>>>>
>>>> You end up with the PiLLoW framework,
>>>> with nonsense such as html//1 and print_html/1.
>>>> This is the worst "milestone" ever in Prolog.
>>>>
>>>> https://cliplab.org/Software/pillow/pillow.html
>>>>
>>>> Bye
>>>>
>>>>
>>>
>>
> 

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


Thread

Interview with an Emacs Enthusiast [Colorized] Mild Shock <janburse@fastmail.fm> - 2025-06-14 23:10 +0200
  Does a Prologer know web 1.0 from web 2.0? (Was: Interview with an Emacs Enthusiast [Colorized]) Mild Shock <janburse@fastmail.fm> - 2025-06-14 23:11 +0200
    Help my website is dry, need hydration (Was: Does a Prologer know web 1.0 from web 2.0?) Mild Shock <janburse@fastmail.fm> - 2025-06-14 23:13 +0200
      French philosophy professor showed Orgmode (Was: Help my website is dry, need hydration) Mild Shock <janburse@fastmail.fm> - 2025-06-14 23:15 +0200
    Re: Does a Prologer know web 1.0 from web 2.0? (Was: Interview with an Emacs Enthusiast [Colorized]) Tristan Wibberley <tristan.wibberley+netnews2@alumni.manchester.ac.uk> - 2025-11-20 18:38 +0000
  Founding an IDE business / Red Bull gives you Wings (Was: Interview with an Emacs Enthusiast [Colorized]) Mild Shock <janburse@fastmail.fm> - 2025-07-08 16:37 +0200
    The plugin seems to be from Switzerland. But it wasn’t me! (Was: Founding an IDE business / Red Bull gives you Wings) Mild Shock <janburse@fastmail.fm> - 2025-07-08 19:39 +0200
      gprolog not conforming by DCG miscarriage [ISO/IEC TS 13211-3:2025] (Was: The plugin seems to be from Switzerland. But it wasn’t me!) Mild Shock <janburse@fastmail.fm> - 2025-07-09 03:31 +0200
        More Cringe, even PEG is now better off than DCG (Was: gprolog not conforming by DCG miscarriage [ISO/IEC TS 13211-3:2025]) Mild Shock <janburse@fastmail.fm> - 2025-07-09 03:41 +0200
          Haskell Lazy library(pio) has no problem (Was: More Cringe, even PEG is now better off than DCG) Mild Shock <janburse@fastmail.fm> - 2025-07-09 03:51 +0200

csiph-web