Ceceo 0.1α released

Domingo 19 de Octubre de 2008

Así como lo molesté a Juanjo Conti por un par de cosas que no andaban de su Lisp, me puse a hacer uno yo.

Implementa sólo las raíces de lisp; las 7 primitivas básicas y las 6 funciones derivadas de estas —aunque, la verdad, no las uso…—, según detalla The Roots of Lisp.

En el proceso aprendí varias cosas:

  1. Bison me odia1.
  2. Las unions sirven para algo.
  3. LISP es todavía más groso que lo que imaginaba.
  4. ([a-z]|micro|pico|femto|atto)lisp ya existe.

Bien, le falta mucho para estar completo; en particular, le falta la parte interactiva; por ahora es sólo un lisp-en-c; si se quiere hacer, digamos, (quote a) (y evaluarlo, claro), hay que hacer eval(cons(symbol("quote"),cons(symbol("a"),symbol("nil"))))

Por esto, tampoco probé si lambda hace lo que debe y demás.

No tiene ningún tipo de números, porque tenía planeados ponerlos cuando haga funcionar el REPL.

Y finalmente, no hay recolector de basura…

Si alguien, por algún bizarro motivo, tiene ganas de usar el código, está en una de mis páginas secretas, liberado bajo la licencia BSD.

¿Será este el comienzo de una nueva era? ¿Una donde empiece a liberar código?… sólo el tiempo lo dirá.

  1. ¿Alguien se anima a tirarme una mano?

Si te interesa lo que tengo para decir, seguime en Twitter.

Dejá tu comentario, o un trackback desde tu sitio. Podés seguir la conversación con el Feed de comentarios de este post.

Un Comentario a “Ceceo 0.1α released”

  1. Oops??? | Buanzolandia dijo:

    Jueves 27 de Noviembre de 2008, 05:02

    [...] Ceceo ya es un poquito m??s lindo; s??lo est??s a una bajada y un make de distancia de poder hacer, simplemente '(a b c) => (a b c). No es la gran cosa, pero es un Lisp??? Y mi problema con bison eran los malditos strings de C; estaba guardadando el puntero al string, en vez de una copia. Ahora s??. [...]

Comentá:

Entrá con tu cuenta, registrate, o escribí tus datos:

XHTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">