Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a compiladores, Resúmenes de Compiladores

Aquí encontraras una introducción al curso de compiladores

Tipo: Resúmenes

2018/2019

Subido el 13/04/2019

angiesoto
angiesoto 🇵🇪

4

(1)

1 documento

1 / 16

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
UNIVERSIDAD NACIONAL
DE SAN MARTIN
TEORIA DE COMPILADORES
ING. AMERICO TORRES GONZALES
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Introducción a compiladores y más Resúmenes en PDF de Compiladores solo en Docsity!

UNIVERSIDAD NACIONAL

DE SAN MARTIN

TEORIA DE COMPILADORES

ING. AMERICO TORRES GONZALES

DEFINICIONES

GENERALES

INTRODUCCION

¿QUÉ ES UN PROGRAMA INFORMATICO?

ES UNA SECUENCIA DE INSTRUCCIONES , ESCRITAS

PARA REALIZAR UNA TAREA

ESPECIFICA EN UNA COMPUTADORA O DISPOSITIVO

ELECTRONICO.

¿QUÉ ES UN LENGUAJE DE PROGRAMACION?

ES UN LENGUAJE FORMAL DISEÑADO PARA REALIZAR PROCESOS QUE PUEDEN SER

LLEVADOS A CABO POR MAQUINAS COMO LAS COMPUTADORAS, ROBOTS, ETC.

¿QUE RELACION GUARDA LA TEORIA DE COMPILADORES CON

OTRAS RAMAS DE LA INGENIERIA INFORMATICA Y DE SISTEMAS?

EL ESTUDIO DE LA ESCRITURA DE LOS COMPILADORES SE RELACIONA CON LOS

LENGUAJES DE PROGRAMACION, LA ARQUITECTURA DE LAS MAQUINAS, LA TEORIA

DE LENGUAJES, LOS ALGORITMOS Y LA INGENIERIA DE SOFTWARE.

TIPOS DE COMPILADORES

3. COMPILADORES DE UNA PASADA: GENERAN EL CODIGO MAQUINA A PARTIR

DE UNA UNICA LECTURA DEL CODIGO FUENTE.

4. COMPILADORES DE VARIAS PASADAS: NECESITAN LEER EL CODIGO FUENTE

VARIAS VECES ANTES DE PODER PRODUCIR EL CODIGO MAQUINA.

5. COMPILADORES JIT (JUST-IN-TIME) : FORMAN PARTE DE UN INTERPRETE Y

COMPILAN PARTES DEL CODIGO SEGÚN SE NECESITAN. TAMBIEN ES CONOCIDA

COMO TRADUCCION DINAMICA, ES UNA TECNICA PARA MEJORAR EL

RENDIMIENTO DE SISTEMAS DE PROGRAMACION QUE COMPILAN A bytecode , CONSISTE EN TRADUCIR EL bytecode A CODIGO MAQUINA NATIVO EN TIEMPO DE EJECUCION.

LOS COMIENZOS

 EL PRIMER PASO HACIA LOS LENGUAJES DE PROGRAMACION MAS AMIGABLES

PARA LAS PERSONAS FUE EL DESARROLLO DE LOS LENGUAJES ENSAMBLADORES

A INICIOS DE 1950 , LOS CUALES USABAN MNEMONICOS.

 MAS ADELANTE, SE AGREGARON MACRO INSTRUCCIONES A LOS LENGUAJES

ENSAMBLADORES , PARA QUE UN DESARROLLADOR PUDIERA DEFINIR

ABREVIACIONES PARAMETRIZADAS PARA LAS SECUENCIAS DE USO FRECUENTE

DE LAS INSTRUCCIONES DE MAQUINA.

 ES DIFICIL DAR UNA FECHA EXACTA DE LA APARICION DEL PRIMER COMPILADOR,

PORQUE EN UN PRINCIPIO GRAN PARTE DE LOS TRABAJOS DE

EXPERIMENTACION Y APLICACIÓN SE REALIZARON DE MANERA INDEPENDIENTE

DE FORMA SIMULTANEA POR VARIOS GRUPOS.

 EL PRIMER COMPILADOR DE FORTRAN NECESITO PARA SU IMPLEMENTACION DE

18 AÑOS DE TRABAJO, Y ESTABA ORIENTADO HACIA LA COMPUTACION

CIENTIFICA.

USOS Y FUNCION DE LOS COMPILADORES

Por lo general un Compilador es un componente más dentro de una cadena de otros los cuales están integrados en un IDE.

FASES DEL COMPILADOR

 UN COMPILADOR IMPLEMENTA DOS PROCESOS: ANALISIS Y SINTESIS.

1. ANALISIS : TRATA DE LA ESCRITURA CORRECTA DEL CODIGO FUENTE. ESTA

FASE COMPRENDE A SU VEZ VARIAS SUB FASES:

ANALISIS LEXICO : Encargada de leer el código fuente y separarlo en lotes para poder ser leído por el analizador sintáctico.  ANALISIS SINTACTICO : Evalúa los lotes de código con el fin de que se cumpla con los requerimientos definidos por el compilador.  ANALISIS SEMANTICO : Busca establecer que el código fuente cumpla con las reglas semánticas establecidas por el compilador.

  1. SINTESIS : DESPUES DEL PROCESO DE ANALISIS SE PROCEDE A GENERAR GRUPOS DE LOS COMPONENTES QUE CONFORMAN EL PROGRAMA, PARA GENERAR UNA SALIDA.

PROCESADORES DE LENGUAJE

RECAPITULANDO, un Compilador es un programa que puede leer un programa en un lenguaje (fuente) y traducirlo en un programa equivalente en otro lenguaje (destino). Si el programa destino es un programa ejecutable en lenguaje máquina, entonces el esuario puede ejecutarlo para procesar las entradas y producir salidas.

PROCESADORES DE LENGUAJE

INTERPRETE

Es otro tipo común de procesador de lenguaje. En vez de producir un programa destino como una traducción, el intérprete nos da la apariencia de ejecutar directamente las operaciones especificadas en el programa origen con las entradas proporcionadas por el usuario. Es decir, analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. OJO : Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios.

PROCESADORES DE LENGUAJE

INTERPRETE vs COMPILADOR  Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.  Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración