ultimos posts

escribir en binario

Linus trovalds compilo su kernel sobre otro sistema operativo preexistente
Richard Stallman seguramente creo su compilador sobre unix
Alguna persona en Microsoft (definitivamente no Bill) compilo DOS sobre otra plataforma

Podriamos seguir asi para atras, mi idea era que alguien alguna vez escribio un compilador en lenguaje maquina. Esto me llevo a buscar y encontre muchas cosas (desviandome un poco del tema), todas interesantes pero una que me llamo la atencion:

(extraido de wikipedia)

"El primer compilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en en mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas.

Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete."


La cita queda alli, como si fuera entendible...

Despues encontre en un sitio web

"Bootstrapping.Es una técnica muy usada actualmente para el desarrollo de compiladores de lenguajes de alto nivel, en especial si se quiere obtener un autocompilador, o sea, un compilador que se compile a sí mismo.

Supongamos que se quiere implementar un nuevo lenguaje A(N) en una máquina determinada. Disponemos solamente de un ensamblador para dicha máquina. En principio parece que la solución es escribir un compilador en lenguaje ensamblador que traduzca desde el lenguaje A(N) al lenguaje máquina LM. Esto en la práctica resulta bastante complicado, dado que programar en ensamblador es muy engorroso. Lo que se hace en estos casos es desarrollar un lenguaje restringido A(1), parecido al A(N) pero más simple, y para este lenguaje escribir el compilador en ensamblador, o en cualquier otro lenguaje soportado por la máquina.

Una vez construido este compilador, y dado que nuestra máquina es ya capaz de entender el lenguaje A(1), se puede desarrollar un compilador para otro lenguaje A(2)escribiéndolo en el lenguaje A(1), y así sucesivamente hasta llegar a obtener un autocompilador del lenguaje A(N). Esta técnica se conoce como bootstrapping.

El primer compilador de Pascal desarrollado en Zurich por Wirth fue posible gracias a esta técnica. El conocido compilador C de GNU emplea también este mecanismo en tres pasos."

ahh, bueno

Menos mal que existe GCC !

rr

0 comentarios:

Publicar un comentario

comentarios para gnusiervos