Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14627
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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