C++ programming or a PhD in Macro defs (Was: How difficult is a Knowledbase notion?)

Liste des GroupesRevenir à l prolog 
Sujet : C++ programming or a PhD in Macro defs (Was: How difficult is a Knowledbase notion?)
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 02. Jul 2025, 08:35:51
Autres entêtes
Message-ID : <1042ngl$1kdle$2@solani.org>
References : 1 2
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.21
If SWI-Prolog would be rewritten in C++ maybe a GLOBAL_LD
wouldn’t be needed at all. You could make Knowledgebase
and Engine classes, the C++ compiler would optimize for
you passing around GD or LD in the form of a “this”, and
a method inside an Engine, could access a Knowledge base,
by “this->KB” or simply “KB”. C++ would be even less
annoying than Java, since you can do deferred mixin:
class Person {
    [...]
}
And later:
void Person::Print() {
    [...]
}
Because I don’t have deferred mixin in Java, my own
modularization looks extremly messy, passing around a
parameter explicitly, hoping that the usual register
file optimization of a Java compiler eliminates
most parameter passing. But my C++ knowledge is very
limited, so I don’t know whether a PhD in Macro defs
was the better solution. Was there never a C++
implemenation of SWI-Prolog ?
Mild Shock schrieb:
  > The required changes could be fairly limited.
 I don’t know. You never know before you did it.
With the current design you might end up in a
Münchhausen scenario, trying to defy gravity by
pulling your own hair. It seems there is a global switch
 which engine is active? I don’t understand, isn’t
SWI-Prolog able to run truely concurrently on a
multi-core machine. Because such things, wouldn’t
work for threads that distribute themselves over cores.
 I saw an L_THREAD lock somewhere?
 #define GET_LD      PL_local_data_t *__PL_ld = GLOBAL_LD;
 In the “worker” scenario, a “worker” can typically grab
a CPU core all for himself, and for its knowledge and
for all the engines that work over this knowlegde base.
Thats the beauty of JavaScript
 isolation through “workers”, and it is also used in
the Ciao Playground. Its very multi core friendly, a
“worker” can also have its own garbage collection etc…
   

Date Sujet#  Auteur
21 Mar 25 * Noacore is a Prolog profile that explores various relaxations12Mild Shock
21 Mar 25 +* What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)5Mild Shock
21 Mar 25 i+- Re: What about allowing numbers 1e19, etc.. (Re: Novacore is a Prolog profile that explores various relaxations)1Mild Shock
25 May 25 i`* prolog_file_name/2 was a big mistake [Novacore]3Mild Shock
25 May 25 i `* The recent extension/1 addition in Dogelog Player (Was: prolog_file_name/2 was a big mistake [Novacore])2Mild Shock
25 May 25 i  `- Corr.: Typo (Was: The recent extension/1 addition in Dogelog Player)1Mild Shock
2 Jul08:33 `* How difficult is a Knowledbase notion? (Was: Novacore is a Prolog profile that explores various relaxations)6Mild Shock
2 Jul08:35  `* C++ programming or a PhD in Macro defs (Was: How difficult is a Knowledbase notion?)5Mild Shock
2 Jul08:49   `* Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0] (Was: C++ programming or a PhD in Macro defs)4Mild Shock
2 Jul09:07    `* General Magic didn't predict the Future (Was: Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0])3Mild Shock
2 Jul14:54     `* Antique Programming Style versus Modern Programming Style [SWI-Prolog] (Was: Workers never had the blessing of Paul Tarau [Prolog missed Web 2.0])2Mild Shock
2 Jul15:06      `- Grand mothers kitchen is nevertheless the best, who knows? (Was: Antique Programming Style versus Modern Programming Style [SWI-Prolog])1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal