1. 5/28/2008
Organización de los Lenguajes de Programación
Comprender como los lenguajes son diseñados e
implementados
Introducción
• Sintaxis– Como luce el programa
• Semántica – Que significa el programa
1-1.3.2 • Implementación – Como se ejecuta el programa
Usar los lenguajes más apropiados para resolver
problemas específicos, Por ejemplo:
• Pascal, C – procedimientos, orientado a sentencias
• C++, Java, Smalltalk – Orientado a objetos
• ML, Lisp -- Funcional
• Prolog – Basado en reglas
1 2
Objetivo de los Lenguajes Razones para estudiar lenguajes de programación
• Durante las décadas de 1950-1960 – Compilar programas • Mejorar la habilidad para desarrollar programas de
para que se ejecuten más eficientemente. manera más efectiva
• Existe una conexión directa entre las características • Mejorar el uso de sus lenguajes
de un lenguaje y el hardware - integers, reals, • Incrementar el vocabulario de construcciones útiles
sentencias goto • Permitir escoger de mejor manera un lenguaje de
• Programación barata; máquinas caras; Mantener la programación
máquina ocupada • Facilitar el aprendizaje de un nuevo lenguaje
• Facilitar el diseño de un nuevo lenguaje
Hoy en día
• Compilar programas que sean construidos
eficientemente
• Capacidad de procesamiento y memoria muy barata
• Conexión directa entre las características del
lenguaje y los conceptos de diseño – encapsulación,
registros, herencia, funcionalidad, verificación
3 4
1
2. 5/28/2008
Reference Architectural Model What is this Architecture?
Content
Processing &
CONTENT Management:
Internet, Search,
App email, Classification,
Level Applications Translation,
Information,
Databases,
etc
Summarize,
etc. Voicenet architecture is based on a layer model, similar to
Transaction
Level OSI model. It provides:
Scripts &
Translation Dialog Manager Finite State
Engines Machine
Understanding
Level
•A kernel over which the different services are designed.
NLG NLU
Text
Level Grammars
•A precise visualization of the development process and
TTS ASR
its cost/effectiveness.
Voice
Level
Call Control
•A simple way to describe each layer and its services.
Media
Level
Multimedia I/F Module Telephony &
Internet I/F Module
•A way to develop protocols defining the interaction
Voice Port Module
between layers, making them simple to understand.
Physical
PSTN WEB •Ability to define specific requirements for protocols of
Level
each layer as new services are incorporated.
5 6
Main Features
Desarrollo de los lenguajes
Lenguajes numéricos
• 1957 FORTRAN
•Software: • 1960 ALGOL60
• 1970 PASCAL
•UML • 1970 PL/I
•Windows NT and Windows 2000 Operative Systems • BASIC, ADA
based
•C++ language, Object Oriented, Multithreads, Lenguajes de Negocios
Distributed Programming • 1960 COBOL
• RPG
Lenguajes de Inteligencia Artificial
• LISP
• PROLOG
Lenguajes de sistemas
• Ensamblador
• C
7 8
2
3. 5/28/2008
Historia
ENIAC
9 10
ENIAC Evolución de la arquitectura del Software
• 1950s – Mainframe, grandes, caras, corrían un solo
programa (Procesamiento en lote - Batch)
• 1960s – Programación interactiva (tiempo compartido)
en mainframes
• 1970s – Desarrollo de minicomputadoras y primeras
microcomputadoras. Apple II. Desarrollo inicial en
ventanas, iconos, y PC en XEROX PARC
• 1980s – Computadora Personal - Microprocesador, IBM
PC y Apple Macintosh. Uso de ventanas, iconos y
ratón.Computadoras OEM
• 1990s – Computación cliente- servidor – Redes,
Internet, WWW
11 12
3
4. 5/28/2008
Influencias en el desarrollo de los lenguajes Vista Abstracta de los Componentes de un Sistema
1. Capacidad de las computadoras
2. Aplicaciones
3. Métodos de Programación
4. Implementación de métodos
5. Estudios teóricos
6. Estandarización
13
Migración de los Sistemas Operativos
S.O. Conceptos y Carácteristicas
applications
utilities software
systems
software
Operating system
hardware
device device ... device
components CPU
memory
4
5. 5/28/2008
Desarrollo de los Lenguajes Atributos de un buen lenguaje
• Claridad, simplicidad, y unidad – proveen un ambiente
• 1951 - 1955 Uso experimental de compiladores de expresiones para pensar en algoritmos y un mecanismo para
expresar esos algoritmos
• 1956 – 1960 FORTRAN, ALGOL58, ALGOL60, LISP
• 1961 – 1965 COBOL, ALGOL60®,SNOBOL, JOVIAL
• Ortogonalidad – toda combinación de características
• 1966 – 1970 APL, FORTRAN66, COBOL65, ALGOL68, SNOBOL4,
es útil
BASIC, PL/I, SIMULA67, ALGOL W
• 1971 – 1975 Pascal, COBOL74, C, Scheme, Prolog
• Naturaleza de la aplicación – las estructuras de los
• 1976 – 1980 Smalltalk, Ada, FORTRAN77, ML
programas reflejan las estructuras lógicas del
• 1981 – 1985 Turbo Pascal, Smalltalk80, Ada83, Postscript algoritmo
• 1986 – 1990 FORTRAN90, C++, SML
• 1991 – 1995 Ada95, Lenguajes de proceso (TCL, PERL), HTML • Soporte para abstracción – datos del programa
• 1996 – 2000 Java, Javascript, XML reflejan el problema a ser resuelto
Gráficos:
• Historia
• Poster
17 18
Atributos de un buen lenguaje (continuación) Paradigmas de los lenguajes
• Facilidad de verificación de programas – verificar Lenguajes Imperativos
que el programa realiza correctamente la función • Objetivo es el de entender el estado de la máquina
requerida (conjunto de posiciones de memorias, cada una
conteniendo un valor)
• Ambiente de programación – soporte externo para el • Lenguajes orientados a sentencias que cambian el
lenguaje estado de la máquina (C, Pascal, FORTRAN, COBOL)
• Sintaxis: S1, S2, S3, ...
• Portabilidad de los programas – transportabilidad del
programa resultante desde el computador desde donde Lenguajes Aplicativos (funcionales)
es desarrollado a otros sistemas de computadores • Objetivo es el de entender la función que produce la
respuesta
• Costos de uso – ejecución de programas, traducción de • La composición de funciones es la operación principal
programas, creación de programas, y mantenimiento de (ML, LISP)
programas • Sintaxis: P1(P2(P3(X)))
• Programación consiste de la construcción de funciones
que calculan la respuesta
19 20
5
6. 5/28/2008
Paradigmas de los lenguajes (continuación)
Lenguajes basados en reglas
• Especifica la regla que especifica la solución del
problema (Prolog, BNF Parsing)
• Otros ejemplos: Procedimientos de decisión, reglas
gramaticales (BNF)
• Sintaxis: Respuesta reglas de especificación
• Programación consiste en especificar los atributos
de la respuesta
Lenguajes orientados a objetos
• Lenguajes imperativos que unen diseños aplicativos
con sentencias imperativas (Java, C++, Smalltalk)
• Sintaxis: Conjunto do objetos (clases) conteniendo
datos (concepto imperativo) y métodos (conceptos
aplicativos)
Lenguajes
21
6