Title: IE' Fernando Jimnez Valencia'
1Unidad III CompiladoresIntroducción al Software
I
- IE. Fernando Jiménez Valencia.
- Noviembre 2009.
2OBJETIVO
- Al terminar la unidad el alumno describirá los
conceptos y las diferentes partes de los
compiladores
3AGENDA
- Antecedentes.
- Programa, lenguajes de programación, etc.
- Clasificación y generaciones.
- Compilación.
- Proceso.
- Estructura.
- Bibliografía.
4ANTECEDENTES
- Al finalizar el tema el alumno describirá los
conceptos básicos de programa, lenguaje de
programación y su clasificación.
5Programa
- Conjunto de pasos para llevar acabo una tarea o
la resolución de un problema (ejemplo una receta
de cocina, un plan de trabajo, etc.)
Un programa es un archivo como cualquier otro
archivo en el sistema. Un proceso es un programa
en ejecución. (Ejemplo Acomodando cajas
clasificadas y ordenadamente, cocinando a través
de una receta, etc.)
6Estructura funcional de un programa
Memoria central
datos
resultados
ENTRADA
SALIDA
PROCESOS
PROGRAMA
7Esquema de un programa
objetos
Programa
Acciones
8Programación
- Consiste en la elaboración de una solución o
algoritmo (programa) de un problema planteado.
- La solución inicialmente se diseña utilizando
una notación intermedia llamada pseudocódigo o
mediante notaciones gráficas como diagramas de
flujo, sin tener en cuenta el lenguaje de
programación que se vaya a utilizar.
- En el diseño se utilizan técnicas como la
programación estructurada y el diseño modular.
9Codificación
- Consiste en escribir el algoritmo o pseudocódigo
en un lenguaje de programación.
Imprime los números pares que hay entre 1 y
100.
for (i2 ilt100ii2) printf( d, , i)
10Lenguaje de Programación
- Notación para escribir programas, a través de los
cuales podemos comunicarnos con el hardware y dar
así las ordenes adecuadas para la realización de
un determinado proceso.
11El lenguaje de programación se define por su
- Gramática (sintaxis y morfología) o conjunto de
reglas que se aplican a un alfabeto constituido
por el conjunto de símbolos utilizados.
(sintaxis) inteligente El muy estudiante es El
estudiante es muy inteligente.
(morfología) Color, colores, descolorido
12Clasificación de los Lenguajes de programación
- Atendiendo su proximidad del lenguaje maquina al
lenguaje humano.
13Lenguaje de bajo nivel (máquina)
- Primer lenguaje utilizado en la programación.
- Único que entiende directamente la computadora.
- Se escribe únicamente en alfabeto binario. La
presencia de voltaje se representa con un uno (1)
y la ausencia con un cero (0).
0000 0001 1010 0001 01 A1 1000 1001 1001
1010 89 9A 0011 1010 1001 1100 3A 9C
- Dejo de utilizarse como lenguaje de programación
por su dificultad y complicación.
- Dependencia del hardware en que se crean
14Lenguaje intermedio (ensamblador)
add r1, 2
- Primer intento de sustituir el lenguaje maquina
por otro similar al lenguaje humano. - Utiliza para su escritura palabras nemotécnicas
en lugar de cadenas de bits.
cmp r1, r2
move r1, r2
put r1, hxF21B
- Dependen del set de instrucciones de la máquina
en que operan
- Solo corren en la máquina en que se crearon.
15Lenguaje de alto nivel (evolucionado)
- Se caracteriza por utilizar una semántica similar
al lenguaje humano natural. - Incorporan instrucciones comprensibles (while, if
then, do, repeat, etc.)
- Logran la independencia de la máquina (código
portable) con la única condición de disponer de
un programa traductor o compilador.
- El problema que presenta es la gran cantidad de
ellos con diferentes versiones o dialectos.
16Ejemplo de Lenguajes de Alto nivel
- FORTRAN
- (traductor de formulas) lenguaje especializado en
aplicaciones técnicas y científicas. Es el más
antiguo y fue definido en 1955 en EU por IBM.
17Ejemplo de Lenguaje de alto nivel
- COBOL.- Lenguaje común orientado a negocios
(aplicaciones comerciales). Creado en 1960 por
CODASYL y patrocinado por el Departamento de
Defensa de EU.
18Otros ejemplos de Lenguaje de alto nivel
- BASIC.- Lenguaje de fácil entendimiento para
principiantes . Creado en 1965 por John G. Kemeny
y Thomas E. Kurtz del Dartmouth College (EU).
- PL/I.- Creado a inicios de los 60s por IBM para
el sistema 360, inspirándose en los lenguajes
AGOL, COBOL y FORTRAN. Útil para aplicaciones
técnico-científicas, comerciales, de proceso de
textos, de base de datos y de programación de
sistemas.
19Lenguaje de alto nivel
- PASCAL.- creado en 1970 por el suizo Nicklaus
Wirth, Aporta los conceptos de tipo de datos,
programación estructurada y diseño descendente.
20Lenguaje C
- Creado en 1972 por Dennis Ritchie bajo el trabajo
de Ken Thomson, creadores UNIX. Lenguaje idóneo
para la programación de sistemas, aplicaciones
técnico-científicas, de base de datos, etc.
21Clasificación en base al paralelismo de la
evolución de las computadoras
- Primera generación (40s y 50s).- Tubo al vacio
(bulbo). Lenguajes de maquina y ensambladores. - Segunda generación (50s-60s).- Transistor de
silicio. Primeros lenguajes de alto nivel FORTRAN
, BASIC y COBOL. - Tercera generación (fines de los 60s y década de
los 70s).- Circuitos integrados y
microprocesadores. Lenguajes PASCAL, MODULA,
C/C, Visual Basic, Java
- Cuarta generación (finales 70s a la fecha).-
Orientados básicamente a las aplicaciones de
gestión y manejo de base de datos. Progress,
Oracle, SQL, Informix, etc. - Quinta generación.- Orientados a la inteligencia
artificial y al procesamiento del lenguaje
natural. LIPS, PROLOG, etc.
22PRIMERA PARTE