Está en la página 1de 4

INSTITUTO TECNOLÓGICO DE

VERACRUZ

INGENIERÍA EN SISTEMAS COMPUTACIONALES

ASIGNATURA:
LENGUAJES Y AUTOMATAS I

SEMESTRE-GRUPO:
SEPTIMO SEMESTRE – GRUPO 6J1B

PRESENTA:
MORALES FLORES JOSE MANUEL

N° DE CONTROL:
E19020322

DOCENTE:
OFELIA GUTIERREZ GIRALDI

PRODUCTO ACADÉMICO:
MAPA CONCEPTUAL
(Jerarquía de Chomsky)
(Estructura de un Compilador)

FECHA:
18/02/2022
TIPO 0 TIPO 1 TIPO 2 TIPO 3
LEGUAJES LEGUAJES LENGUAJE LEGUAJES
RECURSIVAMETE SENSIBLES AL INDEPENDIENTE O REGULARES
ENUMERABLES CONTEXTO LIBRES DE CONTEXTO

Las gramáticas de tipo 0 Estos tipos de lenguajes se Estos tipos de lenguajes Estos tipos de lenguajes se
incluyen todas las resuelven mediante se resuelven mediante resuelven mediate
gramáticas formales. autómatas lineales limitados. autómatas descendentes. autómatas finitos
Generan exactamente Características. Características Características
todos los lenguajes que Del lado derecho de cada Del lado derecho de cada Del lado derecho de cada
pueden ser reconocidos producción puede empezar producción pude empezar con producción debe empezar
por una máquina de con un símbolo terminal o con un símbolo terminal o con uno con un símbolo terminal
Turing. un no terminal y del lado no terminal Se trabajan con la
Estos lenguajes también izquierdo puede empezar con trabajan con estructura de grafos
se conocen como más de un símbolo no una estructura auxiliar dirigidos.
recursivamente terminal de árboles. Con este tipo de legaje se
enumerable o Turing- Se trabajan con estructuras Los leguajes regulares realiza los scanner
reconocible Idiomas. de datos equivalentes a una también se pueden resolver
Tenga en cuenta que esto pila linealmente acotada que mediate autómatas
es diferente de los acepte los lenguajes descendentes
lenguajes recursivos, que dependientes de contexto.
puede ser decidido Por Los lenguajes regulares y los
una máquina de Turing libres de contexto también se
siempre detenida. puede resolver mediate
autómatas lineales limitados

3
ANALIZADOR GENERADOR DE OPTIMIZADOR DE
ANALIZADOR CODIGO
LEXICO ANALIZADOR SEMANTICO CODIGO INTERMEDIO
SINTACTICO

Antes de generar el código


El analizador semántico Luego del análisis
El analizador léxico es la objeto puede ser
El analizador sintáctico (o recorre el árbol generado por semántico, algunos
primera f ase del conveniente mejorar el
parser) recibe la el parser y realiza compiladores generan un
compilador. Recibe código intermedio para
secuencia de tokens la verif icación de tipos código
como entrada el ahorrar espacio en memoria
desde el (typechecking), el análisis del intermedio a partir del árbol
programa f uente y o aumentar la velocidad de
analizador léxico y alcance de las variables de derivación. La ventaja de
produce una secuencia ejecución (no
produce un árbol y la aplicación de coerciones tener una representación
de tokens. Un token necesariamente ambas).
sintáctico del programa, (conversiones implícitas intermedia es que entonces
representa una Hay una gran variedad de
que se construye entre tipos). todas las f ases vistas hasta
secuencia de caracteres, optimizaciones de código
utilizando la gramática del Para realizar el typechecking ahora
como un identif icador, entre los dif erentes
lenguaje f uente. es necesario mantener un (incluida ésta) son
una palabra compiladores. Algunas de
El parser debe ser capaz mapeo de variables independientes del código
reservada (como int o ellas pueden ser:
de aplicar reglas de a tipos, llamado contexto. El objeto. Evitar recalcular expresiones
real) o un operador del El código intermedio puede
desambiguación de la dominio del contexto se comunes.
lenguaje (+ o ∗). La pensarse como un programa Eliminación de código
gramática. extiende a medida que
secuencia de caracteres para una máquina inalcanzable, es decir, que
que f orma el token se se declaran variables
abstracta, en el que las nunca llegará a ejecutarse
denomina lexema. variables son posiciones de debido a que, por ejemplo, la
memoria. guarda de un if siem pre será
falsa.
Cálculo previo de invariantes de
ciclo. Si una expresión no
cambia su valor durante la
ejecución de un ciclo, entonces
puede computarse antes del
GENERADOR DE mismo
CODIGO

GENERADOR DE
CODIGO
La última fase del compilador es la generación de código objeto. En
general, el código objeto consiste de instrucciones en un lenguaje En el desarrollo de cada una de las fases se
ensamblador. utilizan 2 tablas, la tabla de símbolo y la tabla de
Para cada variable que ocurre en el programa se selecciona una dirección errores. Estas interactúan constantemente con
de memoria y luego se traduce. cada instrucción en el lenguaje intermedio todas las etapas del compilador.
a una secuencia de instrucciones en código objeto
4

También podría gustarte