Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes....
-
Upload
porfirio-orona -
Category
Documents
-
view
213 -
download
0
Transcript of Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes....
![Page 1: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/1.jpg)
Introducción
![Page 2: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/2.jpg)
Agenda Clase 1
● Preámbulo histórico.● Razones de la Diversidad de Lenguajes.● Razones del Éxito de un Lenguaje.● Clasificación● Motivación del Estudio de los Lenguajes.● Diversos Aspectos de la Compilación y la
Interpretación.● Casos de Estudio.● Fases de la Compilación.
![Page 3: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/3.jpg)
Preámbulo
40’s:● Primeros computadores electrónicos de gran costo y
tamaño, con escasa capacidad de cómputo.● Programados en principio en lenguaje de máquina,
posteriormente en lenguaje ensamblador.● Programación centrada en el tipo de máquina.
![Page 4: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/4.jpg)
Preámbulo
50’s:● Se desarrolla el primer lenguaje de alto nivel
(dialecto original de Fortran)● A Fortran le siguen lenguajes como LISP y Algol● Traducción de lenguaje de alto nivel a lenguaje
de máquina a través de un compilador.
![Page 5: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/5.jpg)
Razones de la diversidad de
lenguajes
Evolución
Propósitos Especiales
Preferencia Personal
![Page 6: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/6.jpg)
Razones de Éxito de un
Lenguaje
Poder Expresivo
Facilidad de Uso para Novatos
Facilidad de Implementación
Excelentes Compiladores
Economía, Patronato e Inercia
![Page 7: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/7.jpg)
Clasificación de los Lenguajes
● Declarativos ( qué hace la computadora) Funcionales: LISP/Scheme, ML, Haskell Flujo de Datos: Id, Val Lógicos, basados en restricciones: Prolog, VisiCalc
• Imperativos (cómo debería hacerlo) Von Neumann: Fortran, Pascal,Basic, C Orientados a Objetos. Smalltalk, Eiffel, C++, Java
![Page 8: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/8.jpg)
Por qué estudiar Lenguajes
● Facilita el aprendizaje de lenguajes en particular.● Permite entender las características obscuras de los
lenguajes que se utilizan.● Ayuda a la escogencia entre alternativas disponibles ● Contribuye a hacer buen uso de debuggers, assemblers y herramientas relacionadas.
● Permite simular características en lenguajes que no las poseen.
![Page 9: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/9.jpg)
Compilación e Interpretación:
Compilador
Código Fuente
Entrada Salida
Programa ObjetoCompilador
Programa Objeto
Controla la
Compilación
Controla la
Ejecución
![Page 10: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/10.jpg)
Compilación e Interpretación:
Interpretador
Código Fuente
EntradaSalidaInterpretador
Controla la
Ejecución
![Page 11: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/11.jpg)
Compilación e Interpretación:
Traductor
Código Fuente
EntradaSalida
Programa IntermedioTraductor
Máquina VirtualPrograma Intermedio
![Page 12: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/12.jpg)
Compilación e Interpretación:
Enlazador (Linker)
Programa Fuente
Librería de rutinas
Programa en Lenguaje
de Máquina
Lenguaje de Máquina
Incompleto
Compilador
Linker
Lenguaje de Máquina
Incompleto
![Page 13: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/13.jpg)
Compilación e Interpretación:
Compilador + “Assembler”
Programa Fuente
Lenguaje
de Máquina
Lenguaje
EnsambladorCompilador
AssemblerLenguaje
Ensamblador
![Page 14: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/14.jpg)
Compilación e Interpretación:
Compilación en C
Código Fuente
Lenguaje
Ensamblador
Código Fuente
Modificado.Preprocesador
CompiladorCódigo Fuente
Modificado
![Page 15: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/15.jpg)
Compilación e Interpretación:
Compilación en C++
Código Fuente
Código C
Programa Fuente
Modificado.Preprocesador
Compilador C++Programa Fuente
Modificado
Lenguaje
EnsambladorCompilador CCódigo C
![Page 16: Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.](https://reader036.fdocumento.com/reader036/viewer/2022082821/5665b4241a28abb57c8f79d2/html5/thumbnails/16.jpg)
Fases de la CompilaciónFlujo de Caracteres
Flujo de Tokens
Árbol Sintáctico Concreto
Árbol Sintáctico Abstracto
u otra forma intermedia.
Forma Intermedia Modificada
Lenguaje de máquina, ensamblado
u otro código objeto.
“Scanner” (Análisis Léxico)
“Parser” (Análisis Sintáctico)
Análisis Semántico y generación
de código intermedio
Mejoras Independientes del
código de la máquina (opcional)
Generación de código objeto
Mejoras de código específicas a
la máquina (opcional)
Tabla de Símbolos
FR
ON
T E
ND
BA
CK
EN
D