Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"It is easier to port a shell than a shell script." -- Larry Wall


devel / comp.lang.prolog / Re: The Programming Language Wars have just begun

SubjectAuthor
* The Programming Language Wars have just begunMostowski Collapse
`* Re: The Programming Language Wars have just begunMostowski Collapse
 `* Re: The Programming Language Wars have just begunJulio Di Egidio
  `* Re: The Programming Language Wars have just begunMostowski Collapse
   +* Re: The Programming Language Wars have just begunMostowski Collapse
   |+* Re: The Programming Language Wars have just begunMostowski Collapse
   ||`* Re: The Programming Language Wars have just begunMostowski Collapse
   || `- Re: The Programming Language Wars have just begunMostowski Collapse
   |`* Re: The Programming Language Wars have just begunMostowski Collapse
   | `* Re: The Programming Language Wars have just begunMostowski Collapse
   |  `* Re: The Programming Language Wars have just begunMostowski Collapse
   |   `* Re: The Programming Language Wars have just begunMostowski Collapse
   |    `* Re: The Programming Language Wars have just begunMostowski Collapse
   |     `- Re: The Programming Language Wars have just begunMostowski Collapse
   `* Re: The Programming Language Wars have just begunJulio Di Egidio
    `* Re: The Programming Language Wars have just begunMostowski Collapse
     `- Re: The Programming Language Wars have just begunMostowski Collapse

1
The Programming Language Wars have just begun

<sbqffa$pj2$1@solani.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=616&group=comp.lang.prolog#616

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: janburse@fastmail.fm (Mostowski Collapse)
Newsgroups: comp.lang.prolog
Subject: The Programming Language Wars have just begun
Date: Sat, 3 Jul 2021 21:57:30 +0200
Message-ID: <sbqffa$pj2$1@solani.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 3 Jul 2021 19:57:30 -0000 (UTC)
Injection-Info: solani.org;
logging-data="26210"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:60.0)
Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8
Cancel-Lock: sha1:uIerDBEBrDl0pVwzWJRLklZyXwk=
X-Mozilla-News-Host: news://news.solani.org:119
X-User-ID: eJwFwYEBwDAEBMCVlP9gnAj2H6F3tPOd5zg84HKHejVaC1EynluSGF56QiagHA99pVkWW2sw3O7nLj0q9QNPChWY
 by: Mostowski Collapse - Sat, 3 Jul 2021 19:57 UTC

I have the feeling the programming language wars
have just begun. For example:

a) Guido van Rossum was recently hired by Microsoft.

b) Stackoverflow gives Google a special platform:

Collectives now available to join:
Go Language
Google Cloud
https://stackoverflow.com/collectives

Time to say goodbye to stackoverflow. LoL

Re: The Programming Language Wars have just begun

<c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=632&group=comp.lang.prolog#632

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ad4:596b:: with SMTP id eq11mr18835371qvb.34.1625588688415;
Tue, 06 Jul 2021 09:24:48 -0700 (PDT)
X-Received: by 2002:a25:e0d5:: with SMTP id x204mr26823068ybg.390.1625588688268;
Tue, 06 Jul 2021 09:24:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 6 Jul 2021 09:24:48 -0700 (PDT)
In-Reply-To: <sbqffa$pj2$1@solani.org>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 06 Jul 2021 16:24:48 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mostowski Collapse - Tue, 6 Jul 2021 16:24 UTC

Which languages have lost the battle over time?

Clojure, Ruby, Go, Rust, Groovy, Kotlin?

LoL

https://redmonk.com/kfitzpatrick/2021/03/02/redmonk-top-20-languages-over-time-january-2021/

Mostowski Collapse schrieb am Samstag, 3. Juli 2021 um 21:57:32 UTC+2:
> I have the feeling the programming language wars
> have just begun. For example:
>
> a) Guido van Rossum was recently hired by Microsoft.
>
> b) Stackoverflow gives Google a special platform:
>
> Collectives now available to join:
> Go Language
> Google Cloud
> https://stackoverflow.com/collectives
>
> Time to say goodbye to stackoverflow. LoL

Re: The Programming Language Wars have just begun

<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=633&group=comp.lang.prolog#633

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:14e2:: with SMTP id k2mr2671001qvw.21.1625755617530;
Thu, 08 Jul 2021 07:46:57 -0700 (PDT)
X-Received: by 2002:a25:ea0f:: with SMTP id p15mr39448953ybd.475.1625755617360;
Thu, 08 Jul 2021 07:46:57 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 07:46:57 -0700 (PDT)
In-Reply-To: <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=93.41.99.203; posting-account=F3H0JAgAAADcYVukktnHx7hFG5stjWse
NNTP-Posting-Host: 93.41.99.203
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: julio@diegidio.name (Julio Di Egidio)
Injection-Date: Thu, 08 Jul 2021 14:46:57 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Julio Di Egidio - Thu, 8 Jul 2021 14:46 UTC

On Tuesday, 6 July 2021 at 18:24:49 UTC+2, burs...@gmail.com wrote:

> Which languages have lost the battle over time?

Not so much languages but technologies win or lose. E.g. Python is a cute idea in a substandard implementation: it would be just niche were it not for the pletora of working libraries and tools that have been made available, regardless of the underlying shortcomings, thanks also to Python's modularity.

> Clojure, Ruby, Go, Rust, Groovy, Kotlin?

And Prolog?? I grant Prolog the ultimate level of meta-programming, which is pretty much not part of the curriculum anymore, while so long to "programming in logic", which is the most common selling point: the logic is actually so limited that nothing serious, e.g. no runnable specifications, can actually be written *in* Prolog. Add to that , more importantly, that there is no serious implementation, indeed that the very ISO Prolog standard is not just unduly complicated but plain broken, so a conformant implementation is not even possible...

IMO, Prolog is an amazing idea with amazing potential, but should be refocused and rewritten from scratch: as a low-level "logical" language with the leanest possible spec and VM, and the smallest possible runtime, so that it easily runs everywhere: expert systems and stuff like that... Prolog 2.0, maybe.

Julio

Re: The Programming Language Wars have just begun

