Zusammenfassung der Ressource
Autómatas y Compiladores
- ¿Por qué es importante?
- Entrena a buenos desarrolladores, se aprenden metodologías para resolver
complejos y amplios problemas, tienen influencia en todos los programas que usen
compiladores,
- Usan el análisis de un programa para transformar el código, hacen
que el costo de la abstracción sea razonable
- Historia de los compiladores
- Grace Hopper
- Primer compilador A-0
- John Backus
- Primer compilador completo FORTRAN I
- Problema: Pasar de un lenguaje a otro, usualmente bajar
abstracción
- Intérprete
- Convierte un código fuente y
lo ejecuta al mismo tiempo
- Corre directamente el código
- Compilador
- Convierte el código a un
ejecutable
- ¿Cómo funciona?
- Mediante una secuencia
de fases
- Análisis Léxico
- Crea:
Tokens
- Análisis Sintáctico
- Crea: Árbol
sintáctico
- Análisis Semántico
- Crea: Árbol sintáctico
mejorado
- Generador de Código Intermedio
- Crea: Interpretación intermedia
del código
- Optimizador del código intermedio
- Crea: Representación intermedia
optimizada
- Generador de código
- Crea: Código
objetivo
- Optimizador de código objetivo
- Crea: Código objetivo
optimizado
- Tabla de símbolos
- Todos los nombres de
identificador junto con sus
tipos se almacenan aquí.
- Soluciones
- Máquinas de estado
finito
- Reconocen hileras a partir de
transiciones de estados
- Aceptors
- Moore
- Estado en el que
estoy
- Mealy
- Transiciones que
he seguido
- Dado una entrada
produce un output
específico
- Recognizers
- Reconoce o no la
entrada
- Autómata finito
- No determinista NFA
- Determinista DFA
- Lingüística
- Símbolo
- Palabra
- Alfabeto
- Lenguaje
- Clausura de Kleen
- Conjunto de todas las posibles
concatenaciones de cadenas
- Un conjunto de
palabras, formado por
símbolos en un alfabeto
dado.
- Gramáticas
- Sirven para representar lenguajes y
generarlos
- Lenguaje regular
- Gramática Regular
- Generan lenguajes regulares y
los representan
- Jerarquía de Chomsky
- Recursiva por
izquierda
- Recursiva por
derecha
- Se pueden generar a partir de los
lenguajes básicos, con la aplicación de
las operaciones de unión,
concatenación y * de Kleene un número
finito de veces.
- Expresiones regulares
- Patrón de búsqueda para
reconocer hileras
- Representaciones equivalentes
- Para reconocer palabras pertenecientes a un
lenguaje
- Las cuales forman parte del análisis léxico y
compiladores
- Todos son reconocidos por
- Máquina de Touring
- Dispositivo que manipula símbolos sobre una tira de cinta
de acuerdo a una tabla de reglas
- Conjunto finito de símbolos.
Se le conoce con Σ
- Cadena finita formada por
la concatenación de un
número de símbolos.
- Dato arbitrario que tiene algún
significado o efecto en la
máquina
- ¿Qué es un autómata?
- Es un modelo matemático para una máquina de
estado finito
- ¿Como se relaciona con una computadora?
- Sienta las bases de la algoritmia y permite modelar y diseñar soluciones
para un gran número de problemas.