Skip to content

Rethinking Prolog

Photo of saem
Hosted By
saem
Rethinking Prolog

Details

The Paper

Rethinking Prolog (http://okmij.org/ftp/kakuritu/rethinking.pdf)

Format

We start at 6:10, don't be late!

The discussion lasts for about 1 to 1.5 hours, depending upon the paper.

• Read the paper (done before you arrive)

• Introductions (name, and background)

• First impressions (1-2 minutes this is what I thought)

• Structured review (we move through the paper in order, everyone gets a chance to ask questions, offer comments, and raise concerns)

• Free form discussion

• Nominate and vote on the next paper

• Adjourn for food and/or drink at Steamworks (https://www.google.ca/maps?ion=1&espv=2&q=steamworks&bav=on.2,or.&biw=1674&bih=956&dpr=2&um=1&ie=UTF-8&sa=X&ved=0ahUKEwjTpLXtqb_MAhVC0mMKHWLiBLcQ_AUIBigB)

Abstract

Classical Prolog is an elegant language that concisely represents the fundamental concepts of term algebra, nondeterminism, unification, counter-example driven search, and the separation of logic and control. The ability to run a program forwards and backwards is uncanny. However, real Prolog programs are replete with cuts, FFI calls, committed choice and unexpected divergence – defiling the Classical purity. Classical Prolog is an enchanting misconception. It ought to be studied, for its ideas and lessons. One lesson is that guessing – non-determinism – is fundamental, but should not be the default mode of execution. One should guess, but guess lazily. The strong points of Prolog can be brought into an ordinary functional programming language. Using OCaml as a representative, we implement lazy guessing as a library, with which we reproduce classical Prolog examples. Furthermore, we demonstrate parser combinators that use committed choice (maximal munch) and can still be run forwards and backwards. They cannot be expressed in Classical Prolog. Logic variables, unification, and its WAM compilation strategy naturally emerge as a “mere optimization” of the Herbrand universe enumeration.

Getting There

Stage 3 Systems is near the Vancouver City Centre Canada Line Station, or the Chinatown/Stadium Sky Train station, and there is pay parking available. Enter into the lobby, if no one is there to take you up the elevator, hang on if it's before 6:10, otherwise use the comments to get a hold of us.

Photo of Polyglot Vancouver Reading Group (#PapersWeLoveYVR) group
Polyglot Vancouver Reading Group (#PapersWeLoveYVR)
See more events