<sc760j$7jg$1@solani.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=634&group=comp.lang.prolog#634

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: janburse@fastmail.fm (Mostowski Collapse)
Newsgroups: comp.lang.prolog
Subject: Re: The Programming Language Wars have just begun
Date: Thu, 8 Jul 2021 17:35:46 +0200
Message-ID: <sc760j$7jg$1@solani.org>
References: <sbqffa$pj2$1@solani.org>
<c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 8 Jul 2021 15:35:47 -0000 (UTC)
Injection-Info: solani.org;
logging-data="7792"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:60.0)
Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8
Cancel-Lock: sha1:hBWy/Z0l+xLNlr424uwYh2FGjaY=
In-Reply-To: <85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com>
X-User-ID: eJwFwQcBADAMAjBNpRc5e/iXsCS9rE5HZUUqtdNBraaPDvAyJtiFwxYizRobs3oqtreG1I1L2JXzWX0s0hR2
 by: Mostowski Collapse - Thu, 8 Jul 2021 15:35 UTC

Dogelog is lean, currently it doesn't have (@<)/2,
sort/2, thread_create/2, etc..

For more information:

"The Dogelog Runtime is a small and fast ISO core
standard Prolog system that runs in a browser or on
node.js. The Dogelog Runtime supports old browsers
with common JavaScript and new browsers with
module JavaScript."
https://github.com/jburse/dogelog-moon

Julio Di Egidio schrieb:
> IMO, Prolog is an amazing idea with amazing potential,
but should be refocused and rewritten from scratch: as a low-level
"logical" language with the leanest possible spec
and VM, and the smallest possible runtime, so that it
easily runs everywhere: expert systems and stuff like
that... Prolog 2.0, maybe.

Re: The Programming Language Wars have just begun

<sc76ik$7ug$1@solani.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=635&group=comp.lang.prolog#635

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: janburse@fastmail.fm (Mostowski Collapse)
Newsgroups: comp.lang.prolog
Subject: Re: The Programming Language Wars have just begun
Date: Thu, 8 Jul 2021 17:45:22 +0200
Message-ID: <sc76ik$7ug$1@solani.org>
References: <sbqffa$pj2$1@solani.org>
<c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com>
<sc760j$7jg$1@solani.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 8 Jul 2021 15:45:24 -0000 (UTC)
Injection-Info: solani.org;
logging-data="8144"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:60.0)
Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8
Cancel-Lock: sha1:9otIn18KxTp+fmU16OnC1BMEp3g=
X-User-ID: eJwVycERACEIA8CWRCBqOUZI/yXc3H43HYa3AolIpXybXwXRPQegPUIFIyZ99mODGXwHrlxhVjeU9w/xVPEDW1wWqw==
In-Reply-To: <sc760j$7jg$1@solani.org>
 by: Mostowski Collapse - Thu, 8 Jul 2021 15:45 UTC

In case you are interested in imperfections
of the ISO core standard. Maybe this can be
read off from Dogelog, imperfections

that even affect a lean language. You might
read off imperfections from which predicates
got implemented and are not in the ISO

core standard. Since I have only implemented
the absolute minimum right now, this might
be an indicative what was overlooked

in the ISO core standard. But there are only
like 3-5 predicates which are not from the ISO
core standard, but found in Dogelog:
- consult/1 (from everywhere)
- listing/1 (from everywhere)
- '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
- change_arg/3 (from BinProlog, Tarau)
- What else?

'$MARK'/1 and friends allow a more reflective
implementation of the Prolog system. One can
write an ISO core standard conforming

call/1 in Prolog itself. change_arg/3 is
used to inplement findall/3. But '$MARK'/1 and
change_arg/3 are highly implementation specific,

so that the ISO core standard doesn't have
such things is somehow justified.

Mostowski Collapse schrieb:
> Dogelog is lean, currently it doesn't have (@<)/2,
> sort/2, thread_create/2, etc..
>
> For more information:
>
> "The Dogelog Runtime is a small and fast ISO core
> standard Prolog system that runs in a browser or on
> node.js. The Dogelog Runtime supports old browsers
> with common JavaScript and new browsers with
> module JavaScript."
> https://github.com/jburse/dogelog-moon
>
> Julio Di Egidio schrieb:
>> IMO, Prolog is an amazing idea with amazing potential,
> but should be refocused and rewritten from scratch: as a low-level
> "logical" language with the leanest possible spec
> and VM, and the smallest possible runtime, so that it
> easily runs everywhere: expert systems and stuff like
> that...  Prolog 2.0, maybe.
>

Re: The Programming Language Wars have just begun

<b3a2d5c3-83c5-4fdb-ad16-4f8337d44f62n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=636&group=comp.lang.prolog#636

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:5f0d:: with SMTP id x13mr28938947qta.69.1625759950625;
Thu, 08 Jul 2021 08:59:10 -0700 (PDT)
X-Received: by 2002:a25:8146:: with SMTP id j6mr39863370ybm.28.1625759950378;
Thu, 08 Jul 2021 08:59:10 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 08:59:10 -0700 (PDT)
In-Reply-To: <sc76ik$7ug$1@solani.org>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b3a2d5c3-83c5-4fdb-ad16-4f8337d44f62n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 08 Jul 2021 15:59:10 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mostowski Collapse - Thu, 8 Jul 2021 15:59 UTC

This is a nice paper, describing the difference between
the archaic two pointer approach, skeleton and environment,
and the one pointer approach.

An Interpreter for Predicate Logic Programs
Part I: Basic Principles
Bruynooghe - 1976
https://lirias.kuleuven.be/retrieve/522231

Jekejeke Prolog has two pointers, Dogelog has one
pointer. So I can do a lot of comparisons now between the
two approaches. Other one pointer system

is for example SWI-Prolog. I found it easier to implement
change_arg/3 in a one pointer system. I even don't have
change_arg/3 in Jekejeke Prolog only in Dogelog.

Not sure whether I could do it in Jekejeke Prolog,
since skeletons are highly shared. Whereas in Dogelog
a lot of compounds are freshly created. Will this

ever lead to a high performance Prolog system?

Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:45:26 UTC+2:
> In case you are interested in imperfections
> of the ISO core standard. Maybe this can be
> read off from Dogelog, imperfections
>
> that even affect a lean language. You might
> read off imperfections from which predicates
> got implemented and are not in the ISO
>
> core standard. Since I have only implemented
> the absolute minimum right now, this might
> be an indicative what was overlooked
>
> in the ISO core standard. But there are only
> like 3-5 predicates which are not from the ISO
> core standard, but found in Dogelog:
> - consult/1 (from everywhere)
> - listing/1 (from everywhere)
> - '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
> - change_arg/3 (from BinProlog, Tarau)
> - What else?
>
> '$MARK'/1 and friends allow a more reflective
> implementation of the Prolog system. One can
> write an ISO core standard conforming
>
> call/1 in Prolog itself. change_arg/3 is
> used to inplement findall/3. But '$MARK'/1 and
> change_arg/3 are highly implementation specific,
>
> so that the ISO core standard doesn't have
> such things is somehow justified.
>
> Mostowski Collapse schrieb:
> > Dogelog is lean, currently it doesn't have (@<)/2,
> > sort/2, thread_create/2, etc..
> >
> > For more information:
> >
> > "The Dogelog Runtime is a small and fast ISO core
> > standard Prolog system that runs in a browser or on
> > node.js. The Dogelog Runtime supports old browsers
> > with common JavaScript and new browsers with
> > module JavaScript."
> > https://github.com/jburse/dogelog-moon
> >
> > Julio Di Egidio schrieb:
> >> IMO, Prolog is an amazing idea with amazing potential,
> > but should be refocused and rewritten from scratch: as a low-level
> > "logical" language with the leanest possible spec
> > and VM, and the smallest possible runtime, so that it
> > easily runs everywhere: expert systems and stuff like
> > that... Prolog 2.0, maybe.
> >

Re: The Programming Language Wars have just begun

<5f68dd7d-d0e8-4d3e-ac66-655279303fcdn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=637&group=comp.lang.prolog#637

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:46d0:: with SMTP id h16mr1206343qto.362.1625760409231; Thu, 08 Jul 2021 09:06:49 -0700 (PDT)
X-Received: by 2002:a25:258:: with SMTP id 85mr40304044ybc.109.1625760409027; Thu, 08 Jul 2021 09:06:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 09:06:48 -0700 (PDT)
In-Reply-To: <b3a2d5c3-83c5-4fdb-ad16-4f8337d44f62n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com> <85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org> <sc76ik$7ug$1@solani.org> <b3a2d5c3-83c5-4fdb-ad16-4f8337d44f62n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5f68dd7d-d0e8-4d3e-ac66-655279303fcdn@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 08 Jul 2021 16:06:49 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 79
 by: Mostowski Collapse - Thu, 8 Jul 2021 16:06 UTC

Also interesting how the slash (/)/0 was used for the cut.

Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:59:11 UTC+2:
> This is a nice paper, describing the difference between
> the archaic two pointer approach, skeleton and environment,
> and the one pointer approach.
>
> An Interpreter for Predicate Logic Programs
> Part I: Basic Principles
> Bruynooghe - 1976
> https://lirias.kuleuven.be/retrieve/522231
>
> Jekejeke Prolog has two pointers, Dogelog has one
> pointer. So I can do a lot of comparisons now between the
> two approaches. Other one pointer system
>
> is for example SWI-Prolog. I found it easier to implement
> change_arg/3 in a one pointer system. I even don't have
> change_arg/3 in Jekejeke Prolog only in Dogelog.
>
> Not sure whether I could do it in Jekejeke Prolog,
> since skeletons are highly shared. Whereas in Dogelog
> a lot of compounds are freshly created. Will this
>
> ever lead to a high performance Prolog system?
> Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:45:26 UTC+2:
> > In case you are interested in imperfections
> > of the ISO core standard. Maybe this can be
> > read off from Dogelog, imperfections
> >
> > that even affect a lean language. You might
> > read off imperfections from which predicates
> > got implemented and are not in the ISO
> >
> > core standard. Since I have only implemented
> > the absolute minimum right now, this might
> > be an indicative what was overlooked
> >
> > in the ISO core standard. But there are only
> > like 3-5 predicates which are not from the ISO
> > core standard, but found in Dogelog:
> > - consult/1 (from everywhere)
> > - listing/1 (from everywhere)
> > - '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
> > - change_arg/3 (from BinProlog, Tarau)
> > - What else?
> >
> > '$MARK'/1 and friends allow a more reflective
> > implementation of the Prolog system. One can
> > write an ISO core standard conforming
> >
> > call/1 in Prolog itself. change_arg/3 is
> > used to inplement findall/3. But '$MARK'/1 and
> > change_arg/3 are highly implementation specific,
> >
> > so that the ISO core standard doesn't have
> > such things is somehow justified.
> >
> > Mostowski Collapse schrieb:
> > > Dogelog is lean, currently it doesn't have (@<)/2,
> > > sort/2, thread_create/2, etc..
> > >
> > > For more information:
> > >
> > > "The Dogelog Runtime is a small and fast ISO core
> > > standard Prolog system that runs in a browser or on
> > > node.js. The Dogelog Runtime supports old browsers
> > > with common JavaScript and new browsers with
> > > module JavaScript."
> > > https://github.com/jburse/dogelog-moon
> > >
> > > Julio Di Egidio schrieb:
> > >> IMO, Prolog is an amazing idea with amazing potential,
> > > but should be refocused and rewritten from scratch: as a low-level
> > > "logical" language with the leanest possible spec
> > > and VM, and the smallest possible runtime, so that it
> > > easily runs everywhere: expert systems and stuff like
> > > that... Prolog 2.0, maybe.
> > >

Re: The Programming Language Wars have just begun

<04db8d82-c4aa-4220-9618-4c27f2d2ab39n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=638&group=comp.lang.prolog#638

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:11cf:: with SMTP id n15mr28751919qtk.256.1625760806182; Thu, 08 Jul 2021 09:13:26 -0700 (PDT)
X-Received: by 2002:a25:4fc4:: with SMTP id d187mr40444689ybb.245.1625760805935; Thu, 08 Jul 2021 09:13:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 09:13:25 -0700 (PDT)
In-Reply-To: <5f68dd7d-d0e8-4d3e-ac66-655279303fcdn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com> <85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org> <sc76ik$7ug$1@solani.org> <b3a2d5c3-83c5-4fdb-ad16-4f8337d44f62n@googlegroups.com> <5f68dd7d-d0e8-4d3e-ac66-655279303fcdn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <04db8d82-c4aa-4220-9618-4c27f2d2ab39n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 08 Jul 2021 16:13:26 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 101
 by: Mostowski Collapse - Thu, 8 Jul 2021 16:13 UTC

