Live data from Hacker News

Paradigms of Artificial Intelligence Programming (1992)

github.com

71–80 of 83 posts

Re: Paradigms of Artificial Intelligence Programming (1992)

#71

It is interesting how almost none of these paradigms/principles are relevant to what we think of as AI today. Lisp, a language specifically formulated for AI applications, is now mostly relevant in the context of programming language theory (and essentially irrelevant to the statistical programming/linear algebra toolkits that underpin modern AI applications). Instead, Fortran and its descendants are actually what po…

Lisp was once in the forefront of high level numerical computing systems:

https://en.wikipedia.org/wiki/Macsyma

Similar to the way Python today is a high level language used for numerical computing today. Lisp is certainly more than capable of this role, but the fallout from the AI winter killed Lisp's reputation and popularity, leading to other languages filling those niches.

Re: Paradigms of Artificial Intelligence Programming (1992)

#72
post #40
post #32

One of the top 5 programming books. Old AI is today's bleeding edge computer engineering. There is an enourmous amount of free lunches for computer engineers and software startups in the old school artificial intelligence. * modern SAT solver performance is impressive. They can solve huge problems. * Writing a complex systems configurator with Prolog or Datalog can be like magic. * Expert systems. There has never bee…

What are the other 4 top programming books?

* Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf

* Concepts, Techniques and Models of Computer Programming: https://www.info.ucl.ac.be/~pvr/book.html

* The Art of Prolog: https://www.dropbox.com/s/2umr9ouz0jdelio/1407.pdf?dl=1

* Probabilistic Models of Cognition: https://probmods.org

Something that merges logic, types and proofs, perhaps yet to be written. Some good preliminary material:

* Program = Proof: https://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching...

* Concrete Semantics: http://concrete-semantics.org

* The Hitchhiker’s Guide to Logical Verification: https://raw.githubusercontent.com/blanchette/logical_verific...

* Programming Language Foundations in Agda: https://plfa.github.io

* Logic and Computation Intertwined: https://cs.uwaterloo.ca/~plragde/flaneries/LACI/

* Software Foundations: https://softwarefoundations.cis.upenn.edu/

Re: Paradigms of Artificial Intelligence Programming (1992)

#73
post #6

Earlier quoted context omitted.

most of it should work in elisp, note that elisp and common lisp have different semantics for IF. you might find some variances later on. also elisp doesn’t have as nice a debugging environment as SLIME so I’d honestly recommend just setting up common lisp

As far as I can tell, any Elisp if-form that is also a valid Common Lisp if-form has the same semantics; but Elisp allows more than one else-form in its syntax, with additional semantics. It's something like: (defmacro elisp-if (expr then &rest elses) `(cond (,expr ,then) (t ,@elses))) Whereas the regular if is like: (defmacro cl-if (expr then &optional else) `(cond (,expr ,then) (t ,else))) In a book that uses Commo…

Oh yes you are 100% right, I just had a brain fart. Thanks for correcting

Re: Paradigms of Artificial Intelligence Programming (1992)

#74
post #6

Earlier quoted context omitted.

most of it should work in elisp, note that elisp and common lisp have different semantics for IF. you might find some variances later on. also elisp doesn’t have as nice a debugging environment as SLIME so I’d honestly recommend just setting up common lisp

What does “IF” stand for in your comment? Are you referring to the IF expression or something different?

ignore me, read the comments above

Re: Paradigms of Artificial Intelligence Programming (1992)

#75
post #60
post #32

One of the top 5 programming books. Old AI is today's bleeding edge computer engineering. There is an enourmous amount of free lunches for computer engineers and software startups in the old school artificial intelligence. * modern SAT solver performance is impressive. They can solve huge problems. * Writing a complex systems configurator with Prolog or Datalog can be like magic. * Expert systems. There has never bee…

SAT for initializing nn parameters? Can you elaborate on this a bit, it seems interesting.

I can only guess:

In certain cases, you know what the neural network should do, for certain inputs, and you have a quite clear idea how each component of the network would solve this, and this should be doable, and with a bit of work you could also construct the parameters by hand, such that it works at least for non-noisy constructed toy input data.

Actually, I think for more complex tasks, having such intuition would anyway be a good idea.

Now, you could use a SAT solver such that it does the work mostly for you. You formulate some constructed inputs/outputs, maybe some other constraints, and let it solve for the parameters. This would be a good parameter starting point for real world data. And if the SAT solver fails to find any solution, maybe your neural network is actually not powerful enough.

