Herramientas de
Programación
Prof. Yudith Cardinale
email: [email protected],
[email protected]
Ofic.: Mys 220-A
Contenido
➢
➢
➢
➢
➢
Presentación del curso
Evolución histórica de los sistemas de
computación
Evolución de los lenguajes de programación
Clasificación de los lenguajes de
programación
Compilación e interpretación
Evaluación
Examen escrito (20%)
Presentación oral (20%)
Proyecto (30%)
Informe (10%)
Programa (20%)
Talleres (30%)
Tema de expocisiones
Programación
orientada a
aspectos
Haskel
Prolog
PHP
JSP
Javascript
Eclipse (plugins C++, C, PHP,..)
App Inventor
Gambas
Exposiciones
15-20
min
Contenido
◦ Definición
◦ Areas de aplicación
◦ Ejemplos Básicos
◦ Relaciones con otras herramientas
(versiones, plugins, interfaces)
Historia de la Computación
Ábaco:
- Instrumento de cálculo más antiguo
- Se considera su origen desde hace
más de 5000 años
La Pascalina
Leonardo Da Vinci (1452-1519)
Blaise Pascal (1623-1662)
Se considera el antepasado
Remoto del actual computador
Historia de la Computación
“Locura de Babbage”:
Máquina de diferencias:
1811 propone el diseño
1822 presentó el modelo
60 sumas por minuto
sumar, restar, logaritmos, polinomios
Máquina analítica:
1833 propone el diseño de una
máquina programable
Tarjetas perforadas
No construyó un modelo
Historia de la computación
Tarjeta perforadora por Joseph-Marie Jackard (1753-1834)
En 1843 Lady Ada Augusta Lovelace sugiere adaptar las
tarjetas perforadoras
al motor de Babbage (Primera programadora)
Historia de la Computación
International Bussines Machines
Corporation (IBM)
Máquina electromagnética de
Contabilidad (Herman Hollerit
(1860-1929) primer informático)
-
la
el
el
la
el
el
el
el
la
perforadora de tarjetas,
verificador,
reproductor,
perforación sumaria,
intérprete,
clasificador,
cotejador,
calculador y
máquina de contabilidad
Historia de la computación
ENIAC, 1946 Electronic Numerical
Integrator And Computer (Atanasoff
Berry Computer, 1938 o Z1, 1938 )
Fue el primer ordenador totalmente
electrónico, estaba compuesta por
20.000 válvulas de vacío,
70.000 resistores y
500.000 soldaduras hechas a mano.
La unidad necesitaba 160 kw de
electricidad
Pesaba 30 toneladas y ocupaba un
espacio de 450 mts cuadrados
Conectada a un tablero con más de
6000 Interruptores
Sistema decimal
Primera Generación de
Computadoras (de 1951 a 1958)
Notación
binaria
Interpretador
COBOL
Common
business oriented
Language (1952)
EDVAC (Eletronic Discrete-Variable Automatic Computer)
Von Neumann 1945
Primera Generación de
Computadoras (de 1951 a 1958)
Gran tamaño
Escasa capacidad
de cómputo y
Almacenamiento
Programados en
lenguaje de
máquina
Posteriormente
Surgen los lenguajes
ensambladores
Segunda Generación (1959-1964)
Transistores
Compatibilidad
Sistemas
limitada
batch
Múltiples programas en disco
Tercera Generación (1964-1971)
Circuitos
integrados
Compatibilidad con equipo mayor
Multiprogramación
Minicomputadora Transistores
Interacción con el usuario
(tiempo compartido)
Tercera Generación (1964-1971)
Multiprogramación
Interrupt
Processing
Device
Drivers
Job
Sequencing
Control Language
Interpreter
Monitor
Boundary
Tercera Generación (1964-1971)
Tiempo
compartido
Interrupt
Processing
Device
Drivers
Job
Sequencing
Control Language
Interpreter
Monitor
Terminal
Terminal
job1
Usuarios
job2
job3
free
Terminal
Terminal
La cuarta Generación (1971 a la
fecha)
Microprocesador
–
Computadores personales
Chips de memoria.
Microminiaturización
Interfaces gráficas
Eficiencia
Redes - Internet
Arquitectura de un computador
Arquitectura de un computador
Evolución de los Lenguajes
de Programación
Razones de la diversidad de
lenguajes de programación
Evolución
Propósitos
especiales
Prefrencias personales
Razones del éxito de un
lenguaje de programación
Poder
Expresivo
Facilidad de uso para novatos
Facilidad de implementación
Excelentes compiladores
Economía, patronato e inercia
Clasificación de los lenguajes
Nivel
de abstracción
Forma de ejecución
Paradigma de programación
Nivel de Abstracción
Máquina
Bajo
nivel
Medio nivel
Alto nivel
Forma de ejecución
Lenguajes
compilados
Lenguajes Interpretados
Paradigma de programación
Imperativo
o por procedimientos
Funcional
Lógico
Orientado
por Objetos
Lenguaje Imperativo
Instrucciones
ejecutadas
secuencialmente
Declaración de variables, tipos y
procedimientos
Baja al nivel de la máquina para
describir el proceso llevado a
cabo por el programa
Ejemplos: Pascal, C, Fortran, Java
Lenguaje funcional
Constituido
por definiciones de
funciones matemáticas
No hay asignación de variables,
ni las secuencias o iteración
Ejemplos:
Haskell, Miranda, R, Lisp, Scala,
Scheme, ML, Erlang
Lenguaje funcional
Lenguaje funcional
Factorial (en LISP)
Break 114 [117]> (defun factorial(n)
(if (= n 0)
1
(* n (factorial (- n 1)))))
FACTORIAL
Break 114 [117]> (FACTORIAL 5)
120
Lenguaje lógico
Programas
escritos en un
subconjunto de lógica de primer
orden
Una base de datos de relaciones
lógicas y detalles que se cumplen
para la aplicación
Especificación (reglas)
Datos (hechos)
Ejemplos:
Máquina
lógica
Resultados
Prolog, Alf, Mercury
Lenguaje Lógico
Lenguaje Orientado a
Objetos
Usa
objetos y sus interacciones
para diseñar aplicaciones
Un objeto incluye toda la
información que permite definirlo
e identificarlo.
Java
C++
¿Porqué estudiamos los
lenguajes?
Facilita
el aprendizaje del
lenguaje
Permite entender características
del lenguaje
Ayuda a la escogencia entre
alternativas
Contribuye a hacer buen uso de
las herramientas relacionadas.
Compilación e Interpretación
COMPILADOR
Compilación e Interpretación
COMPILADOR
Compilación e Interpretación
Interpretador
Traductor
Enlazador (link)
Compilador + Assembler
Material de apoyo
Capítulo
1 Libro “Cómo
programar en Java” de Deitel &
Deitel
http://www.portalplanetasedna.c
om.ar/computacion.htm
http://www.ldc.usb.ve/~yudith/do
cencia/Telematica/organizacionhe
rramientas.html