12

In 1990, John Lamping published a paper proposing an optimal implementation of the untyped lambda calculus. Since that paper is 25 years old, I wonder how much we have advanced since. Thus, my question is: what is a simple description of John's optimal lambda calculus evaluating algorithm (or, in case we made improvements since, of the improved algorithm), preferably explained briefly on Haskellish-pseudocode?

Update: as I've learned more since I asked, I believe a valid answer could be simply a pseudocode for an unbloated algorithm that 1. maps pure untyped lambda terms to interaction nets; 2. reduces those nets and 3. maps back from nets to lambda terms such as that the whole process normalizes the initial lambda term optimally.

MaiaVictor
  • 51,090
  • 44
  • 144
  • 286
  • I feel that this may be probably too broad for Stack Overflow... Could you narrow your question down? – jub0bs Mar 19 '15 at 23:59
  • @Jubobs thanks for the feedback. I've edited it, but I'm not sure this is better - what do you think? – MaiaVictor Mar 20 '15 at 00:02
  • Perhaps you could illustrate some of the Lamping's ideas a short motivating example. – jub0bs Mar 20 '15 at 00:03
  • I guess I can't answer this question - the reason I'm looking for a simple pseudocode explanation is so I can understand it, as the paper itself isn't intended to be introductory, since it uses jargons and relies on a broad knowledge of the field. – MaiaVictor Mar 20 '15 at 00:05
  • Ok. Let's see if other users chime in... – jub0bs Mar 20 '15 at 00:06
  • Thank you - I guess this will be a tricky one, but I'll keep faithful. – MaiaVictor Mar 20 '15 at 00:09
  • 7
    I have no answer, but I can recommend a technique for trying to find one. Look up that paper on CiteSeer or similar databases, and find out what papers cite it. If someone has come up with an improvement on that technique, or an explanation of why the goal is the wrong goal, they will likely have cited that paper in their own. – dfeuer Mar 20 '15 at 03:18
  • 8
    The Lamping system used a _lot_ of graph rewriting rules. Since then, these rules have been simplified and reduced to just a few thanks from insights coming from linear logic and proof nets. See e.g. https://lipn.univ-paris13.fr/~guerrini/mysite/sites/default/files/biblio/LMPS95Firenze.pdf – chi Mar 20 '15 at 07:22
  • 3
    [Jan Rochel](http://rochel.info/) is a Haskeller who worked/works on optimal reduction. You could try to ask him answer this. – Roman Cheplyaka Mar 20 '15 at 08:53
  • @chi, thank you. If you understand that paper, you are probably qualified to answer the question :) I tried reading it but once again, got stuck in several jargons. – MaiaVictor Mar 20 '15 at 15:11
  • 1
    @Viclib I never had the time to fully study these techniques. I know they exist, have some rough intuition of the underlying principles, but I never did any research on them. – chi Mar 20 '15 at 15:47
  • Related: [How do you translate from lambda terms to interaction nets](http://stackoverflow.com/questions/29178805/how-do-you-translate-from-lambda-terms-to-interaction-nets) – Cirdec Mar 23 '15 at 16:07

0 Answers0