Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

La magia del Smalltalk: Capítulo 4 - ¿Qué es el compilador? ¡Un objeto!

Julio 29th, 2005 - [Enlace local]

¿Recuerdan que dijimos, al menos unas 278 veces, que en Smalltalk todo es un objeto?

Eso nos vale para contestar a casi cualquier pregunta: ¿Qué es la paz? ¿Qué es el amor? ¿Qué es Dios? ¿Qué es la nada? ¡Todos son objetos! :-)

No puedo decir nada sobre la paz, el amor, Dios o la nada así que mejor hablo de un tipo de objeto que conozco un poco mejor: Compiler.

El compilador de Smalltalk está escrito en Smalltalk. Además de los clásicos problemas de bootstrapping de los lenguajes escritos en si mismo, esto permite un gran poder dentro del ambiente.

Se pueden hacer desde cosas muy simples como evaluar código Smalltalk y procesar el resultado:

Compiler evaluate: ‘5 factorial’

A cosas un poco más bonitas como especializar el compilador para determinadas clases del ambiente. Veamos un ejemplo: Supongamos que queremos hacer un Prolog dentro de nuestro Smalltalk. Podríamos escribir un compilador específico para la sintaxis de Prolog y decirle al Smalltalk que determinadas clases (las herencias de una clase en particular) usen otro compilador y no el default.

Para eso simplemente (¿?) tenemos que escribir el compilador de Prolog, y en la clase que servirá de superclase para las cosas en Prolog, especificamos nuestro compilador:

Prolog>>compilerClass
“Answer a compiler class appropriate for source methods of this class.”
^ PrologCompiler

Les dejo un paper muy bueno que habla del compilador de Smalltalk (en Squeak y VisualWorks): The Hitch Hiker’s Guide to the Smalltalk Compiler

¡A jugar con el compilador!

» Leer más, comentarios, etc...