Académique Documents
Professionnel Documents
Culture Documents
PROGRAMACIN
Tema 1:
El estudio de los lenguajes de programacin
2
Hardware
Dispositivo de salida
Monitor
Unidad
de CD-ROM
Unidad
de disquetes
Memoria principal
(ambos dentro)
y Unidad de Disco
Duro
Memori
a
Teclado
Ratn
Unidad Aritmtico-Lgica
Unidad de Memoria
Ideas importantes:
Un programa es una cadena secuencial de instrucciones
Las instrucciones ordenan al ordenador realizar una
operacin sobre unos datos
Las instrucciones se ejecutan una tras otra, aunque puede
haber bifurcaciones condicionales (usar un dato para
decidir entre dos instrucciones diferentes por donde
continuar)
El computador procesa tanto instrucciones como sus datos
Las instrucciones y los datos se almacenan juntos en
4
memoria
Qu entiende la computadora?
La computadora manipula nicamente informacin digital:
Datos e instrucciones se codifican como
dgitos binarios (0s y 1s)
a la
= (bcomputadora
+ c)/(d + e)
Qu
entiende
?
Pasos
Evolucin de los
Lenguajes de Programacin
Declarativos
Evolucin de los
Lenguajes de Programacin
Orientados a Objetos e
Imperativos
10
Dominios de aplicacin
Entornos interactivos
Entornos de programacin
20
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.
21
Mquinas virtuales
Introduccin al concepto
Introduccin al concepto
25
Introduccin al concepto
28
29
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
33
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Lenguajes intermedios
Tema 2:
Sintaxis formal de los lenguajes de
programacin
43
44
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 4:
Descripcin de los paradigmas ms
representativos
45
PARADIGMAS DE PROGRAMACIN
46
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
48
FORTRAN. Ejemplo
PROGRAMTRIVIAL
INTEGERI
I=2
IF(I.GE.2)CALLPRINTIT
STOP
END
SUBROUTINEPRINTIT
PRINT*,HolaMundo
RETURN
END
49
FORTRAN. Caractersticas
Tipos de datos:
Numricos
precisin).
Booleanos (logical)
Arreglos
Cadenas de caracteres
Archivos
Ejemplo anotado
51
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
para sistemas)
Historia
60
Ejemplo anotado
60
Objetos de datos
con
un struct, pero todos los componentes ocupan la
misma memoria.
61
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.
62
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.
65
Portatil
67
68
Interactivo (usualmente)
Los datos en LISP son muy restringidos:
Ejemplo anotado
70
Objetos de datos
Control de secuencia
null, equal.
Operaciones sobre propiedades: put, get.
Enunciados: prog() para ejecucin secuencial.
Entrada y salida: open(), read(), print().
Definicin de funciones: defun, define.
72
Gestin de subprogramas
Gestin de almacenamiento
Paso de parmetros:
Funciones en LISP I
Predicados
75
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.
77
78
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.
80
81
Ejemplo anotado
83
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).
85
Control de secuencia
El orden de evaluacin es secuencial
Expresiones, operaciones aritmticas y operadores
relacionales. Not().
Enunciados
86
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
Trace, activa la depuracin del programa
87
Abstraccin y encapsulamiento
88
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 5:
El paradigma de la programacin orientada a
objetos (POO)
90
91
HERENCIA
Clases derivadas
PRIVATE
PUBLIC
PROTECTED
Mtodos
94
Clases abstractas
Objetos y mensajes
X_Array new: 10
X at:3 put:42
96
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
97
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.
99
Unidad Didctica 2:
Paradigmas y lenguajes
Tema 6:
La programacin centrada en la red
100
101
Unidad Didctica 3:
Mecanismos de los LP
Tema 7:
Tipos, declaraciones y control
102
Control de secuencia
Secuenciamiento en expresiones
Postfija,
Representacin de expresiones en
tiempo de ejecucin
105
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 variables
De parmetros formales
De subprogramas
Para tipos definidos
Para constantes definidas
De enunciados
De excepciones
Para operaciones primitas
Para constantes de literales
114
Ambientes de referencia
Parmetros formales
Variables locales
Subprogramas definidos
116
comunes explcitos
Ambientes no explcitos con base a alcance
dinmico
Alcances esttico
herencia
117
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
123
124