Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

New Book: Exploring Programming Language Architecture in Perl

by billh (Pilgrim)
on Nov 27, 2009 at 23:57 UTC ( #809827=perlnews: print w/ replies, xml ) Need Help??

Hi,

After a couple of years of doing other stuff, I finally got around to self-publishing that rather obscure text on "Exploring Programming Language architecture in Perl". The book is available on Lulu at http://www.lulu.com/content/hardcover-book/exploring-programming-language-architecture-in-perl/7839921. I'm not making any profit from this, and it's also available as a download PDF if you don't want to shell out for a hard copy.

I had a lot of fun writing it, but have kind of moved on since. So enjoy.

Bill H
perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'

Comment on New Book: Exploring Programming Language Architecture in Perl
Download Code
Re: New Book: Exploring Programming Language Architecture in Perl
by zentara (Archbishop) on Nov 28, 2009 at 13:51 UTC
    ... your topics seem like Perl6 stuff .... i hope the developers read it... :-)

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku
      I'd hope they know more about the subject than I do :-)
      Bill H
      perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'
      Actually all attempts to write a Perl 6 compiler in Perl 5 have shown that it's not a very good idea.

      If you want to cover only a small part of Perl 6, the one that's close to Perl 5, your chances are very good, and it runs reasonably fast. Maybe a few Perl5ism leak through, but all in all that's fine. (For example v6 works on that level).

      However if you plan to write a full Perl 6 compiler on top of Perl 5, you can reuse less of Perl 5's power for Perl 6, and end up using Perl 5 as an assembly language. Perl 5 is a great high level language, but a rather poor assembly language, so your compiler and the run-time engine becomes slow, very slow.

      That happened to the KP6 ("KindaPerl6") compiler, and I guess it will happen to all other Perl 6 compiler projects which use Perl 5 too heavily under the hood.

        However .... Perl 6 compiler on top of Perl 5.,......and end up using Perl 5 as an assembly language. Perl 5 is a great high level language, but a rather poor assembly language,

        ...that jogs the memory.... i do remember the initial promo on Perl6, where an assembly language of sorts, called Parrot, was going to be the base language for all interpreters, like Perl, Python, Ruby, etc.

        ...whatever happened to the dream of the Grand Unified Language ? .. :-)


        I'm not really a human, but I play one on earth.
        Old Perl Programmer Haiku

        > Actually all attempts to write a Perl 6 compiler in Perl 5 have shown that it's not a very good idea.

        It's not at all an attempt to discuss Perl 6, I wouldn't presume to second guess the developers on that topic. It's really just an exposition of the more fundamental ideas of programming languages in general, particularly lexical closures and continuations, and the interesting places you can get to if you follow those leads. Really just a jumping off point for people who might like to explore further.

        I must stress that this is not a book about perl, it just happens to use perl because it is a convenient language and has a wide user base (and because I like Perl.)

        Bill H
        perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'
Re: New Book: Exploring Programming Language Architecture in Perl
by merlyn (Sage) on Nov 30, 2009 at 16:59 UTC
    I skimmed this book over the weekend (thank you for the PDF download). There's an incredible amount of work in this book, and I appreciate that.

    However, having said that, I suffer when I read this book in the same way I suffer when I read MJD's "Higher Order Programming". They both seem to require a bit more computer science background than I have (or have patience for). I'm a street-trained programmer, and have never set foot in a CS classroom.

    In other words, my head hurt while reading this book, but that's not your fault. :)

    -- Randal L. Schwartz, Perl hacker

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

      Aww come on, I admit that it's not a book to skim, but by the end of chapter 5 you understand one of the crown jewels of CS: the kernel of scheme. It's like a perfect piece of clockwork (not my sloppy implementation, I mean the core idea.) It's a kind of transcendental experience to hold in your head the internals of a complete programming language, and only Scheme is simple enough to do that with. That has to be worth a little extra effort? :-)

      Bill H
      perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'
Re: New Book: Exploring Programming Language Architecture in Perl
by Anonymous Monk on Feb 01, 2010 at 14:19 UTC
    The book isn't exactly new, I mean this shows that the book was first published in 2006. But it's a nice book. Does it probably requires some familiarity with Scheme or LISP ?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlnews [id://809827]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2014-09-16 03:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (155 votes), past polls