Anda di halaman 1dari 2

Compilador

-> un compilador es el sistema de software que se encarga de traducir un lenguaj


e fuente especifico (de alto nivel) aun lenguaje objetivo generalmente lenguaje
maquina
-> su rol es reportar cualquier error generado durante el proceso de traduccion
Tipos de errores
-> compilacion
-> tiempo de ejecucion
-> errores logicos
Todo se representa con codificacion binaria
los programas son secuencias de bytes (hay 256)
JVM utiliza la pila para manipular expresiones
Traductor -> programa que traduce de un lenguaje a otro
-> traducto de idiomas
existen de 2 tipos de traductores
->compiladores
->interpretes
Preprocesador
->modifica el programa fuente antes de la verdadera compilacion
->fase preliminar de la compilacion
->utiliza macroinstrucciones para insertar codigo
compiladores cruzados
->genera codigo para ser procesado en un compilador diferente
interprete de comandos
->traduce sentencias simples a invocaciones a programas
hibridos
->pseudointerpretados
Emsambladores
->pioneros de la compilacion
->compilador sencillo
->cada sentencia fuente a un unica instruccion en codigo maquina
->lenguaje emsamblador
Macroemsamblador
emsamblador con un preprocesador
Fases para ejecutar un lenguaje de alto nivel
->compilacion
->enlace
->carga
compilador -> prodce un archivo objeto->estructura de modulos llamados registros
enlace o linker -> resuelve las referencias cruzadas
Metacompilador
->compilador de compiladores
->acepta la descripcion de un lenguaje y produce un compilador de ese lenguaje
Tipos
->trabajan con gramaticas libres de contexto ->reconocen la sintaxis del lenguaj
e
->trabajan con gramaticas regulares ->segmentacion lexica
Etapas de la compilacion
analisis-> revisa entradas y genera estructuras ->errores en el programa fuente
sintesis-> construye el programa objetivo a partir de las estructuras -> erroes
al generar el codigo
Etapa de analisis
->analisis lexicografico-> identificadores, palabras reservadas
->analisis sintactico -> reglas gramaticales
->analisis semantico -> chequeo de tipos, rangos de valores, existencia de varia
bles
Etapa de sintesis
->generacion de codigo intermedio-> codigo independiente de la maquina muy pare
cido al emsamblador
->generacion de codigo maquina -> codigo maquina ejecutable
->optimizacion
Tabla de simbolos
->hace funciones de diccionario de datos, tabla hash
automatas finitos
es usado en procesamiento de texto, compiladores y dise o de hardware
gramaticas libres de contexto, es utilizado en lenguajes de programacion e intel
igencia artificial
conjunto grupo de objetos
->no importa el oreden y que se repitan
secuencia es una lista de onbjetos en algun orden (tuplas)
relacion entre un conjunto S y uno T (pares ordenados)
dominio (conjunto de los primeros elementos)
rango (conjunto de los segundos elementos)
Un grafo G consiste de un conjunto finito V llamado vertices, un conjunto finito
E llamado arcos, y una funcion g que asigna a cada arco un subconjunto {v , w },
donde v y w son vertices (ypueden ser el mismo)
G = {V , E , g}
automata modelo abstracto de computacion
->deterministas (DFA) ->por que se puede determinar cada transicion
->No-deterministas (NFA)
Un DFA es una 5-tupla:
M = (Q, S, d, q0 , F ) donde:
Q = Conjunto finito de los estados internos
S = Conjunto finito de simbolos llamado alfabeto
d : QxS Q = Funcion de transicion
q0 Q = Estado inicial
F Q = Conjunto de estados finales
Patron: es una expresion regular
Token: es la categoria lexica asociada a un patron. Un token es un terminal para
la gramatica libre de contexto del analizador sintactico
Lexema: es cada secuencia de caracteres concreta que encaja con un patron.

Anda mungkin juga menyukai