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 |
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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
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 |
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 > > > |
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 |
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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
Free forum by Nabble | Edit this page |