Maybe the non-archaic approach was for space saving? Although
the archaic approach can be also quite space efficient.

Anyway, history goes:

In June 1975, Maurice Bruynooghe visited Robert Kowalski at Imperial
College and came home with 2 boxes of punched cards containing the
Fortran code of the Marseille Prolog interpreter (one card was missing,
it got solved). From October to December 1975, Maurice Bruynooghe
visited Alain Colmerauer in Marseille. In the period 1975 -1979, Maurice
Bruynooghe developed a space saving interpreter in Pascal. It used
structure copying instead of structure sharing and also tail recursion
optimization. A presentation “A space saving implementation of Prolog”
was given at the “logic Programming Meeting” organized by Robert
Kowalski, Imperial College, May 24-28, 1976.

https://people.cs.kuleuven.be/~Maurice.Bruynooghe/Prolog/Prolog.html

Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 18:06:50 UTC+2:
> Also interesting how the slash (/)/0 was used for the cut.
> Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:59:11 UTC+2:
> > This is a nice paper, describing the difference between
> > the archaic two pointer approach, skeleton and environment,
> > and the one pointer approach.
> >
> > An Interpreter for Predicate Logic Programs
> > Part I: Basic Principles
> > Bruynooghe - 1976
> > https://lirias.kuleuven.be/retrieve/522231
> >
> > Jekejeke Prolog has two pointers, Dogelog has one
> > pointer. So I can do a lot of comparisons now between the
> > two approaches. Other one pointer system
> >
> > is for example SWI-Prolog. I found it easier to implement
> > change_arg/3 in a one pointer system. I even don't have
> > change_arg/3 in Jekejeke Prolog only in Dogelog.
> >
> > Not sure whether I could do it in Jekejeke Prolog,
> > since skeletons are highly shared. Whereas in Dogelog
> > a lot of compounds are freshly created. Will this
> >
> > ever lead to a high performance Prolog system?
> > Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:45:26 UTC+2:
> > > In case you are interested in imperfections
> > > of the ISO core standard. Maybe this can be
> > > read off from Dogelog, imperfections
> > >
> > > that even affect a lean language. You might
> > > read off imperfections from which predicates
> > > got implemented and are not in the ISO
> > >
> > > core standard. Since I have only implemented
> > > the absolute minimum right now, this might
> > > be an indicative what was overlooked
> > >
> > > in the ISO core standard. But there are only
> > > like 3-5 predicates which are not from the ISO
> > > core standard, but found in Dogelog:
> > > - consult/1 (from everywhere)
> > > - listing/1 (from everywhere)
> > > - '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
> > > - change_arg/3 (from BinProlog, Tarau)
> > > - What else?
> > >
> > > '$MARK'/1 and friends allow a more reflective
> > > implementation of the Prolog system. One can
> > > write an ISO core standard conforming
> > >
> > > call/1 in Prolog itself. change_arg/3 is
> > > used to inplement findall/3. But '$MARK'/1 and
> > > change_arg/3 are highly implementation specific,
> > >
> > > so that the ISO core standard doesn't have
> > > such things is somehow justified.
> > >
> > > Mostowski Collapse schrieb:
> > > > Dogelog is lean, currently it doesn't have (@<)/2,
> > > > sort/2, thread_create/2, etc..
> > > >
> > > > For more information:
> > > >
> > > > "The Dogelog Runtime is a small and fast ISO core
> > > > standard Prolog system that runs in a browser or on
> > > > node.js. The Dogelog Runtime supports old browsers
> > > > with common JavaScript and new browsers with
> > > > module JavaScript."
> > > > https://github.com/jburse/dogelog-moon
> > > >
> > > > Julio Di Egidio schrieb:
> > > >> IMO, Prolog is an amazing idea with amazing potential,
> > > > but should be refocused and rewritten from scratch: as a low-level
> > > > "logical" language with the leanest possible spec
> > > > and VM, and the smallest possible runtime, so that it
> > > > easily runs everywhere: expert systems and stuff like
> > > > that... Prolog 2.0, maybe.
> > > >

Re: The Programming Language Wars have just begun

<b84f6757-246c-44e4-8801-11be1359e051n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=639&group=comp.lang.prolog#639

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:602:: with SMTP id d2mr29821878qth.146.1625761370750;
Thu, 08 Jul 2021 09:22:50 -0700 (PDT)
X-Received: by 2002:a25:5182:: with SMTP id f124mr20633731ybb.116.1625761370510;
Thu, 08 Jul 2021 09:22:50 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 09:22:50 -0700 (PDT)
In-Reply-To: <sc760j$7jg$1@solani.org>
Injection-Info: google-groups.googlegroups.com; posting-host=93.41.99.203; posting-account=F3H0JAgAAADcYVukktnHx7hFG5stjWse
NNTP-Posting-Host: 93.41.99.203
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b84f6757-246c-44e4-8801-11be1359e051n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: julio@diegidio.name (Julio Di Egidio)
Injection-Date: Thu, 08 Jul 2021 16:22:50 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Julio Di Egidio - Thu, 8 Jul 2021 16:22 UTC

On Thursday, 8 July 2021 at 17:35:51 UTC+2, burs...@gmail.com wrote:
> Dogelog is lean, currently it doesn't have (@<)/2,
> sort/2, thread_create/2, etc..
>
> For more information:
>
> "The Dogelog Runtime is a small and fast ISO core
> standard Prolog system that runs in a browser or on
> node.js.

At best you can claim to support a subset of the standard plus your non-standard extensions, and never any better than that, you or anybody else, for the reasons I have mentioned. I literally meant restarting from the drawing board: to a truly minimal language plus essentials, e.g., case in point, a module system. And, to begin with, the very notion of denotational semantics should disappear, it's a programming language, period: and with that 50% of the complications and ambiguity would be gone, the other 50% (mostly) being an impossible grammar.

Never mind...

Julio

Re: The Programming Language Wars have just begun

<cde1a32b-f62d-467d-aad0-49301d9855ddn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=640&group=comp.lang.prolog#640

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a0c:bf4b:: with SMTP id b11mr31536613qvj.11.1625761670693; Thu, 08 Jul 2021 09:27:50 -0700 (PDT)
X-Received: by 2002:a25:e0d0:: with SMTP id x199mr39341380ybg.341.1625761670466; Thu, 08 Jul 2021 09:27:50 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 09:27:50 -0700 (PDT)
In-Reply-To: <b84f6757-246c-44e4-8801-11be1359e051n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com> <85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org> <b84f6757-246c-44e4-8801-11be1359e051n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cde1a32b-f62d-467d-aad0-49301d9855ddn@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 08 Jul 2021 16:27:50 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 33
 by: Mostowski Collapse - Thu, 8 Jul 2021 16:27 UTC

Dogelog is not a academic specification, using some formalism,
like denotational semantics, or anyother formalism that is around.
But since it is mostly written in Prolog itself, you can read it

like a spec. But it uses billions and billions of cuts, so its not
in itself a declarative spec. But you find on the GitHub link
read_term/3, write_term/3, etc.. all written in Prolog itself.

Donald Trump Says Billions And Billions And Billions
https://www.youtube.com/watch?v=u_aLESDql1U

ju...@diegidio.name schrieb am Donnerstag, 8. Juli 2021 um 18:22:51 UTC+2:
> On Thursday, 8 July 2021 at 17:35:51 UTC+2, burs...@gmail.com wrote:
> > Dogelog is lean, currently it doesn't have (@<)/2,
> > sort/2, thread_create/2, etc..
> >
> > For more information:
> >
> > "The Dogelog Runtime is a small and fast ISO core
> > standard Prolog system that runs in a browser or on
> > node.js.
> > https://github.com/jburse/dogelog-moon
> At best you can claim to support a subset of the standard plus your non-standard extensions, and never any better than that, you or anybody else, for the reasons I have mentioned. I literally meant restarting from the drawing board: to a truly minimal language plus essentials, e.g., case in point, a module system. And, to begin with, the very notion of denotational semantics should disappear, it's a programming language, period: and with that 50% of the complications and ambiguity would be gone, the other 50% (mostly) being an impossible grammar.
>
> Never mind...
>
> Julio

Re: The Programming Language Wars have just begun

<da2bff09-a443-45ce-bfe1-850fada7e473n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=641&group=comp.lang.prolog#641

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:744d:: with SMTP id h13mr5965285qtr.308.1625762239174;
Thu, 08 Jul 2021 09:37:19 -0700 (PDT)
X-Received: by 2002:a25:af09:: with SMTP id a9mr40823724ybh.38.1625762239021;
Thu, 08 Jul 2021 09:37:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 8 Jul 2021 09:37:18 -0700 (PDT)
In-Reply-To: <cde1a32b-f62d-467d-aad0-49301d9855ddn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<b84f6757-246c-44e4-8801-11be1359e051n@googlegroups.com> <cde1a32b-f62d-467d-aad0-49301d9855ddn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <da2bff09-a443-45ce-bfe1-850fada7e473n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 08 Jul 2021 16:37:19 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Mostowski Collapse - Thu, 8 Jul 2021 16:37 UTC

The grammar embodied by read_term/3 or write_term/3 in Dogelog
has no ambiguity. Its just a deterministic recursive descend parser.
In particular it is a parser that has become know as:

"A predictive parser is a recursive descent parser that does not r
equire backtracking. Predictive parsing is possible only for the
class of LL(k) grammars."
https://en.wikipedia.org/wiki/Recursive_descent_parser

But its a two level grammar. One level for tokens and one
level for AST, abstract syntax tree = Prolog terms. Each level
has its own constant k in of LL(k). On the level of tokens

k=2, it needs to see two unicode points. For example to have:

?- X = 0.
X = 0

Correctly recognized as making use of an integer token. On
the level of AST we also have kind of k=2, there are certain
constructs which need to see the current token and the

next character. So its kind of k=1.5. One token and one character.
An example where token and character is needed, is reading
a compound. f(a,b) and f (a,b) have different reading when

f is a prefix operator. Thats all, thats basically all the magic
of the Prolog syntax. There isn't much more.

Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 18:27:51 UTC+2:
> Dogelog is not a academic specification, using some formalism,
> like denotational semantics, or anyother formalism that is around.
> But since it is mostly written in Prolog itself, you can read it
>
> like a spec. But it uses billions and billions of cuts, so its not
> in itself a declarative spec. But you find on the GitHub link
> read_term/3, write_term/3, etc.. all written in Prolog itself.
>
> Donald Trump Says Billions And Billions And Billions
> https://www.youtube.com/watch?v=u_aLESDql1U
> ju...@diegidio.name schrieb am Donnerstag, 8. Juli 2021 um 18:22:51 UTC+2:
> > On Thursday, 8 July 2021 at 17:35:51 UTC+2, burs...@gmail.com wrote:
> > > Dogelog is lean, currently it doesn't have (@<)/2,
> > > sort/2, thread_create/2, etc..
> > >
> > > For more information:
> > >
> > > "The Dogelog Runtime is a small and fast ISO core
> > > standard Prolog system that runs in a browser or on
> > > node.js.
> > > https://github.com/jburse/dogelog-moon
> > At best you can claim to support a subset of the standard plus your non-standard extensions, and never any better than that, you or anybody else, for the reasons I have mentioned. I literally meant restarting from the drawing board: to a truly minimal language plus essentials, e.g., case in point, a module system. And, to begin with, the very notion of denotational semantics should disappear, it's a programming language, period: and with that 50% of the complications and ambiguity would be gone, the other 50% (mostly) being an impossible grammar.
> >
> > Never mind...
> >
> > Julio

Re: The Programming Language Wars have just begun

<625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1261&group=comp.lang.prolog#1261

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:29c2:b0:444:9d4f:4ed0 with SMTP id gh2-20020a05621429c200b004449d4f4ed0mr10211725qvb.90.1649927432146;
Thu, 14 Apr 2022 02:10:32 -0700 (PDT)
X-Received: by 2002:a25:ba0c:0:b0:61a:79a6:fd0 with SMTP id
t12-20020a25ba0c000000b0061a79a60fd0mr1057042ybg.45.1649927431974; Thu, 14
Apr 2022 02:10:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 14 Apr 2022 02:10:31 -0700 (PDT)
In-Reply-To: <sc76ik$7ug$1@solani.org>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 14 Apr 2022 09:10:32 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 72
 by: Mostowski Collapse - Thu, 14 Apr 2022 09:10 UTC

Unexpectedly, we could bring change_arg/3 from
Dogelog Player to formerly Jekejeke Prolog.

