On Fri, Jul 20, 2012 at 5:35 AM, Alexander Burger <[email protected]>wrote:
On Fri, Jul 20, 2012 at 02:25:53PM +0200, Thorsten Jolitz wrote: > > > I think 'PicoLisp Works' would work pretty well as a title ... > > Yes, a nice title indeed. > Yet another little flash in the pan, which means a quick flare not a sustained one" Reaching out to Kazimir Majorinc for a contribution: What is Fluchtpunkt? Fluchtpunkt Lisps are… 1. *Focused*: Uncompromising in their vision 2. *Spartan*: Devoid of the seemingly unnecessary comforts found in many modern languages 3. *Controversial*: Not always by design, but often because of their design 4. *Fun* Pico Lisp <http://picolisp.com/5000/-2.html> I first came across Pico Lisp when reading the paper “Pico Lisp: A Radical Approach to Application Development” <http://software-lab.de/radical.pdf> by Alexander Burger and was instantly fascinated. The primary goal is to provide an idealized Lisp interpreter that runs as fast as possible. To accomplish this goal Pico Lisp limits its feature set and optimizes the code path along the dimensions of its features. The core types provided by Pico Lisp are numbers, symbols, and lists. Given the paucity of these types Pico Lisp has the advantage of always taking the most direct interpretation path and thus avoiding any unnecessary checks and abstractions that a more corpulent Lisp might require. For example, Pico Lisp’s quote function is defined in such a way that it returns all of its arguments unevaluated allowing the operation of quote to optimize into only a return of itscdr rather than the car of its cdr. Simple no? Pico Lisp is, in my opinion, the most interesting entry in a family of*really really small Lisps* that also includes Nanolisp<http://www-fourier.ujf-grenoble.fr/~sergerar/Nanolisp/> and femtoLisp <http://code.google.com/p/femtolisp/>, although I would hesitate to include these latter two in the Fluchtpunkt category. and Not that I'm expert in *Picolisp*, but I think I understand it well enough for short introduction. *Picolisp *is somehow Spartan dialect of *Lisp * - for example, it doesn't support floating point numbers, and it is not available on *Windows *- except by using*VirtualBox* or something like that. But it is dynamically scoped, and it supports some powerful and interesting features as fexprs, coroutines and anonymous symbols, integrated *Prolog *and database. It is particularly interesting that * Picolisp *doesn't have strings - the symbols are used for that purpose. On the first sight, absence doesn't look like advantage, but it is, because all usual functions defined on strings now work directly on symbols, without need for conversion. As a bonus, *Picolisp *might be the fastest *Lisp *interpreter, written entirely (in 64 bit version) in assembly language. The author of *Picolisp *is *Alexander Burger <http://software-lab.de/>*; as *Picolisp *is, in spirit, very similar to*Newlisp*, we can almost speak about German school of *Lisp*<http://blog.fogus.me/2011/05/03/the-german-school-of-lisp-2/>
