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 (November 2006)

Mailing List: http://lists.bitmover.com/cgi-bin/mailman/listinfo/l (recently this has mostly carried automated messages from the BitKeeper repository; some months there has been a lot of spam; other traffic is low)

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 start in Tcl or L mode. But you're allowed to switch to either mode explicitly in your programs by using the pseudo-comments #lang L and #lang tcl (in earlier versions these were #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].

PT You can obtain pre-built tclkit binaries that include L support from [L1 ]. Look for Lkit binaries in the downloads.

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" ? ;-)

May 4, 2010 chi Does anybody know, how I can download and build the sources for L? I tried the links I found here and in Google but to no avail. I am even not able to download and build via the bitkeeper client as the free version is not longer supported.

April 19, 2016 AKM Released as the open source "Little" language: http://www.little-lang.org