Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEutimio Delahoz Modificado hace 9 años
1
Bootstrapping Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Translators
2
“Bootstrapping” La noción de la implementación de un lenguaje, es decir usar esa misma implementación del lenguaje. Notación: Diagrama T. Fuente Objeto Lenguaje Escrito en
3
Bootstrapping Diagrama propósito: C M M C M APLICACIÓN Coincidencias de fuenteCoincidencias de objeto Ejecución APLICACIÓN
4
Bootstrapping Ejemplo: Deseariamos tener un compilador Pascal para un nuevo procesador M. ¿Cómo lo obtenemos? Posibilidad#1: Escribir el compilador directamente a mano, ¿en lenguaje de máquina? ¿en lenguaje ensamblador? P M M
5
Bootstrapping Posibilidad# 2: Escribir el compilador Pascal en algun otro lenguaje L, que ya está implementado en M. Entonces, compila el compilador. Pero, … esto es probablemente, mucho trabajo. L M M L M P M L Compiler
6
Bootstrapping Posibilidad# 3: Primero, implementa P, un subconjunto de Pascal. Entonces, escribir el compilador deseado en P, y compilarlo. Paso1: Ahora P está implementado. L M M L M P M
7
Bootstrapping Paso 2: Si P es elegido correctamente, el compilador P-> M y el compilador Pascal -> M (en P) juntos, son más fáciles de escribir que el compilador Pascal -> M. Teóricamente, este proceso puede continuar indefinidamente, aumentando el nivel de “bootstrapping”. En la práctica, sin embargo, las nuevas construcciones interfieren con cada una (y con las antiguas) hasta que en un futuro, el bootstrapping sea inmanejable. P M M P M Pascal M Write this
8
Bootstrapping Ejemplo: Ahora, vamos a suponer que deseamos llevar Pascal a una nueva máquina M. Posibilidad #1: Lo mismo para M. Posibilidad #2: Lo mismo para M Posibilidad #3: Lo mismo para M
9
Bootstrapping Posibilidad#4: Paso1: Lo mismo para M ( implementa P en M). Paso2: Modifica el compilador Pascal. P M’ P Pascal M’ By hand PascalM P
10
Bootstrapping Posibilidad#5: No usar P! Usa la implementacion de Pascal en vez de M.. Paso 1: Pascal M M M Pascal M’ Manual PascalM P
11
Bootstrapping Paso2: Nota: Posibilidad#5 es llamada“cross-compiling” (compilacion cruzada). Pascal M’ M Pascal M’ Pascal M’ By hand
12
Bootstrapping Varios compiladores experimentan una larga cadena de pasos de bootstrapping. Por ejemplo, XPL (un dialecto de PL/I), fue escrito primero en Algol, luego en XPL, y llevado a B5500 y luego a un IBM 360. Ocho pasos de bootstrapping fueron requeridos.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.