Lambda the Ultimate

inactiveTopic Loell, a new programming language
started 11/6/2002; 10:33:08 PM - last post 11/7/2002; 2:49:34 PM
Dan Moniz - Loell, a new programming language  blueArrow
11/6/2002; 10:33:08 PM (reads: 2279, responses: 9)
Loell, a new programming language
Found via Chris Double's web log:
Traditional languages either have static or dynamic scoping. With Loell you can have both. When a closure is created, the scope it is created in is stored in the scope property of the closure. When you use that scope when evaluating the closure
(closure.scope#closure)
you have static scoping. But when you use the current scope
($#closure)
you get dynamic scoping. But you can use any object as scope.

Posted to implementation by Dan Moniz on 11/6/02; 10:33:34 PM

Dan Shappir - Re: Loell, a new programming language  blueArrow
11/7/2002; 2:08:46 AM (reads: 1101, responses: 2)
If you've tried playing with Sjoerd's Loell samples and received errors its because of a problem with the samples, this problem has been fixed (the problem was in the way the samples were uploaded, not with the language implementation).

I obviously got a sneek preview of Sjoerd's little language. Have to say I'm quit impressed with the amount of functionality he has managed to compress into such a small package.

It's interesting to note that Leoll's parser is built in JavaScript and that it's "compiled" into JavaScript. Its not really compiled but converted into JavaScript objects. This means that you can't distribute a compiled version version of a program, but instead have to package the Loell code with the compiler.

Ehud Lamm - Re: Loell, a new programming language  blueArrow
11/7/2002; 11:39:41 AM (reads: 1062, responses: 1)
At first I thought this is just a cool hack. But the more I think of it, I realize Loell (what's the origin of the name, btw?) provides a neat example of the role of scoping constructs in languages. For example, a classic use of closures is for creating data abstractions (e.g., EOPL2 sec. 2.4). This shows that encapsulation is really just a question of scoping (how surprising, I hear you say. Well, to us it shouldn't be, but not everyone understands language constructs like we do...)

Loell may be a cool way to explore these ideas (read, "analyzing the language may make a cool exercise for students").

scruzia - Re: Loell, a new programming language  blueArrow
11/7/2002; 11:59:14 AM (reads: 1005, responses: 1)
Re: (what's the origin of the name, btw?)

"lazy object evaluation little language", it says here.

Re: If you've [...] received errors [...] this problem has been fixed

Too bad; I thought it was just a cool trick to get me to look more closely at the code and fix it so that it would work.

Ehud Lamm - Re: Loell, a new programming language  blueArrow
11/7/2002; 12:15:47 PM (reads: 1046, responses: 0)
lazy object evaluation little language

Right. I missed that line (I have the flu, guys!)

But it must be the name of someone too, right? The boss, who is just a lazy object, perhaps?!

Sjoerd Visscher - Re: Loell, a new programming language  blueArrow
11/7/2002; 12:45:56 PM (reads: 996, responses: 1)
I'm the lazy object, that's why I made a *little* language.

Loell is not a name of someone I know. I didn't even know it was a name, until I chose it and and googled it.

Ehud Lamm - Re: Loell, a new programming language  blueArrow
11/7/2002; 12:50:16 PM (reads: 1038, responses: 0)
Well, if it's not a pun at least its an acronym...

Sjoerd Visscher - Re: Loell, a new programming language  blueArrow
11/7/2002; 2:17:35 PM (reads: 968, responses: 1)
One of the problems I have with f.e. Lisp is that most cool tricks are based on using the scope as storage. What actually happens is completely invisible in the code. All languages have object support, because they have the scope. Only the OO languages make this object support explicit. So Loell can be seen as more minimal than Lisp, because it is Lisp without lists.

Ehud Lamm - Re: Loell, a new programming language  blueArrow
11/7/2002; 2:49:34 PM (reads: 1007, responses: 0)
Let's see how far we can take this. Environment Passing, Continuation Passing, Store Passing - and now Scope Passing...

Ehud Lamm - Re: Loell, a new programming language  blueArrow
11/8/2002; 5:43:53 AM (reads: 1009, responses: 0)
And indeed Sjoerd is thinking about the uses of scope.