Re: Paradigms of Artificial Intelligence Programming (1992)

#76
post #62

Earlier quoted context omitted.

Off topic, but what does diagrams mean in this context?

Diagrams in the category theory sense. https://en.wikipedia.org/wiki/Diagram_(category_theory) And for some context, a brief talk by Michael Shulman. https://www.youtube.com/watch?v=zUPBEQe4Ti8

thank you!

Re: Paradigms of Artificial Intelligence Programming (1992)

#77

It is interesting how almost none of these paradigms/principles are relevant to what we think of as AI today. Lisp, a language specifically formulated for AI applications, is now mostly relevant in the context of programming language theory (and essentially irrelevant to the statistical programming/linear algebra toolkits that underpin modern AI applications). Instead, Fortran and its descendants are actually what po…

PAIP is full of practical programming techniques and advice that are not at all specific to AI or even Lisp. Other commenters here have cited Norvig's retrospective on his book at

http://norvig.com/Lisp-retro.html

The next to last section in this, What Lessons are in PAIP? comprises 52 numbered sentences of advice, cross-referenced to fuller explanations in the book. Many (most?) of them apply to any programming or software engineering, not specifically AI or Lisp.

Re: Paradigms of Artificial Intelligence Programming (1992)

#78
post #9

It's weird that it still feels like this is almost something I'm 'supposed' to know and at some point work my way through. (Maybe because it was on the brink of still being relevant when I got interested in programming in middle school.) Kind of a relief to realize that this for sure is no longer something you're expected to know whatsoever.

the engineering concepts elaborated in this book are very much relevant today and you might very well be expected to know them. what this book does (and this is relevant merrit) is that it so effectively drills them into you (provided you follow along of course)

Yes, check out the mostly non-AI, non-Lisp advice in Norvig's very brief summary in What Lessons are in PAIP?, the next to last section in http://norvig.com/Lisp-retro.html

Re: Paradigms of Artificial Intelligence Programming (1992)

#79
post #72
post #40

Earlier quoted context omitted.

What are the other 4 top programming books?

* Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf * Concepts, Techniques and Models of Computer Programming: https://www.info.ucl.ac.be/~pvr/book.html * The Art of Prolog: https://www.dropbox.com/s/2umr9ouz0jdelio/1407.pdf?dl=1 * Probabilistic Models of Cognition: https://probmods.org Something that merges logic, types and proofs, perhaps yet to be written. Some good prelim…

I'm going to look at the Art of Prolog book.

Prolog is one of those things that has alluded me all this time. Mostly I don't think I've had an application for it, and, bluntly, at least for me, I need to have a "real" application to solve to best learn something. Seeing the "animal" program repeated over and over and over again was never any help.

In hindsight, maybe it would have been appropriate in an email messaging application I did long ago. It's message routing workflow was not inscrutable, but certainly difficult (and it didn't help that the route could split, sending the message to more than one place with their own workflows -- that was fun).

I've done a bunch with rule engines (and the message routing was done with an ad hoc one), but less so with inferencing.

Maybe this book will give me some insight to explore further. It's always one of those things that sort of nags the back of my brain that I don't quite grok it.

Re: Paradigms of Artificial Intelligence Programming (1992)

#80
post #72

Earlier quoted context omitted.

* Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf * Concepts, Techniques and Models of Computer Programming: https://www.info.ucl.ac.be/~pvr/book.html * The Art of Prolog: https://www.dropbox.com/s/2umr9ouz0jdelio/1407.pdf?dl=1 * Probabilistic Models of Cognition: https://probmods.org Something that merges logic, types and proofs, perhaps yet to be written. Some good prelim…

I'm going to look at the Art of Prolog book. Prolog is one of those things that has alluded me all this time. Mostly I don't think I've had an application for it, and, bluntly, at least for me, I need to have a "real" application to solve to best learn something. Seeing the "animal" program repeated over and over and over again was never any help. In hindsight, maybe it would have been appropriate in an email messagi…

The Art of Prolog and PAIP are full of small Prolog usecases.

The Craft of Prolog is also very much worth looking into.

A related approach is ASP, which combines SAT with logic programming. These are the two canonical books:

* Answer Set Programming: https://www.cs.utexas.edu/users/vl/teaching/378/ASP.pdf

* Answer Set Solving in Practice: https://potassco.org/book

Post reply on HN