We have found change_arg/3 quite useful for the
realization of built-ins such as findall/3, etc.. in the
Dogelog Player. Bringing it to formerly Jekejeke Prolog
opens up new roads of compatibility and portability
between the two Prolog systems. We could already
explore the compliance test suite.

See also:

change_arg/2 for a two Pointer Prolog System
https://twitter.com/dogelogch/status/1514530478371622914

change_arg/2 for a two Pointer Prolog System
https://www.facebook.com/groups/dogelog

Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:45:26 UTC+2:
> In case you are interested in imperfections
> of the ISO core standard. Maybe this can be
> read off from Dogelog, imperfections
>
> that even affect a lean language. You might
> read off imperfections from which predicates
> got implemented and are not in the ISO
>
> core standard. Since I have only implemented
> the absolute minimum right now, this might
> be an indicative what was overlooked
>
> in the ISO core standard. But there are only
> like 3-5 predicates which are not from the ISO
> core standard, but found in Dogelog:
> - consult/1 (from everywhere)
> - listing/1 (from everywhere)
> - '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
> - change_arg/3 (from BinProlog, Tarau)
> - What else?
>
> '$MARK'/1 and friends allow a more reflective
> implementation of the Prolog system. One can
> write an ISO core standard conforming
>
> call/1 in Prolog itself. change_arg/3 is
> used to inplement findall/3. But '$MARK'/1 and
> change_arg/3 are highly implementation specific,
>
> so that the ISO core standard doesn't have
> such things is somehow justified.
>
> Mostowski Collapse schrieb:
> > Dogelog is lean, currently it doesn't have (@<)/2,
> > sort/2, thread_create/2, etc..
> >
> > For more information:
> >
> > "The Dogelog Runtime is a small and fast ISO core
> > standard Prolog system that runs in a browser or on
> > node.js. The Dogelog Runtime supports old browsers
> > with common JavaScript and new browsers with
> > module JavaScript."
> > https://github.com/jburse/dogelog-moon
> >
> > Julio Di Egidio schrieb:
> >> IMO, Prolog is an amazing idea with amazing potential,
> > but should be refocused and rewritten from scratch: as a low-level
> > "logical" language with the leanest possible spec
> > and VM, and the smallest possible runtime, so that it
> > easily runs everywhere: expert systems and stuff like
> > that... Prolog 2.0, maybe.
> >

Re: The Programming Language Wars have just begun

<a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1262&group=comp.lang.prolog#1262

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:29cb:b0:699:fee3:265a with SMTP id s11-20020a05620a29cb00b00699fee3265amr1025380qkp.513.1649927760511;
Thu, 14 Apr 2022 02:16:00 -0700 (PDT)
X-Received: by 2002:a81:234b:0:b0:2eb:718b:c824 with SMTP id
j72-20020a81234b000000b002eb718bc824mr1149130ywj.520.1649927760243; Thu, 14
Apr 2022 02:16:00 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 14 Apr 2022 02:16:00 -0700 (PDT)
In-Reply-To: <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org> <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 14 Apr 2022 09:16:00 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 91
 by: Mostowski Collapse - Thu, 14 Apr 2022 09:16 UTC

We had to change the internal reference counting (*)
API of Jekejeke Prolog a little bit. But regression
testing showed so far no performanc epenality, its

rather that we gained some little performance of
ca. 4%. Need to do more regression testing. Did
not yet test the attributed variables which have also

reference counting.

(*)
In practice this reference counting and smart
pointering is a horrible bottle neck, which is also
felt in the poor performance of CPython.

The outlook for JDK 8 and JDK 16 is different.
We only saw ca. 4% for JDK 8, for JDK 16 its not
that high. It could be also an other effect..

Mostowski Collapse schrieb am Donnerstag, 14. April 2022 um 11:10:32 UTC+2:
> Unexpectedly, we could bring change_arg/3 from
> Dogelog Player to formerly Jekejeke Prolog.
>
> We have found change_arg/3 quite useful for the
> realization of built-ins such as findall/3, etc.. in the
> Dogelog Player. Bringing it to formerly Jekejeke Prolog
> opens up new roads of compatibility and portability
> between the two Prolog systems. We could already
> explore the compliance test suite.
>
> See also:
>
> change_arg/2 for a two Pointer Prolog System
> https://twitter.com/dogelogch/status/1514530478371622914
>
> change_arg/2 for a two Pointer Prolog System
> https://www.facebook.com/groups/dogelog
> Mostowski Collapse schrieb am Donnerstag, 8. Juli 2021 um 17:45:26 UTC+2:
> > In case you are interested in imperfections
> > of the ISO core standard. Maybe this can be
> > read off from Dogelog, imperfections
> >
> > that even affect a lean language. You might
> > read off imperfections from which predicates
> > got implemented and are not in the ISO
> >
> > core standard. Since I have only implemented
> > the absolute minimum right now, this might
> > be an indicative what was overlooked
> >
> > in the ISO core standard. But there are only
> > like 3-5 predicates which are not from the ISO
> > core standard, but found in Dogelog:
> > - consult/1 (from everywhere)
> > - listing/1 (from everywhere)
> > - '$MARK'/1 and friends (from BIM ProLog, Bruynooghe)
> > - change_arg/3 (from BinProlog, Tarau)
> > - What else?
> >
> > '$MARK'/1 and friends allow a more reflective
> > implementation of the Prolog system. One can
> > write an ISO core standard conforming
> >
> > call/1 in Prolog itself. change_arg/3 is
> > used to inplement findall/3. But '$MARK'/1 and
> > change_arg/3 are highly implementation specific,
> >
> > so that the ISO core standard doesn't have
> > such things is somehow justified.
> >
> > Mostowski Collapse schrieb:
> > > Dogelog is lean, currently it doesn't have (@<)/2,
> > > sort/2, thread_create/2, etc..
> > >
> > > For more information:
> > >
> > > "The Dogelog Runtime is a small and fast ISO core
> > > standard Prolog system that runs in a browser or on
> > > node.js. The Dogelog Runtime supports old browsers
> > > with common JavaScript and new browsers with
> > > module JavaScript."
> > > https://github.com/jburse/dogelog-moon
> > >
> > > Julio Di Egidio schrieb:
> > >> IMO, Prolog is an amazing idea with amazing potential,
> > > but should be refocused and rewritten from scratch: as a low-level
> > > "logical" language with the leanest possible spec
> > > and VM, and the smallest possible runtime, so that it
> > > easily runs everywhere: expert systems and stuff like
> > > that... Prolog 2.0, maybe.
> > >

Re: The Programming Language Wars have just begun

<ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1280&group=comp.lang.prolog#1280

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:d84:b0:449:7065:54a with SMTP id e4-20020a0562140d8400b004497065054amr5524636qve.52.1650490249639;
Wed, 20 Apr 2022 14:30:49 -0700 (PDT)
X-Received: by 2002:a81:53c1:0:b0:2eb:29e6:dd47 with SMTP id
h184-20020a8153c1000000b002eb29e6dd47mr23415909ywb.377.1650490249488; Wed, 20
Apr 2022 14:30:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Wed, 20 Apr 2022 14:30:49 -0700 (PDT)
In-Reply-To: <a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org> <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
<a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Wed, 20 Apr 2022 21:30:49 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 24
 by: Mostowski Collapse - Wed, 20 Apr 2022 21:30 UTC

About change_arg/3 and the call_nth/2 use case. Its also available in

SICStus Prolog, by another predicate name I guess!!! Of course it needs
intimate knowledge how compounds are allocated, deallocated or otherwise
manipulated by the Prolog system. The use case of call_nth/2 is

quite tame, since we do only update with an atomic, in particular
with an integer, and not with a compound value of some sort,
ground or not ground. But you gain quite some speed:

You get near metal speed!!!

count the number of calls of a clause
https://stackoverflow.com/a/11400256/17524790

In formerly Jekejeke Prolog the trick with the extra variable
doesn't work, i.e. State=count(0,_), but functor(State, count, 1)
works, and in Dogelog Player, current version State=count(0)

can be used. I don't know what would work in Scryer Prolog.
Also there are rumors that there are Coq and Isabelle/HOL
libraries that allow reasoning about the construct, since it mimics

aspects of RAM machines, which do have formalizations.

Re: The Programming Language Wars have just begun

<1e3de3cb-5dad-4f4d-ae57-418525919f77n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1281&group=comp.lang.prolog#1281

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a0c:8e0b:0:b0:435:1779:7b22 with SMTP id v11-20020a0c8e0b000000b0043517797b22mr18546181qvb.63.1650536814945;
Thu, 21 Apr 2022 03:26:54 -0700 (PDT)
X-Received: by 2002:a81:ff12:0:b0:2db:2d8a:9769 with SMTP id
k18-20020a81ff12000000b002db2d8a9769mr24723518ywn.172.1650536814794; Thu, 21
Apr 2022 03:26:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 21 Apr 2022 03:26:54 -0700 (PDT)
In-Reply-To: <ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org> <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
<a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com> <ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1e3de3cb-5dad-4f4d-ae57-418525919f77n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 21 Apr 2022 10:26:54 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 41
 by: Mostowski Collapse - Thu, 21 Apr 2022 10:26 UTC

If you don't think about introducing change_arg/3 in your Prolog system
head start first, and start implementing call_nth/2 and all other stuff instead
first, you are doing something wrong.

Also that change_arg/3 isn't widely available is not correct, since
recently I have it in formerly Jekejeke Prolog. So the list is bigger:

