Professional Documents
Culture Documents
PROGRAMACIN
Javier Martn
Centro Asociado de Mstoles
UNED
1
Introduccin
JUEVES de 5 a 7
PLAN DE TRABAJO
Exposicin
Tema 1:
El estudio de los lenguajes de programacin
Evolucin de los
Lenguajes de Programacin
Declarativos
Evolucin de los
Lenguajes de Programacin
Orientados a Objetos e
Imperativos
Dominios
de
aplicacin
Aplicaciones de los aos sesenta. Durante la dcada de 1960, casi toda la
programacin se poda dividir en cuatro modelos bsicos de programacin:
De procesamiento de negocios (COBOL).
Cientficos (FORTRAN).
De sistemas (ALGOL, JOVIAL, etc.): Para construir sistemas operativos.
De Inteligencia Artificial (LISP).
10
Entornos interactivos
Entornos de programacin
Todo nombre compartido debe ser nico. Se deben usar convenciones para la asignacin
de nombres desde un principio.
Definir, en el lenguaje, reglas de mbito, para ocultar nombre.
Los nombres se pueden conocer agregando explcitamente sus definiciones desde una
biblioteca externa (herencia en POO).
3.
17
Marcos de ambiente
Un ambiente de apoyo
consiste en servicios
de infraestructura que
se conocen como
marco de ambiente.
Este marco suministra
servicios como un
depsito de datos,
interfaz grfica de
usuario, seguridad y
servicios de
comunicacin. Los
programas se escriben
de modo que utilicen
estos servicios.
18
Mquinas virtuales
Introduccin al concepto
Introduccin al concepto
Introduccin al concepto
26
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
30
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Tema 2:
Sintaxis formal de los lenguajes de
programacin
40
41
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 4:
Descripcin de los paradigmas ms
representativos
42
PARADIGMAS DE PROGRAMACIN
43
Programacin Imperativa o
Procedural: FORTRAN
FORTRAN. Historia
Primer lenguaje de alto nivel (1957).
Desarrollado por IBM para el IBM 704.
Estaba orientado a la eficiencia en la
ejecucin.
Definicin estndar del lenguaje en el 66.
Otras versiones:
FORTRAN
77
FORTRAN 90
45
FORTRAN. Ejemplo
PROGRAMTRIVIAL
INTEGERI
I=2
IF(I.GE.2)CALLPRINTIT
STOP
END
SUBROUTINEPRINTIT
PRINT*,HolaMundo
RETURN
END
46
FORTRAN. Caractersticas
Tipos de datos:
Numricos
precisin).
Booleanos (logical)
Arreglos
Cadenas de caracteres
Archivos
Ejemplo anotado
48
DATA X/1.0/,Y/3.1416/,K/20/
Tipos de archivos:
Secuenciales
De
acceso directo
FORTRAN. Subprogramas
FN(X,Y)=SIN(X)**2-COS(Y)**2
Gestin de almacenamiento.
Las
Abstraccin y encapsulamiento
FORTRAN. Evaluacin del lenguaje
Programacin Imperativa o
Procedural: C
Historia
60
Ejemplo anotado
57
Objetos de datos
Representacin de almacenamiento
Los tipos de C emplean bsicamente la
representacin hardware de sus datos.
Una variable de tipo array es tambin el
puntero al primer elemento del array que
comienza con el ndice 0.
Es posible inicializar cualquier variable
declarada estticamente.
59
Control de secuencia
A + (int)b
Condicional, if...then...else...;
Condicinal mltiple, switch...{case....case...default...;}
Iterativos: while, do , for.
Transferencia del control: brak, continue, goto, return.
De preprocesador: #define, #include, #ifdef, #if...#undef...#else
Subprogramas y Gestin de
almacenamiento
Abstraccin y encapsulamiento
El lenguaje da facilidades para la definicin
de tipos, pero no implementa el
ocultamiento de la informacin, de manera
que si se tiene acceso a un struct, tambien
se acceder a todos sus componentes.
El uso de bibliotecas con interfaces header
tambin permite la abstraccin.
62
Portatil
64
65
Interactivo (usualmente)
Los datos en LISP son muy restringidos:
Ejemplo anotado
67
Objetos de datos
Control de secuencia
Gestin de subprogramas
Gestin de almacenamiento
Paso de parmetros:
Funciones en LISP I
Predicados
72
Funciones en LISP I
Funciones aritmticas:
+,
-, *, y /.
rem x y, devuelve el mdulo x/y (remainder).
Abstraccin y encapsulamiento
mltiple
Funciones genricas
Metaclases y metaobjetos
Tcnica de creacin e inicializacin de objetos que
permite control del proceso por parte del usuario.
74
75
a la base de datos
Pruebas matemticas
Historia
Coulmerauer (1970) desarroll un
lenguaje para hacer deducciones de texto
Se aplica un mecanismo de resolucin
sobre predicados especiales, clusulas de
Horn, llamado unificacin.
La difusin del lenguaje se produce en los
80, pero de forma muy limitada debido a
la falta de aplicaciones en dicho lenguaje.
77
78
Ejemplo anotado
80
Objetos de datos
Representacin de almacenamiento
Las reglas y hechos son almacenadas en
memoria como listas enlazadas.
La ejecucin de prolog consiste en una
bsqueda en profundidad de un rbol
conteniendo todas las posibles
soluciones. Para cada una de ellas se
evaluar su correccin. La bsqueda se
puede hacer ms eficiente mediante la
poda del rbol de bsqueda (corte).
82
Control de secuencia
El orden de evaluacin es secuencial
Expresiones, operaciones aritmticas y operadores
relacionales. Not().
Enunciados
Consult(nommbrearchivo)
Fail, siempre fracasa
See(nombrearchivo), lee las entradas de un archivo y las incorpora al conjunto de
reglas.
Write(trmino)
Tell(trmino), reorienta la salida del write al archivo
Told, cierra el archivo anterior
Nl, salto de lnea
Atom(X), devuleve cierto si X es un tomo
Var(X), devuelve cierto si X es una variable
Integer(X), devuelve cierto si X es un entero
84
Trace, activa la depuracin del programa
Abstraccin y encapsulamiento
85
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 5:
El paradigma de la programacin orientada a
objetos (POO)
87
88
HERENCIA
Clases derivadas
PRIVATE
PUBLIC
PROTECTED
Mtodos
91
Clases abstractas
Objetos y mensajes
X_Array new: 10
X at:3 put:42
93
Herencia de clases
Si se enva un mensaje a un objeto con un
mtodo que no est definido en su clase
se pasa a la clase progenitora, y as
sucesivamente.
En los mtodos de palabra clave el
parmetro se nombra de forma explcita
en la declaracin del mtodo
94
Conceptos de abstraccin
POLIMORFISMO
El polimorfismo es la capacidad de un
solo operador o nombre de subprograma
para referirse a varias definiciones en
funcin del contexto, es decir, de los tipos
de daos de los argumentos y del
resultado.
96
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 6:
La programacin centrada en la red
97
98
Unidad Didctica 3:
Mecanismos de los LP
Tema 7:
Tipos, declaraciones y control
99
Control de secuencia
Secuenciamiento en expresiones
Postfija,
Representacin de expresiones en
tiempo de ejecucin
de validacin uniforme.
Efectos
Concordancia de patrones
Reescritura de trminos (reglas de produccin)
Unificacin, que consiste, ante una consulta (predicado
conteniendo variables), en la sustitucin de variables para
concordar patrones congruentes con las reglas y hechos de la
base de datos.
de parmetros
Variables locales
Variables globales
Datos locales
Parmetros
Otros elementos de datos:
De variables
De parmetros formales
De subprogramas
Para tipos definidos
Para constantes definidas
De enunciados
De excepciones
Para operaciones primitas
Para constantes de literales
111
Ambientes de referencia
Parmetros formales
Variables locales
Subprogramas definidos
113
comunes explcitos
Ambientes no explcitos con base a alcance
dinmico
Alcances esttico
herencia
114
Semntica de la transmisin
Independientemente de la la
implementacin los parmetros pueden ser:
De
entrada (IN)
De salida (OUT)
De entrada/salida (IN/OUT)
COMMON, de fortran
Paquetes en ADA.
Clases en C++ y SmallTalk, aunque no es su principal
objetivo
Unidad Didctica 3:
Mecanismos de los LP
Tema 8:
Mecanismos de abstraccin
120
121