Hi, it's been a while.
See http://billhails.net/Book
After almost a year of letting this lie fallow I started working on the book again a few months ago. The result is three new chapters, all pretty much following on from the chapter on continuations:
  1. Built-in error handling and recovery
  2. Non-deterministic programming and backtracking
  3. Logic Programming
These chapters follow in the tradition of the others by demonstrating complete implementations of the topics under discussion. It's still just a hobby project, I'm not even sure yet what the next chapter will cover, maybe static type checking or maybe compilation. Enjoy.
See also: Another update: "Exploring Programming Language Architecture in Perl", Book update: "Exploring Programming Language Architecture in Perl", RFC: more of that almost-book and RFC: Almost a Book
Bill H
perl -e 'print sub { "Hello @{[shift]}!\n" }->("World")'
  • Comment on On Line Book - Exploring Programming Language Architecture in Perl - Updated
  • Download Code

Replies are listed 'Best First'.
Re: On Line Book - Exploring Programming Language Architecture in Perl - Updated
by hsmyers (Canon) on Mar 17, 2008 at 19:16 UTC
    By some strange twist, I've been comparing(writing same project in) Lisp(s) lately and I have to admit that I find your post very timely. The more I force myself to think about programming at ever increasing levels of abstraction, the better my programming skills and observations seem (hard to verify) to become. Contributions like yours can not help but help. Why some day I may be able to read "Escher Godel and Bach" closely enough to understand the jokes!

    --hsm

    "Never try to teach a pig to sing...it wastes your time and it annoys the pig."
      You get to love scheme after a while. It's so simple. Not necessarily practical, but a thing of beauty :-)
      Bill H
      perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'
        If I have to choose(just for me) between common and scheme, clearly I'll pick scheme. That said, if we are talking production code and a many programmer setup, I'd probably pick common. Mostly I'd just as soon avoid picking. At the moment I'm writing my PGN parser code in newLISP--- and having more fun than should be legal. Will have to go back and change (update) my CPAN modules based on things I've learned in the comparison. Can't wait until I move on to common and scheme; I'm sure I'll find even more code for thought...

        --hsm

        "Never try to teach a pig to sing...it wastes your time and it annoys the pig."
Re: On Line Book - Exploring Programming Language Architecture in Perl - Updated
by BrowserUk (Patriarch) on Mar 17, 2008 at 19:47 UTC

    I really enjoyed browsing your book the first time you mentioned it here. It's a real shame that you felt the need to involve javascript in the mix. Now when I follow your link, and click html, I get a blank screen :(


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      I'm really sorry about that.
      The js was added for a valid (imo) reason - to make the display of footnotes unobtrusive and natural; the behavior degrades to a plain link if it is disabled.
      Maybe you have an older js implementation enabled?
      edit - should have mentioned, the js only controls the display of the footnotes.
      Bill H
      perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'

        With or without JS enabled, when I click the link bottom-left of the title page, it takes me to http://billhails.net/Book/front.html which comes up entirely blank using my preferred browser (Opera). I viewed the source and saw the reference to book.js and attributed the problem to that.

        I just sparked up an (relatively ancient) version of Firefox and the page loads fine there. Looking at the JS, I suspect DOM differences for Opera vs. FireFox.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
      I believe I've fixed it, at least the Opera that I tested that was hanging no longer does so. Problem wasn't the javascript per se, it was the script tag that has to be in the form <script ...></script> e.g. <script .../> won't cut it for older browsers.
      Bill H
      perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'