Lenguajes de programación. Clasificación de los lenguajes de programación. Según su grado de independencia de la máquina. Según la forma de sus instrucciones.
Clasificación de los lenguajes por generaciones. Ventajas e inconvenientes de los lenguajes de alto nivel. Otros lenguajes.
1. PONTIFICIA UNIVERSIDAD CATOLICA
DEL ECUADOR SEDE IBARRA
COMPILADORES
SEMESTRE MARZO - JULIO 2012
INSTRUCTOR: DIEGO BAROJA LLANOS
INGENIERO INFORMATICO
CARRERA: ING. EN SISTEMAS
2. PRESENTACION
El profesional en formación tendrá la capacidad de
desarrollar: análisis, toma de decisiones; con un
pensamiento lógico, reflexivo y creativo bien
fundamentado.
En muchas ocasiones, la selección de una herramienta de
desarrollo se hace al azar y sin un previo análisis de sus
beneficios. La diferenciación entre traductor, intérprete y
compilador unido al conocimiento sobre las funciones que
desempeñan cada una de las etapas que los conforman,
constituyen un criterio válido al momento de seleccionar
una u otra herramienta de la amplia gama existente en el
mercado.
La asignatura Compiladores provee las bases teóricas
necesarias para la adecuada selección de una herramienta
de desarrollo mediante el análisis de programas
computacionales existentes en el mercado.
3. METODOLOGIA
Presentación del Tema Diagnóstico
Lluvia de preguntas e ideas
Explicación y exposición del docente
Revisión de clases anteriores.
Re - alimentación.
Trabajos en equipos (en clase y fuera de ella)
Lecturas
Exposiciones de estudiantes
Revisión de Documentos de apoyo
Elaboración de Diagramas (Mapas Conceptuales, Mentefactos, etc..)
Trabajos individuales Comentarios.
Ejercicios de aplicación Debates
Talleres en general.
Formulación de casos prácticos, por parte del docente.
Reconocimiento del mercado y clase de problemas por parte de los estudiantes.
Determinar los resultados obtenidos.
Investigación bibliográfica y de campo, para determinar casos obtenidos
4. RECURSOS
Recursos Materiales.
Marcadores no permanentes (tiza líquida).
Textos
Audiovisuales
Computador
Acetatos
- Internet (computador)
- Retroproyector
Software
Sistema Operativo Windows
Visual . Net C# .C++
Software Ejemplo facilitado por el Tutor
5. ACREDITACIONES
TIEMPOS EVALUACIONES PTOS
PRIMER PARCIAL Pruebas 8
Talleres y Actuación en Clase 3
Deberes 3
Asistencia 1
Total 15
SEGUNDA PARCIAL Pruebas 5
Proyecto 5
Talleres y Actuación en Clase 2
Deberes 2
Asistencia 1
Total 15
FINAL Examen Final 20
6. SISTEMA DE EVALUACION
La evaluación se basará en:
Trabajos de grupo (talleres).
Trabajo individual
Exposiciones.
Investigaciones.
Pruebas escritas.
Asistencia y puntualidad
Evaluación Cognitiva.- Pruebas, exámenes, trabajos, consultas.
Evaluación Actitudinal.- Puntualidad, Predisposición al trabajo,
Talleres en Grupo.
Evaluación Procedimental.- Aplicación oportuna de conocimientos
para resolver problemas; procedimientos y estrategias aplicadas
por los estudiantes en la solución de cuestionamientos.
7. Fecha de Entrega de
Calificaciones.
Primera parcial 14/05/2012
Segunda Parcial 07/07/2012
Examen del 9 al 14 de Julio 2012
8. Temas
Que es un programa?
Que es un lenguaje de
programación?
Características de los lenguajes de
programación
Paradigmas de programación
9. Qué es un programa?
La unión de una secuencia de
instrucciones que un computador
puede interpretar y ejecutar y un
conjunto de estructuras de datos
que almacenan la información sobre
la que la operan las instrucciones
10. Que es un lenguaje de
programación?
Es una técnica de comunicación
estilizada que se utiliza para
controlar el comportamiento de una
maquina (usualmente un
computador)
Como los lenguajes humanos, los
lenguajes de programación tienen
reglas sintácticas y semánticas para
definir el significado
11. Que es un lenguaje de
programación?
Herramienta que permite a un
programador especificar de manera
precisa: sobre qué datos una
computadora debe operar, cómo
deben ser estos almacenados y
transmitidos y qué acciones debe
tomar bajo una variada gama de
circunstancias
12. Que es un lenguaje de
programación?
Ejemplos:
Visual Basic
C/C++
JAVA
FORTRAN
LISP
13. Características de los
lenguajes de programación
Tipos de datos
Estructuras de datos
Instrucciones y Control de flujo
Filosofía de diseño
Compilación e Interpretación
14. Tipos de datos
Internamente, todos los datos de los
computadores tradicionales están
guardados simplemente como ceros o
unos(binario)
Un solo valor en memoria puede ser
interpretado de múltiples formas:
10010110
“Hola”
Azul – Rojo – Verde
150
16. Instrucciones y Control de
flujo
int a = 0;
while (a!=10){
if (a==5){
cout << “La variable a va en 5”;
}
a++;
}
b=a
17. Filosofía de diseño
Cada lenguaje se desarrolla de
acuerdo a un diseño especial o una
filosofía
Estos están ligados al paradigma de
programación a utilizar
Se refiere a la forma de hacer las
cosas
18. Compilación e
Interpretación
Interptetes: analizan las
instrucciones una a una y las
ejecutan directamente
Compiladores: convierten el código
fuente a código de maquina para ser
ejecutado posteriormente
19. Paradigmas de
programación
Orientado a aspectos
Concurrente
Declarativo
Funcional
Imperativo
Lógico
Multiparadigma
Orientado a objetos
Scripting
20. Lenguajes Declarativos
Describen un problema mas que
definir una solución
Todos los lenguajes puramente
funcionales y lógicos son
Declarativos
Ejemplos: ABSET, Lustre, MetaPost,
Prolog, SQL, XSL Transformations
21. Lenguajes Funcionales
Definen programas y subrutinas
como funciones matematicas
Muchos de estos lenguajes estan
unidos a herramientas de calculo
matematico
Ejemplos: Clean, Erlang, Haskell,
Mathematica
22. Lenguajes basados en
logica
Especifican un conjunto de atributos que
una solución debe tener, en vez de un
conjunto de pasos para obtener la
solución
En este paradigma se definen reglas
lógicas y luego un motor de inferencia
lógico permite extraer conclusiones o
responder a preguntas planteadas al
sistema
Ejemplos: ALF, Curry, Prolog, Oz
23. Scripts
En un sentido tradicional, los scripts
están diseñados para automatizar
tareas usadas frecuentemente que
usualmente tienen que ver con
llamar o pasar comandos a
programas externos
24. Scripts
Muchos programas de aplicación
complejos dejan a los usuarios
implementar funciones
personalizadas proveyéndoles de un
lenguaje propio.
Muchos de estos deciden utilizar
lenguajes de scripting tradicionales
como el Perl o Visual Basic
26. Programación imperativa
Opuesta a la programación
declarativa, este paradigma describe
la computación en términos de un
estado del programa y de unas
instrucciones que cambian dicho
estado.
Los programas imperativos son una
secuencia de comandos para que el
computador realice
27. Programacion Estructurada
Hace uso de las estructuras de
control de flujo
Es Turing completa, esto quiere
decir que todo algoritmo computable
puede ser escrito en términos de
programación estructurada
28. Programación
procedimental
Es un paradigma de programación basado
en el concepto de “llamado de
procedimientos”
Procedimientos, tambien conocidos como
rutinas, subrutinas, metodos o funciones
simplemente consienen series de pasos
computacionales.
Cualquier procedimiento puede ser
llamado en cualquier punto durante la
ejecucion de un programa, incluyendo
otros procedimientos o en él mismo
30. Programación Orientada a
Objetos
La idea detrás de la POO, es que un
programa de computador puede ser visto
como abarcando una colección de
unidades individuales, objetos, que
actúan unos con otros
Opuesto a la forma de ver tradicional en
la cual un programa debe ser visto como
una colección de procedimientos o
simplemente una lista de instrucciones
para el computador
31. Programación Orientada a
Objetos
Cada objeto es capaz de recibir
mensajes, procesar datos, y enviar
mensajes a otros objetos.
Es la unión de la programación
estructurada y procedimental con
los tipos de datos abstractos