- SWI-Prolog (corresponds to nb_linkarg/3, right?)
- YAP (corresponds to nb_linkarg/3, right?)
- GNU Prolog (possibly setarg/4 with 4-th argument false)
- SICStus Prolog (didn't check yet which one is change_arg/3 exactly)
- ECLiPSe Prolog (didn't check yet which one is change_arg/3 exactly)
- Formerly Jekejeke Prolog (by its name)
- Dogelog Player (by its name)
- BinProlog from Paul Tarau (by its name)
- ... What else?

Mostowski Collapse schrieb am Mittwoch, 20. April 2022 um 23:30:50 UTC+2:
> About change_arg/3 and the call_nth/2 use case. Its also available in
>
> SICStus Prolog, by another predicate name I guess!!! Of course it needs
> intimate knowledge how compounds are allocated, deallocated or otherwise
> manipulated by the Prolog system. The use case of call_nth/2 is
>
> quite tame, since we do only update with an atomic, in particular
> with an integer, and not with a compound value of some sort,
> ground or not ground. But you gain quite some speed:
>
> You get near metal speed!!!
>
> count the number of calls of a clause
> https://stackoverflow.com/a/11400256/17524790
>
> In formerly Jekejeke Prolog the trick with the extra variable
> doesn't work, i.e. State=count(0,_), but functor(State, count, 1)
> works, and in Dogelog Player, current version State=count(0)
>
> can be used. I don't know what would work in Scryer Prolog.
> Also there are rumors that there are Coq and Isabelle/HOL
> libraries that allow reasoning about the construct, since it mimics
>
> aspects of RAM machines, which do have formalizations.

Re: The Programming Language Wars have just begun

<fa4f518f-7f52-4bf3-8815-4a4de0a8ba17n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1282&group=comp.lang.prolog#1282

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:29e6:b0:44a:2d0f:bf63 with SMTP id jv6-20020a05621429e600b0044a2d0fbf63mr247313qvb.93.1650555139553;
Thu, 21 Apr 2022 08:32:19 -0700 (PDT)
X-Received: by 2002:a81:c09:0:b0:2e5:728f:b0d4 with SMTP id
9-20020a810c09000000b002e5728fb0d4mr242142ywm.230.1650555139319; Thu, 21 Apr
2022 08:32:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 21 Apr 2022 08:32:19 -0700 (PDT)
In-Reply-To: <1e3de3cb-5dad-4f4d-ae57-418525919f77n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org> <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
<a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com> <ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>
<1e3de3cb-5dad-4f4d-ae57-418525919f77n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fa4f518f-7f52-4bf3-8815-4a4de0a8ba17n@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 21 Apr 2022 15:32:19 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 45
 by: Mostowski Collapse - Thu, 21 Apr 2022 15:32 UTC

Oops, yes my bad. It could be that SICStus Prolog and ECLiPSe Prolog do
not have some change_arg/3 equivalent. Was also making an experiment with:

call_nth2(Goal_0, C) :-
State = v(0),
Goal_0,
arg(1, State, C1),
C2 is C1+1,
nb_linkarg(1, State, C2),
% setarg(1, State, C2, false), % for GNU Prolog
C = C2.

And then I got:

/* SWI-Prolog */
?- time((between(1,1000000,_),
call_nth2(call_nth2((X=a;X=b),N), M), fail; true)).
% 10,000,003 inferences, 0.859 CPU in 0.847 seconds
(101% CPU, 11636367 Lips)
true.

/* GNU Prolog */
?- ((between(1,1000000,_),
call_nth2(call_nth2((X=a;X=b),N), M), fail; true)).
(1578 ms) yes

Was I allowed to use nb_linkarg/3? If this is allowed, then SWI-Prolog
ranks top in speed.

Mostowski Collapse schrieb am Donnerstag, 21. April 2022 um 12:26:55 UTC+2:
> If you don't think about introducing change_arg/3 in your Prolog system
> head start first, and start implementing call_nth/2 and all other stuff instead
> first, you are doing something wrong.
>
> Also that change_arg/3 isn't widely available is not correct, since
> recently I have it in formerly Jekejeke Prolog. So the list is bigger:
>
> - SWI-Prolog (corresponds to nb_linkarg/3, right?)
> - YAP (corresponds to nb_linkarg/3, right?)
> - GNU Prolog (possibly setarg/4 with 4-th argument false)
> - SICStus Prolog (didn't check yet which one is change_arg/3 exactly)
> - ECLiPSe Prolog (didn't check yet which one is change_arg/3 exactly)
> - Formerly Jekejeke Prolog (by its name)
> - Dogelog Player (by its name)
> - BinProlog from Paul Tarau (by its name)
> - ... What else?

Re: The Programming Language Wars have just begun

<27aea5f9-3e17-4b15-83fe-090d8f04623dn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1283&group=comp.lang.prolog#1283

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:7f54:0:b0:2f1:f48c:c73a with SMTP id g20-20020ac87f54000000b002f1f48cc73amr16857199qtk.265.1650555256585;
Thu, 21 Apr 2022 08:34:16 -0700 (PDT)
X-Received: by 2002:a0d:fc45:0:b0:2eb:65c0:26f with SMTP id
m66-20020a0dfc45000000b002eb65c0026fmr285976ywf.22.1650555256358; Thu, 21 Apr
2022 08:34:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 21 Apr 2022 08:34:16 -0700 (PDT)
In-Reply-To: <fa4f518f-7f52-4bf3-8815-4a4de0a8ba17n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <sbqffa$pj2$1@solani.org> <c69d6e13-9d2c-4f47-8878-69f8183d6cf0n@googlegroups.com>
<85d04318-2b0c-4da9-9c80-467e798fbf13n@googlegroups.com> <sc760j$7jg$1@solani.org>
<sc76ik$7ug$1@solani.org> <625b4b43-5486-4382-8e5f-6bf014b28210n@googlegroups.com>
<a9cc9f0b-a8a7-4081-a33c-b17968a6b36an@googlegroups.com> <ff2a44a2-4daa-41ee-a701-31b25264de14n@googlegroups.com>
<1e3de3cb-5dad-4f4d-ae57-418525919f77n@googlegroups.com> <fa4f518f-7f52-4bf3-8815-4a4de0a8ba17n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <27aea5f9-3e17-4b15-83fe-090d8f04623dn@googlegroups.com>
Subject: Re: The Programming Language Wars have just begun
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 21 Apr 2022 15:34:16 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 67
 by: Mostowski Collapse - Thu, 21 Apr 2022 15:34 UTC

Same speed as ECLiPSe Prolog which doesn't
need setup_call_cleanup/3, solution from SO:

/* ECLiPSe Prolog */
[eclipse 5]: between(1,1000000,_), call_nth(call_nth((X=a;X=b), N), M), fail; true.
X = X
N = N
M = M
Yes (0.84s cpu)

But 10 times faster than SICStus Prolog, which needs setup_call_cleanup/3,
solution also from SO, which gives quite a speed damping:

/* SICStus Prolog */
?- statistics(walltime, A), (between(1,1000000,_), call_nth(call_nth((X=a;X=b), N), M), fail; true),
statistics(walltime, B).
A = [408655,137987],
B = [416794,8139] ?

By SO solution I mean:
https://stackoverflow.com/a/11400256/17524790

Mostowski Collapse schrieb am Donnerstag, 21. April 2022 um 17:32:20 UTC+2:
> Oops, yes my bad. It could be that SICStus Prolog and ECLiPSe Prolog do
> not have some change_arg/3 equivalent. Was also making an experiment with:
>
> call_nth2(Goal_0, C) :-
> State = v(0),
> Goal_0,
> arg(1, State, C1),
> C2 is C1+1,
> nb_linkarg(1, State, C2),
> % setarg(1, State, C2, false), % for GNU Prolog
> C = C2.
>
> And then I got:
>
> /* SWI-Prolog */
> ?- time((between(1,1000000,_),
> call_nth2(call_nth2((X=a;X=b),N), M), fail; true)).
> % 10,000,003 inferences, 0.859 CPU in 0.847 seconds
> (101% CPU, 11636367 Lips)
> true.
>
> /* GNU Prolog */
> ?- ((between(1,1000000,_),
> call_nth2(call_nth2((X=a;X=b),N), M), fail; true)).
> (1578 ms) yes
>
> Was I allowed to use nb_linkarg/3? If this is allowed, then SWI-Prolog
> ranks top in speed.
> Mostowski Collapse schrieb am Donnerstag, 21. April 2022 um 12:26:55 UTC+2:
> > If you don't think about introducing change_arg/3 in your Prolog system
> > head start first, and start implementing call_nth/2 and all other stuff instead
> > first, you are doing something wrong.
> >
> > Also that change_arg/3 isn't widely available is not correct, since
> > recently I have it in formerly Jekejeke Prolog. So the list is bigger:
> >
> > - SWI-Prolog (corresponds to nb_linkarg/3, right?)
> > - YAP (corresponds to nb_linkarg/3, right?)
> > - GNU Prolog (possibly setarg/4 with 4-th argument false)
> > - SICStus Prolog (didn't check yet which one is change_arg/3 exactly)
> > - ECLiPSe Prolog (didn't check yet which one is change_arg/3 exactly)
> > - Formerly Jekejeke Prolog (by its name)
> > - Dogelog Player (by its name)
> > - BinProlog from Paul Tarau (by its name)
> > - ... What else?

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor