Académique Documents
Professionnel Documents
Culture Documents
Captulo 2. Lenguaje.
39
55
56
56
56
59
67
68
68
68
69
69
70
73
73
73
76
77
.......................................................................................
.......................................................................................
.......................................................................................
.......................................................................................
.......................................................................................
4.10 Conversin de expresin regular a autmata finito no determinista. ................................
4.11 Conversin de expresin regular a autmata finito determinista. ....................................
78
78
81
81
86
88
90
Captulo 5. Gramticas.
95
96
96
96
70
71
71
71
72
97
97
99
99
102
115
116
117
117
117
119
119
122
125
127
130
130
135
141
142
142
143
144
147
148
148
148
149
149
............................................................................................... 160
165
.................................................................... 166
169
171
174
175
175
176
177
177
179
179
180
182
185
187
188
188
189
189
191
197
199
200
202
204
205
206
206
207
208
211
213
215
217
225
.................................................................................... 232
241
Funcin main( ), carga del programa y ciclo de ejecucin de las instrucciones. ...............
Instruccin de ASIGNACIN. .................................................................................
Instruccin INPUT . ..............................................................................................
Instruccin PRINT . ..............................................................................................
Instruccin IF. ....................................................................................................
252
253
253
254
255
Apndice A. Simbologa .
267
269
Bibliografa.
309
ndice alfabtico.
311
Introduccin
Desarrollar un compilador es una de las aplicaciones ms complejas en el rea de sistemas
computacionales, debido a que se necesita integrar un conocimiento profundo en el rea de
matemticas discretas, la programacin de propsito general y las estructuras de datos.
Sin embargo, el desarrollo de un compilador puede facilitarse si se analizan detalladamente
cada una de las etapas que lo integran.
El concepto de compilador est intimamente ligado con el de lenguajes de programacin, que
en la actualidad son poderosas herramientas de desarrollo, los cuales integran un ambiente
de programacin que generalmente incluye un editor, ambientes visuales, depuradores,
preprocesadores, un compilador, cargadores, funciones de biblioteca de propsito general,
manejadores de bases de datos, controladores para sistemas distribuidos, instaladores, etc.
La responsabilidad del compilador dentro de los lenguajes de programacin es la de convertir
las instrucciones de alto nivel a cdigo ensamblador, el res to de las responsabilidades en la
generacin de aplicaciones en un lenguaje de programacin corren a cargo de las
herramientas antes mencionadas.
Se reconocen casi universalmente seis etapas en el desarrollo de un compilador, las cuales
son.
Lxico.
Sintaxis.
Semntica.
Generacin de cdigo intermedio.
Optimizacin de cdigo.
Generacin de cdigo ensamblador.
Las tres primeras etapas tienen una alta carga matemtica y las tres restantes una alta carga
de algoritmos y estructura de datos. Por lo anterior es necesario dominar, realmente dominar,
la parte matemtica y de programacin combinada con estructuras de datos para desarrollar
un compilador.
El objetivo de esta obra es aplicar con profundidad, claridad, detalle y desde cero los
modelos matemti cos que sustentan la teora de compiladores, para esto es necesario que el
programa de aprendizaje incluya temas perifricos o que se supone se deben tratar de
manera especializada y por separado.
El camino del conocimiento necesario para desarrollar un compilador se encuentra plasmado
en la grfica que ilustra la portada.
Si se tienen algunos antecedentes en los temas se puede observar que se dedican obras de
manera individual y especializada a cada uno de los temas.
Para lograr el objetivo de esta obra, se sintetizan los temas con mayor relevancia en el rea
de compiladores, distribuidos en los captulos de la siguiente forma.
Captulo 1. Teora de conjuntos
Matemticas discretas.
Teoria matemtica de la
computacin.
Captulo 2. Lenguajes.
Intrpretes.
Compiladores.
Programacin de sistemas.