Slashdot Mirror


Lightweight Languages

Denise writes: "'What happens if you get a bunch of academic computer scientists and implementors of languages such as Perl, Python, Smalltalk and Curl, and lock them into a room for a day? Bringing together the academic and commercial sides of language design and implementation was the interesting premise behind last weekend's Lightweight Languages Workshop, LL1, at the AI Lab at MIT.' Simon Cozens report, on perl.com, says it wasn't the flame fest you might have imagined."

2 of 188 comments (clear)

  1. Re:Whats the "lighest" you can get? by Tom7 · · Score: 5, Informative

    Well, we can see that you learned to program in BASIC. ;) Not all languages need assignment as their primary form of computation ...

    I'd say that the lambda calculus is more lightweight, and also easier to program in than your example:

    exp ::= x (variable)
    | exp1 exp2 (application)
    | (fn x => exp) (function)

    Basically the key is that you have higher-order functions (you can pass them around), and that's it. With this, it's relatively easy to code up booleans, integers, lists, recursive functions, trees, or practically anything. (If you wanted to do IO, you'd need some kind of primitive functions for interfacing with the machine.) Since everything is higher-order, it's easy to code these once and then pass them around. It's not as nice as a modern language, but it's nicer than a turing machine...

    Actually, there is a simpler language that uses only two functions (!), but this one is pretty hard to program in directly.

  2. Re:Whats the "lighest" you can get? by StrawberryFrog · · Score: 5, Informative
    The lightest computer mathematically proven to be equivalent to any other lanuage is the Turing machine,


    If you want to experience the Turing tarpit (where anything is possible, but nothing is easy enough to actually do) firsthand, try the Brainfuck language, based closely on the turing machine. the language has 8 instructions, and only one of them (input) has any arguments beyond an implicit current location. The compiler is 240 bytes!

    --

    My Karma: ran over your Dogma
    StrawberryFrog