Post on 20-Jun-2015
5/28/2008
1
1
Introducción
1-1.3.2
2
Organización de los Lenguajes de Programación
Comprender como los lenguajes son diseñados e
implementados
• Sintaxis– Como luce el programa
• Semántica – Que significa el programa
• 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
3
Objetivo de los Lenguajes
• Durante las décadas de 1950-1960 – Compilar programas
para que se ejecuten más eficientemente.
• Existe una conexión directa entre las características
de un lenguaje y el hardware - integers, reals,
sentencias goto
• Programación barata; máquinas caras; Mantener la
máquina ocupada
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
4
Razones para estudiar lenguajes de programación
• Mejorar la habilidad para desarrollar programas de
manera más efectiva
• Mejorar el uso de sus lenguajes
• Incrementar el vocabulario de construcciones útiles
• Permitir escoger de mejor manera un lenguaje de
programación
• Facilitar el aprendizaje de un nuevo lenguaje
• Facilitar el diseño de un nuevo lenguaje
5/28/2008
2
5
Reference Architectural Model
WEBPSTN
CONTENTInternet,email,
Information,Databases,
etc
Applications
Dialog Manager
NLG NLU
TTS ASR
Scripts &Finite State
Machine
Grammars
TranslationEngines
ContentProcessing &Management:
Search,Classification,Translation,Summarize,
etc.
Call Control
Telephony &Voice Port Module
Internet I/F ModuleMultimedia I/F Module
AppLevel
TransactionLevel
Understanding
Level
TextLevel
VoiceLevel
MediaLevel
PhysicalLevel
6
What is this Architecture?
Voicenet architecture is based on a layer model, similar toOSI model. It provides:
•A kernel over which the different services are designed.
•A precise visualization of the development process andits cost/effectiveness.
•A simple way to describe each layer and its services.
•A way to develop protocols defining the interactionbetween layers, making them simple to understand.
•Ability to define specific requirements for protocols ofeach layer as new services are incorporated.
7
Main Features
•Software:
•UML
•Windows NT and Windows 2000 Operative Systems based
•C++ language, Object Oriented, Multithreads, Distributed Programming
8
Desarrollo de los lenguajes
Lenguajes numéricos
• 1957 FORTRAN
• 1960 ALGOL60
• 1970 PASCAL
• 1970 PL/I
• BASIC, ADA
Lenguajes de Negocios
• 1960 COBOL
• RPG
Lenguajes de Inteligencia Artificial
• LISP
• PROLOG
Lenguajes de sistemas
• Ensamblador
• C
5/28/2008
3
9
Historia ENIAC
10
ENIAC
11 12
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
5/28/2008
4
13
Influencias en el desarrollo de los lenguajes
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
Vista Abstracta de los Componentes de un Sistema
S.O.
. . .CPU
memory
device device device
Operating system
utilitiesapplications
software
systemssoftware
hardwarecomponents
. . .CPU
memory
device device device
Operating system
utilitiesapplications
software
systemssoftware
hardwarecomponents
Migración de los Sistemas Operativos
Conceptos y Carácteristicas
5/28/2008
5
17
Desarrollo de los Lenguajes
• 1951 - 1955 Uso experimental de compiladores de expresiones
• 1956 – 1960 FORTRAN, ALGOL58, ALGOL60, LISP
• 1961 – 1965 COBOL, ALGOL60®,SNOBOL, JOVIAL
• 1966 – 1970 APL, FORTRAN66, COBOL65, ALGOL68, SNOBOL4,
BASIC, PL/I, SIMULA67, ALGOL W
• 1971 – 1975 Pascal, COBOL74, C, Scheme, Prolog
• 1976 – 1980 Smalltalk, Ada, FORTRAN77, ML
• 1981 – 1985 Turbo Pascal, Smalltalk80, Ada83, Postscript
• 1986 – 1990 FORTRAN90, C++, SML
• 1991 – 1995 Ada95, Lenguajes de proceso (TCL, PERL), HTML
• 1996 – 2000 Java, Javascript, XML
Gráficos:
• Historia
• Poster
18
Atributos de un buen lenguaje
• Claridad, simplicidad, y unidad – proveen un ambiente
para pensar en algoritmos y un mecanismo para
expresar esos algoritmos
• Ortogonalidad – toda combinación de características
es útil
• Naturaleza de la aplicación – las estructuras de los
programas reflejan las estructuras lógicas del
algoritmo
• Soporte para abstracción – datos del programa
reflejan el problema a ser resuelto
19
Atributos de un buen lenguaje (continuación)
• Facilidad de verificación de programas – verificar
que el programa realiza correctamente la función
requerida
• Ambiente de programación – soporte externo para el
lenguaje
• Portabilidad de los programas – transportabilidad del
programa resultante desde el computador desde donde
es desarrollado a otros sistemas de computadores
• Costos de uso – ejecución de programas, traducción de
programas, creación de programas, y mantenimiento de
programas
20
Paradigmas de los lenguajes
Lenguajes Imperativos
• Objetivo es el de entender el estado de la máquina
(conjunto de posiciones de memorias, cada una
conteniendo un valor)
• Lenguajes orientados a sentencias que cambian el
estado de la máquina (C, Pascal, FORTRAN, COBOL)
• Sintaxis: S1, S2, S3, ...
Lenguajes Aplicativos (funcionales)
• Objetivo es el de entender la función que produce la
respuesta
• La composición de funciones es la operación principal
(ML, LISP)
• Sintaxis: P1(P2(P3(X)))
• Programación consiste de la construcción de funciones
que calculan la respuesta
5/28/2008
6
21
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