1. Lenguaje de
Programación
INTENSIVO 2013
Ing. Jomar Matos
República Bolivariana de Venezuela
Ministerio del PP para la Educación Universitaria
Universidad Nacional Experimental Rómulo Gallegos
Área de Ingeniería en Sistemas
Escuela de Ingeniería en Informática
3. Datos
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
Un tipo de dato en programación es….
• Un atributo de una parte de los datos.
• Indica al programador y/u ordenador la clase de datos que se va a procesar.
• Conjunto de valores.
• Casi todos los lenguajes incluyen explícitamente la notación de tipo de datos.
• Algunos LP permiten al programador definir tipos de datos adicionales.
6. Palabra Reservada
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
Es una palabra que tiene SIGNIFICADO GRAMATICAL
especial para ese lenguaje y NO podrá ser utilizada
como identificador para ese lenguaje.
7. Historia de los LP
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Al comienzo sólo existía el código máquina (años 40). No existían los
lenguajes de programación.
• Código máquina: secuencia de bits que controlan directamente un
procesador. Muy tedioso. 55 89 e5 53 83 ec 04 f0 e8 31...
• Ensamblador: Abreviaturas mnemotécnicas para expresar
operaciones. El traductor abreviatura-instrucción código máquina es
el ensamblador. subl, pushl, movl, ...
• Necesidad de un lenguaje independiente de la máquina (años 50).
8. Historia de los LP
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
•FORTRAN fue el primer lenguaje de programación. Desarrollado por
un equipo de IBM dirigido por John Backus en 1956.
• Desde 1954 hasta la actualidad se han documentado
más de 2500 lenguajes de programación.
10. Paradigmas de Programación
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Cada uno posee sus propias características.
• Proponen soluciones a problemas desde
diferentes perspectivas y filosofías.
• Son propuestas tecnológicas adoptadas por la
comunidad de desarrolladores.
• Hoy día la POO “podría” ser la más usada.
• Es el Programador quien decide cuál Paradigma
usar.
11. Paradigmas de Programación
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Algunos LP son MultiParadigmas.
•Scala: Imperativo, orientado a objetos, funcional, genérico y concurrente
•Erlang: Funcional, concurrente y distribuido
•Perl: Imperativo, orientado a objetos y funcional
•PHP: Imperativo, orientado a objetos, funcional y reflexivo
•JavaScript: Imperativo, orientado a objetos (prototipos) y funcional
•Java: Imperativo, orientado a objetos, reflexivo y genérico
•Python y Ruby: Imperativo, orientado a objetos, reflexivo y funcional
•C++: Imperativo, orientado a objetos, funcional y genérico
•C#: Imperativo, orientado a objetos, funcional (lambda), reflexivo y genérico
12. The Mozart Programming System
Paradigmas de Programación
Soporta nueve paradigmas de programación.
http://www.mozart-oz.org/
13. ¿Por qué estudiar LP?
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Mejora el uso del lenguaje de programación .
• Incrementa el vocabulario de los elementos de
programación.
• Permite una mejor elección del LP.
• Mejora la habilidad para desarrollar programas
efectivos y eficientes.
• Facilita el aprendizaje de un nuevo LP.
14. Los LP en continua evolución
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
1993, Yukihiro Matsumoto.
• Lenguaje multi-paradigma interpretado y
muy expresivo que actualmente se utiliza
tanto para desarrollar aplicaciones web
como videojuegos.
• Proyecto vivo, cada año aparecen nuevas
versiones.
http://rubyonrails.org/
15. Los LP en continua evolución
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
2003, Alemán: Martin Odersky.
• Respuesta a los problemas de los lenguajes
tradicionales imperativos para manejar la
concurrencia.
• Está implementado sobre Java y corre en la
Máquina Virtual Java.
http://www.scala-lang.org/
16. Los LP en continua evolución
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
2009, Robert Griesemer, Rob Pike, Ken
Thompson. (Google Inc.)
Una mezcla de C y Python que intenta
conseguir un lenguaje de programación de
sistemas muy eficiente, expresivo y también
multiparadigma.
Compilado, Interpretado, concurrente,
estructurado. http://golang.org/
17. Elementos de los LP
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
Abelson y Sussman, “Todos los LP perminten combinar
ideas simples en ideas más complejas mediante los
siguientes mecanismos:”
Abstracción
18. Elementos de los LP
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
Abelson y Sussman, “Todos los LP perminten combinar
ideas simples en ideas más complejas mediante los
siguientes mecanismos:”
Expresiones
Primitivas
• representan las entidades más simples del
lenguaje.
Combinación
• con los que se construyen elementos compuestos a
partir de elementos más simples.
Abstracción • con los que dar nombre a los elementos
compuestos y manipularlos como unidades.
19. Abstracción
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Una misión fundamental de los LP es proporcionar
herramientas que sirvan para construir abstracciones.
• Sirven para tratar la complejidad del mundo real.
• Existen abstracciones propias de la computación:
listas, árboles, grafos, tablas hash...
20. Traductores
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Proporcionan una gran variedad de estrategias para
conseguir que un programa se ejecute en un
ordenador.
• Cuyos datos de entrada son el código fuente de otros
programas.
• Compiladores e Intérpretes.
META-PROGRAMAS
21. Traductores
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Compiladores e Intérpretes.
• Proporcionan una gran variedad de estrategias para
conseguir que un programa se ejecute en un
ordenador.
• Cuyos datos de entrada son el código fuente de otros
programas.
META-PROGRAMAS
22. Compilación
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Diferentes momentos en la vida de un programa:
tiempo de compilación y tiempo de ejecución.
• Mayor eficiencia.
C, C++
23. Interpretación
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• No hay diferencia entre el tiempo de compilación y el
tiempo de ejecución.
• Mayor flexibilidad: el código se puede construir y
ejecutar "on the fly" (funciones lambda o clousures)
Basic, LISP, Scheme, Python, Ruby
24. Ejecución en Máquina Virtual
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
Java, Scala
25. Backtracking
Intensivo 2013Lenguaje de Programación Ing. Jomar Matos
• Estrategia para encontrar soluciones a problemas que
satisfacen restricciones.
• Ej. Restauración SO, Inscripciones en Línea, BBDD.
Vuelve - Atrás