Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill)

Liste des GroupesRevenir à l prolog 
Sujet : Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill)
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 28. May 2025, 15:32:34
Autres entêtes
Message-ID : <10176q2$2kri$1@solani.org>
References : 1 2 3 4 5 6 7
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.20
Hi,
Quintus Folks were not hating Prolog that much.
If you inspect the source code you find mirriads
of utilities written in Prolog itself.
Now we find Prolog implementors which seeem to
be more in love with the host language than with
Prolog itself, they often totally miss the point,
that Prolog is a much more elegant and concise
language than their host language. Namely:
- Prolog doesn't need to declare a type of variable
- Prolog doesn't need malloc and free explicitly
- What else?
Probably some more postive properties of Prolog,
make it the ideal language to write most of a Prolog
system in Prolog itself, such as:
- The top-level including answer substitution display
- Tools such as listing/1 including annonymous variable
- What else?
Mild Shock schrieb:
I don't understand why some Prolog systems tend to gravitate
more and more into implementing everything in C. I don't see
any advantage. Take listing/1, do you get clauses faster and better
 printed when you use C? Starting with the pretty/1 implementation
in Prolog itself I am pretty sure things can be enhanced. Similarly a
top level written in pure Prolog can be advantageous.
 SWI-Prolog has a similar deseases of C code overkill sometimes.
 The only argument for C is maybe a different datastructure for
variable_names. But the algorthm I posted on comp.lang.prolog
doesn't need a different datastructures, its just a
 pairing algorithm. Running through both the term_variables
and term_singleton lists in parallel. So there is no advantage of
C code at all.
 Mild Shock schrieb:
Hi,
>
People from Vienna were always a little strange.
Why not adopt term_singletons/2 its already around
for a while. You can do quite some magic with it.
>
Example: Determining singletons during listing,
from Dogelog Player library(tester/tools):
>
% sys_listing_write(+Term, +Stream)
sys_listing_write(C, T) :-
    term_variables(C, V),
    term_singletons(C, A),
    sys_listing_names(V, A, 0, N),
    write_term(T, C, [quoted(true), variable_names(N), format(true)]),
    sys_answer_period(T).
>
If term_singletons/2 has the same variable ordering
guarantees, i.e. left to right, as in term_variables/2
you can use an algorithm without expensive lookup,
>
sys_listing_names([], _, _, []).
sys_listing_names([X|L], [Y|R], K, ['_'=X|S]) :- X==Y, !,
    sys_listing_names(L, R, K, S).
sys_listing_names([X|L], A, K, [N=X|R]) :-
    sys_listing_name(K, N),
    J is K+1,
    sys_listing_names(L, A, J, R).
>
Just run along the two lists , if something is both in
the term_variables/2 and term_singletons/2 list, generate
a '_' name, otherwise generate a synthetic name.
>
Bye
>
Mild Shock schrieb:
Hi,
>
The development of Trealla Prolog and Scryer Prolog
looks like a random search in a mental ocean.
>
It is like Prolog Development à la Sigmund Freud,
you have only to dig deep enough, and a solution
>
will pop up. Otherwise blame your mother or other
relatives that raised you for supression.
>
LoL
>
Bye
>
Examples: Still clueless how to detect singletons?
https://github.com/trealla-prolog/trealla/issues/743
 

Date Sujet#  Auteur
5 Dec 24 * Ulrich Neumerkel is like Ozzy Osbourne10Mild Shock
5 Dec 24 +* Re: Ulrich Neumerkel is like Ozzy Osbourne8Mild Shock
5 Dec 24 i`* Re: Ulrich Neumerkel is like Ozzy Osbourne7Mild Shock
5 Dec 24 i `* Re: Ulrich Neumerkel is like Ozzy Osbourne6Mild Shock
25 May 25 i  `* Prolog Development à la Sigmund Freud (Was: Ulrich Neumerkel is like Ozzy Osbourne)5Mild Shock
25 May 25 i   `* variable ordering guarantees in term_singletons/2 (Was: Prolog Development à la Sigmund Freud)4Mild Shock
25 May 25 i    +- My stupid Dogelog Player falls back to _<number> (Was: variable ordering guarantees in term_singletons/2)1Mild Shock
28 May 25 i    `* the desease of C code overkill (Was: variable ordering guarantees in term_singletons/2)2Mild Shock
28 May 25 i     `- Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill)1Mild Shock
27 May 25 `- Ciao Prolog inspired Test Case (Re: Ulrich Neumerkel is like Ozzy Osbourne)1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal