[ANN] LispKit on SqueakMap

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] LispKit on SqueakMap

Stéphane Rollandin
from the SqueakMap description:
-------------

LispKit is a kit for building one's own custom Lisp implementations
it's beta !!

provides:

   1) LispKernel, a minimal Lisp interpreter with
   - dynamic scoping
   - the fundamental special forms: let, setq, and, or, if, defun,
defmacro ...
   - a few basic functions: list, car, funcall, null ...
   - catch/throw, unwind-protect
   - a GUI

   2) SLisp, a Lisp dialect tightly integrated with Smalltalk

usage:

   by subclassing LispKernel one can implement a custom dialect of Lisp.
   see SLisp for an example

specificities

   LispKernel is implemented as a pure Smalltalk extension. There is no
parser nor compiler; the interpreter is the 'eval' lisp function itself.
Lisp code can be written as plain Smalltalk arrays.

   advantages:
   - we can chase the senders of a symbol
   - we can use the debugger to debug Lisp code
   - we can easily implement powerful control structures
   - we can integrate Lisp and Smalltalk

... see LispKernel class comments for more
               

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] LispKit on SqueakMap

Alexandre Bergel-2
What a nice piece of code!

I do not have time to dive into it now, but I would like to know how  
difficult would it be to have a Scheme interpreter ?

Is there absolutely no restriction regarding the syntax ? This is a  
nice trick you used. No need of parser...

I really like it. Currently there is no Smalltalk-like debugger for  
Scheme. This might be a good thing to implement...

Cheers,
Alexandre


Am Jun 1, 2006 um 9:01 PM schrieb Stéphane Rollandin:

> from the SqueakMap description:
> -------------
>
> LispKit is a kit for building one's own custom Lisp implementations
> it's beta !!
>
> provides:
>
>   1) LispKernel, a minimal Lisp interpreter with
>   - dynamic scoping
>   - the fundamental special forms: let, setq, and, or, if, defun,  
> defmacro ...
>   - a few basic functions: list, car, funcall, null ...
>   - catch/throw, unwind-protect
>   - a GUI
>
>   2) SLisp, a Lisp dialect tightly integrated with Smalltalk
>
> usage:
>
>   by subclassing LispKernel one can implement a custom dialect of  
> Lisp.
>   see SLisp for an example
>
> specificities
>
>   LispKernel is implemented as a pure Smalltalk extension. There is  
> no parser nor compiler; the interpreter is the 'eval' lisp function  
> itself. Lisp code can be written as plain Smalltalk arrays.
>
>   advantages:
>   - we can chase the senders of a symbol
>   - we can use the debugger to debug Lisp code
>   - we can easily implement powerful control structures
>   - we can integrate Lisp and Smalltalk
>
> ... see LispKernel class comments for more
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: [ANN] LispKit on SqueakMap

Stéphane Rollandin
Alexandre Bergel wrote:
> What a nice piece of code!
>
> I do not have time to dive into it now, but I would like to know how
> difficult would it be to have a Scheme interpreter ?

I am a newbie in this domain so I can not really answer you yet.

I'm using this project to teach myself a bit more about Lisps, so far
the only one I know rather well is Emacs Lisp, hence the dynamic scoping
we have at the moment in LispKit.

Scheme is on my list for sure !

but I encourage you to give it a try (and tell me if changes are
required for a Scheme support); the code is actually very simple and
short, the package reaches 20 kb only because it's packed with test
cases and documentation.


> Is there absolutely no restriction regarding the syntax ? This is a nice
> trick you used. No need of parser...

there are some restrictions: $' instead of a plain ' for quoting, no
composed-names etc.. but that's no big deal. things come along
incredibly well !

plus the lisp code is nice to read with Shout


> I really like it. Currently there is no Smalltalk-like debugger for
> Scheme. This might be a good thing to implement...

lots of fun to come :)

Stef



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] LispKit on SqueakMap

stéphane ducasse-2
Scheme is static so there is closures for functions
        a function has an environment in addition

Stef

On 2 juin 06, at 00:25, Stéphane Rollandin wrote:

> Alexandre Bergel wrote:
>> What a nice piece of code!
>> I do not have time to dive into it now, but I would like to know  
>> how difficult would it be to have a Scheme interpreter ?
>
> I am a newbie in this domain so I can not really answer you yet.
>
> I'm using this project to teach myself a bit more about Lisps, so  
> far the only one I know rather well is Emacs Lisp, hence the  
> dynamic scoping we have at the moment in LispKit.
>
> Scheme is on my list for sure !
>
> but I encourage you to give it a try (and tell me if changes are  
> required for a Scheme support); the code is actually very simple  
> and short, the package reaches 20 kb only because it's packed with  
> test cases and documentation.
>
>
>> Is there absolutely no restriction regarding the syntax ? This is  
>> a nice trick you used. No need of parser...
>
> there are some restrictions: $' instead of a plain ' for quoting,  
> no composed-names etc.. but that's no big deal. things come along  
> incredibly well !
>
> plus the lisp code is nice to read with Shout
>
>
>> I really like it. Currently there is no Smalltalk-like debugger  
>> for Scheme. This might be a good thing to implement...
>
> lots of fun to come :)
>
> Stef
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] LispKit on SqueakMap

Stéphane Rollandin
ok, thanks for the pointer !


stéphane ducasse wrote:
> Scheme is static so there is closures for functions
>     a function has an environment in addition
>
> Stef

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] LispKit on SqueakMap

Alexandre Bergel-2
In reply to this post by stéphane ducasse-2
There are some other difference like the tail-recursion and the macro  
mechanism...

Cheers,
Alexandre


Am Jun 2, 2006 um 11:29 AM schrieb stéphane ducasse:

> Scheme is static so there is closures for functions
> a function has an environment in addition
>
> Stef
>
> On 2 juin 06, at 00:25, Stéphane Rollandin wrote:
>
>> Alexandre Bergel wrote:
>>> What a nice piece of code!
>>> I do not have time to dive into it now, but I would like to know  
>>> how difficult would it be to have a Scheme interpreter ?
>>
>> I am a newbie in this domain so I can not really answer you yet.
>>
>> I'm using this project to teach myself a bit more about Lisps, so  
>> far the only one I know rather well is Emacs Lisp, hence the  
>> dynamic scoping we have at the moment in LispKit.
>>
>> Scheme is on my list for sure !
>>
>> but I encourage you to give it a try (and tell me if changes are  
>> required for a Scheme support); the code is actually very simple  
>> and short, the package reaches 20 kb only because it's packed with  
>> test cases and documentation.
>>
>>
>>> Is there absolutely no restriction regarding the syntax ? This is  
>>> a nice trick you used. No need of parser...
>>
>> there are some restrictions: $' instead of a plain ' for quoting,  
>> no composed-names etc.. but that's no big deal. things come along  
>> incredibly well !
>>
>> plus the lisp code is nice to read with Shout
>>
>>
>>> I really like it. Currently there is no Smalltalk-like debugger  
>>> for Scheme. This might be a good thing to implement...
>>
>> lots of fun to come :)
>>
>> Stef
>>
>>
>>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.