logoalt Hacker News

Extending C with Prolog (1994)

53 pointsby Antibabeliclast Sunday at 4:10 PM17 commentsview on HN

Comments

spriortoday at 6:16 PM

I started using Prolog in my self written home automation system over 20 years ago. At first I was using CORBA and I linked ACE/Tao into SWI-Prolog so that Prolog could catch and send CORBA messages. That worked for years but was too annoying to add new message types since a wrapper had to be written for each, plus threading had to be coordinated between C++ and Prolog. Eventually I ditched the CORBA stuff and switched to MQTT, but instead of binding the C++ and Prolog together I found and extended MQTT support for Prolog directly, actually I've mostly replaced the C++ parts of my HA system with Java. The Prolog is pretty nice the way I can now specify predicates for MQTT topic paths, and I use shared topics for scalability. Now all of this is running deployed in k3s.

show 1 reply
vintagedavelast Sunday at 4:29 PM

> We recently installed Gateway multi-media kits on our PCs, but found the installation less than trivial because of conflicts in our interrupt (IRQ) channels. A simple expert system could have helped to resolve those IRQ conflicts. ... The sample program is set up to allow installation of two different devices, a 'Sound Blaster' and a 'Mitsumi CD- ROM'.

This was a real blast from the past. I wonder why more systems today don't have this kind of logic solving built in. Possibly, too many complex behaviours that are not cleanly quantified.

ofrzetatoday at 7:47 PM

Related: Using Prolog in Windows NT Network Configuration (1996) https://news.ycombinator.com/item?id=36821871

krzyktoday at 4:35 PM

Is this the time of year when we try to force redditors to stay away by posting about Prolog?

I see three stories already.

show 4 replies
mcswelltoday at 6:59 PM

FWIW (not much), around the time of that article, I reversed this: I used Arity Prolog for a morphological parsing program, with C calls for the bit fiddling (because I needed 64 bits, and the Prolog I was using only handled 16 bit strings).

HexDecOctBintoday at 5:00 PM

I often wonder what a Prolog implemented as an Objective-C like extension to C would look like. Since WAM has proper stack and heap IIRC, it might be possible to plug that in through some region-based memory management on C side. Is there some prior art like this?

bueschertoday at 8:41 PM

There's another updated version of that prolog here along with some links, including an archived article from Microsoft Research on how it was (once upon a time) used in Windows NT network configuration: https://github.com/opless/small-prolog

umairnadeem123today at 8:50 PM

[dead]

dirtytoken7today at 6:45 PM

[flagged]

show 1 reply