Version 19 of L

Updated 2008-01-01 19:32:02 by KJN

L is a programming language invented by Oscar Bonilla, Tim Daly, Jr., and Larry McVoy from COMPANY: BitMover. L is a compiled-to-byte-code language compiling to Tcl byte codes and thus leveraging the entire Tcl runtime.

L is designed to peacefully coexist with Tcl. L functions may call Tcl procs and vice versa. They may also coexist in the same source file.

L is a static weakly typed language with int, float, string, struct, array, and hash as first-class objects. The L syntax is reminiscent of C with a tiny bit of C++ thrown in.

Home Page: http://l.bitmover.com/ (redirects to the L wiki)

Paper: http://www.bitmover.com/lm/papers/l.pdf

Getting L:

The command

  bkf clone bk://tcl.bkbits.net/tcl_with_L tcl

copies the source code to directory tcl

After building Tcl, check the version with

  set tcl_patchLevel

and build a compatible version of Tk. On 2008-01-01 the public release was still based on Tcl 8.5b2.


AMG: Has anyone played with L who would like to share his or her experiences?

RLH Is there anything in L that we can co-opt for Tcl?

AMG: Wasn't it the other way around? :^) Seriously, it should be very possible to embed L in a Tcl script, similar to how C can be embedded using critcl. And since L compiles down to the same bytecodes as Tcl, it should be able to eval a Tcl script. Tcl quoting is easier to use than C quoting, so let's hope that L has a Tcl quote mechanism, or else it could be quite difficult to embed a script. (I know; I've made the mistake of writing Tcl script inside C double quotes.)

slebetman: What about top level byte-code compilation? L not only does this but for L to work Bitmover modified their Tcl interpreter to also do top level byte-code compilation. Any reason why this isn't done in the regular Tcl core? Bitmover's version of Tcl already does it.

Interestingly the L interpreter is also a full Tcl interpreter. All they've done is added a second parser/compiler without removing the Tcl parser. The interpreter looks at the file extension to decide whether to run in Tcl or L mode. But you're allowed to switch to either mode explicitly in your programs by using the pseudo comment #lang(L) and #lang(tcl).

L looks and feels a lot like C with some Perl thrown in.

I'm not sure about the Perl, but it was specifically designed to look and feel a lot like C. I believe Larry's goal is to create a language that gives the power and flexibility of Tcl/Tk, but in a form factor that can more easily be read by a C programmer.

Zarutian 1. jan 2008 01:30 UTC: .. read by a C programmer.. Why is that an essential requirement, please?

Answer: Because that is the language Larry likes best. He spends a majority of his time reviewing code rather than writing code so he wants a language he can easily read.


Feb 9, 2007 Arlie L. Codina Where can I download/get L? Will it run on MS Windows? Please email me at [email protected].


MJ - In this google age, L might not be the best name for the language. Are there any plans for changing the name?


stevel - how about "ttl8" ? ;-)