Você está na página 1de 3

Lenguajes y Paradigmas de Programacin

Sesin 2: Lenguajes de Programacin


1
mircoles 9 de febrero de 2011
Referencias
Tema 1 de apuntes
Introduccin captulo 1 SICP (Building Abstractions with Procedures)
Captulo 1.2 PLP (The Programming Language Spectrum)
Captulo 1.3 PLP (Why Study Programming Languages)
Captulo 1.4 PLP (Compilation and Interpretation)
2
mircoles 9 de febrero de 2011
Indice
Historia de los lenguajes de programacin
Elementos de los lenguajes de programacin
Abstraccin
Paradigmas de programacin
Compiladores e intrpretes
Por qu estudiar lenguajes de programacin?
3
mircoles 9 de febrero de 2011
Historia de los lenguajes de programacin
Al comienzo slo exista el cdigo mquina (aos 40). No existan los
lenguajes de programacin.
Cdigo mquina: secuencia de bits que controlan directamente un
procesador. Muy tedioso. 55 89 e5 53 83 ec 04 f0 e8 31...
Ensamblador: Abreviaturas mnemotcnicas para expresar operaciones. El
traductor abreviatura-instruccin cdigo mquina es el ensamblador. subl,
pushl, movl, ...
Necesidad de un lenguaje independiente de la mquina (aos 50).
4
mircoles 9 de febrero de 2011
Historia de los lenguajes de programacin
UNIVAC primer computador comercial
5
mircoles 9 de febrero de 2011
Historia de los lenguajes de programacin
6
A finales de los aos 50 surgieron los primeros lenguajes de programacin
FORTRAN fue el primer lenguaje de programacin. Desarrollado por un
equipo de IBM dirigido por John Backus en 1956.
Cita de John Backus:
Much of my work has come from being lazy. I didn't like writing programs, and so
,
when I was working on the IBM 701, writing programs for computing missile
trajectories, I started work on a programming system to make it easier to write
programs.
mircoles 9 de febrero de 2011
Historia de los lenguajes de programacin
Desde 1954 hasta la actualidad se han documentado ms de 2500 lenguajes
de programacin
rbol genealgico de lenguajes de programacin
Torre de Babel de ric Lvenez
Lenguajes ms influyentes
7
mircoles 9 de febrero de 2011
Historia de los lenguajes de programacin
Al principio los lenguajes de programacin se diseaban slo para poder
ejecutar los programas eficientemente
Ordenadores carsimos, los programadores muy baratos
Aos 60, cuando haban surgido FORTRAN, COBOL, LISP y ALGOL, la
programacin empez a cambiar
Nuevas necesidades: migrar programas, buen mantenimiento de los
programas
Aos 70, la tecnologa de los ordenadores empez a madurar, los lenguajes
se centraban en un dominio: FORTRAN cientfico, LISP IA, COBOL negocios,
JOVIAL militar.
8
mircoles 9 de febrero de 2011
Aspectos que provocan la evolucin de los LP
Recursos y tipos de ordenadores
Aplicaciones y necesidades de los usuarios
Nuevos mtodos de programacin
Estudios tericos
Estandarizacin
9
mircoles 9 de febrero de 2011
Por qu estudiar lenguajes de programacin?
Mejora el uso del lenguaje de programacin
Incrementa el vocabulario de los elementos de programacin
Permite una mejor eleccin del lenguaje de programacin
Mejora la habilidad para desarrollar programas efectivos y eficientes
Facilita el aprendizaje de un nuevo lenguaje de programacin
Facilita el diseo de nuevos lenguajes de programacin
10
mircoles 9 de febrero de 2011
Los LP en continua evolucin
Ruby:
Ruby, un lenguaje de programacin ideado en 1993 por un joven japons
llamado Yukihiro Matsumoto
Lenguaje multi-paradigma interpretado y muy expresivo que actualmente
se utiliza tanto para desarrollar aplicaciones web como videojuegos.
Proyecto vivo, cada ao aparecen nuevas versiones
11
mircoles 9 de febrero de 2011
Los LP en continua evolucin
Scala:
Scala, diseado en 2003 por el profesor alemn Martin Odersky
Respuesta a los problemas de los lenguajes tradicionales imperativos para
manejar la concurrencia
Est implementado sobre Java y corre en la Mquina Virtual Java
Go, el nuevo lenguaje de programacin de Google
Una mezcla de C y Python que intenta conseguir un lenguaje de
programacin de sistemas muy eficiente, expresivo y tambin
12
mircoles 9 de febrero de 2011
Definicin de lenguaje de programacin
Definicin de la Encyclopedia of Computer Science
Definicin de Abelson y Sussman
13
A programming language is a set of characters, rules for combining them, and rul
es specifying their effects when
executed by a computer, which have the following four characteristics:
- It requires no knowledge of machine code on the part of the user
- It has machine independence
- Is translated into machine language
- Employs a notation that is closer to that of the specific problem being solved
than is machine code
A powerful programming language is more than just a means for instructing a comp
uter
to perform tasks. The language also serves as a framework within which we organi
ze
our ideas about processes. Thus, when we describe a language, we should pay
particular attention to the means that the language provides for combining simpl
e ideas
to form more complex ideas.
mircoles 9 de febrero de 2011
Caractersticas de los lenguajes de programacin
Define un proceso que se ejecuta en un computador
Es de alto nivel, cercano a los problemas que se quieren resolver
(abstraccin)
Permite construir nuevas abstracciones que se adapten al dominio que se
programa
14
mircoles 9 de febrero de 2011
Elementos de los lenguajes de programacin
Para Abelson y Sussman, todos los lenguajes de progamacin permiten
combinar ideas simples en ideas ms complejas mediante los siguientes tres
mecanismos
Expresiones primitivas que representan las entidades ms simples del
lenguaje
Mecanismos de combinacin con los que se construyen elementos
compuestos a partir de elementos ms simples
Mecanismos de abstraccin con los que dar nombre a los elementos
compuestos y manipularlos como unidades
15
Los lenguajes son para las personas
mircoles 9 de febrero de 2011
Abstraccion
Una misin fundamental de los lenguajes de programacin es proporcionar
herramientas que sirvan para construir abstracciones
Abstracciones: sirven para tratar la complejidad del mundo real
Existen abstracciones propias de la computacin: listas, rboles, grafos,
tablas hash...
16
mircoles 9 de febrero de 2011
Paradigmas de programacin
Un paradigma define un conjunto de reglas, patrones y estilos de
programacin que son usados por un grupo de lenguajes de programacin
Paradigma funcional
Paradigma lgico
Paradigma imperativo o procedural
Paradigma orientado a objetos
17

Você também pode gostar