1Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Universidad de Buenos AiresFacultad de Ciencias Económicas
Tecnología de la Información
Profesor Adjunto
Dr. Anibal Mazza Fraquelli
Lenguajes de Programación
File:2-32000
2Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lo que hay que saber
➢ Código Fuente:
➢ Lenguaje con instrucciones
➢ Compilador:
➢ Traduce el código fuente en código objeto
➢ Linkeditado:
➢ Traduce el código objeto en un programa que puede ejecutarse en CPU
Nota: el Linkeditado (según el lenguaje) puede no existir
Lenguajes de Programación
3Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Pro
ceso d
e “Trad
uccio
n”
Codigo
Fuenbe
Compiler
Codigo Objeto
Linker
Modulo Carga
Otros
Codigos Objeto
Utilitarios:
Tareas Rutinarias
Ejemplo: Codigo Morse
4Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Compilado Vs. Interpretado
Traduccion
Codigo
Fuente
Codigo
ObjetoEntrada Salida
Libreria de
Programas
En los lenguajes interpretados, la traduccion ocurre cada vez que el programa se ejecuta.
Los compilados tienen el objeto guardado para usar sucesivamente.
5Dr. Anibal Mazza Fraquelli – www.fraquelli.net
El proceso de traduccion…
ProcesoDe
Traduccion
CodigoFuente
ProgramaObjeto
Escrito enVB BASIC,
COBOL,etc.
Programatraductor
• Compilador• Interprete• Ensamblador
6Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Interpretes
➢Convierte el codigo fuente (texto) a una
forma que la computadora puede ejecutar.
➢Programa = serie de comandos
➢Cada uno de los comandos van (por lo general)
en 1 sola linea
➢Interprete: lee la linea, la convierte a lenguaje
maquina, hace que la maquina la ejecute y lee
la proxima linea.
7Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Compiladores
➢Lee el programa entero de una sola vez y lo
traduce a lenguaje de maquina.
➢NO EJECUTA EL PROGRAMA
➢Cross-compilers
➢Compilar en un tipo de maquina o sistema
operativo y se ejecuta en otro
8Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Interpretes: Bueno, Malo, Feo.
➢Bueno➢No se compila antes de la ejecucion
➢No convierte partes del programa que no se ejecutan en una corrida determinada (Bifurcaciones, etc)
➢Malo➢Baja velocidad de ejecucion respecto de los programas
compilados
➢ Feo➢Produce codigo maquina ineficiente
➢Los loops exigen una nueva recompilacion (aunque se ejecute el mismo tipo de instruccion)
9Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Generacion de Lenguajes
Maquina
Assembler
Procedimientos
Sin Procedimientos
Bajo Nivel
Alto Nivel
Muy alto nivel
1ra - 1940
2da - 1950
3ra - 1960
4ta - 1970
Orientados a Objetos Naturales / 5GL Proceso en paralelo
10Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢1001011101
➢Binaria
➢Programación a nivel placa base: CIRCUITOS PUROS!!!➢Donde hay programación de circuitos
puros hoy?
➢Lenguaje de “maquina”
Generación de los Lenguajes - Primera
11Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢MOV DX,036H
➢Assembler
➢Todos los lenguajes de los demas niveles
se traducen implicita o explicitamente a
una “lenguaje” de segunda generacion
➢Mnemonicos
Generación de los Lenguajes - Segunda
12Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ Counter:= 20
➢ COBOL
➢ PASCAL
➢ BASIC
➢ CLIPPER
➢ C - C++
➢ FORTRAN
➢ ADA
➢ Son lenguajes de “alto nivel”
Generación de los Lenguajes - Tercera
El pseudo-codigo tiene la estructura de lenguajes de 3ra generacion
13Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Select DOCUMENTO from
Tabla_Empleados
➢SQL – QBE
➢Paquetes “modernos”
Generación de los Lenguajes - Cuarta
Hasta 3ra generacion trabajan generando los procesos, a partir
de la 4ta se obtienen los resultados
14Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL
DBMS
Query
Generador
Reportes
Generador
Aplicaciones
Database
Usuario
Final
Profesional de
Sistemas
15Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Actualizar el archivo de
inventario con las transacciones
generadas en el punto de ventas
➢Lenguaje Natural
Generación de los Lenguajes - Quinta
16Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Máquina Ensamblador 3GL 4GL Consulta Natural
Eficiencia Muy Muy Cierta Eficiencia Menos Menos No relevante
Comprensión Muy difícil Difícil Más fáciles Fáciles Fáciles Idioma Nat.
Estructura Compleja Compleja Orient. Aplic. Orient. Aplic Orient. Consulta Usuario final
Código
Binario
Códigos
Mnemónicos
Oraciones
gramaticales
parecidas al
Inglés y
expresiones
matemáticas
Verbos y
expresiones
macro que
resumen
muchas
línes de
3GL
Similar a
4GL pero
junto con DB
Idioma
humanoCodigo
Orientados a Computadores Orientados a personas
17Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lenguajes de Alto Nivel
➢FORTRAN (FORmula TRANslator).
Científico - Ingeniería
➢COBOL (COmmon Business Oriented
Language). Comercial
➢BASIC (Beginners All-purpose Symbolic
Instruction Code). Uso general en PC
18Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lenguajes
➢ PASCAL. Usado para enseñar programación
estructurada. Débil manejo de archivos, entradas y
salidas.
➢C - C++. Poderoso en PC para desarrollo de
aplicaciones. Ejecución eficiente; Cross Platform
➢ PL/1 (Programación Language 1). Poderoso
lenguaje de IBM para Negocios & Científico
➢ADA. Diseñado para sistemas de armamentos.
Usado en varias plataformas. Estructurado. Usado
para Negocios
19Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lenguajes de Inteligencia Artificial
➢LISP (LISt Processor). Iniciado en los ‘50s
en el MIT. Preferido en USA. Requiere
maquinas configuradas especialmente
➢PROLOG. Iniciado en los ‘70s. Preferido
fuera de USA. Cross Platform
20Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
➢Usado por el Usuario Final
➢Sin Procedimientos
➢Rápido desarrollo de aplicaciones
➢“Lenguaje Natural”
➢Seis Categorías
21Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
Query = Consulta
1. Lenguajes de QUERY:
➢Recupero rápido de datos
➢ Interactivo – On-Line
➢ Pueden usar Lenguaje Natural
➢ Soporte especial para consultas en bases de datos.
22Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
2. Generadores de Reportes:
➢Crear reportes personalizados
➢Amplio rango de formatos
➢Ej: Crystal Reports
3. Lenguajes Gráficos:
➢Manipular gráficos, dibujos, fotos, videos
➢ “Presentadores de Información”
23Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
4. Generador de Aplicaciones:
➢Usuario especifica las necesidades
➢Generador crea la lógica y el código de la
aplicación.
➢Reduce mucho el tiempo de desarrollo de
aplicación
➢Ej: Genexus / Clarion
24Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
5. Lenguajes de muy alto nivel de programación
➢Herramienta profesional para los programadores
➢Usa menos instrucciones
➢Instrucciones de programación optimizadas
➢Reduce el tiempo de desarrollo
➢Librerias de Codigo
25Dr. Anibal Mazza Fraquelli – www.fraquelli.net
4GL – Lenguajes de Cuarta Generación
6. Paquetes de Software: disponibilidad comercial de programas...
➢Procesamiento de Palabra
➢Planillas de Calculo
➢Manejo de Datos
➢Presentaciones
Algunos las consideran pseudo-lenguajes por su capacidad de incorporar “macros” y lenguajes propios
26Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Que busca el mercado?
➢Generales Modernos:
➢Java / javascript / .net / web oriented
➢Internet – no lenguajes :
➢XML / HTML
27Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Que busca el mercado?
➢Generales “viejos”...
➢XBase
➢Cobol
➢Pascal
➢Objetos y especificos de la plataforma
➢Smalltalk
➢Legacy
Problema: dificil conseguir programadores con los “fuera de moda”
29Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Lenguaje de programación de alto nivel
desarrollado por el departamento de defensa de
los Estados Unidos.
➢Utiliza un estilo de programación modular y su
programación se hace vía hardware, con lo que
se consigue una mayor velocidad de proceso.
➢Es muy utilizado en sistemas que requieren un
cálculo en tiempo real.
Lenguaje ADA
30Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Lenguaje de programación desarrollado por
IBM orientado al desarrollo de aplicaciones
científicas y de carácter matemático.
Lenguaje APL
31Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Beginners All Purpose Symbolic Instruction
Code).
➢Sencillo lenguaje de programación para el
desarrollo de programas de tipo general creado
en 1964, hoy en desuso.
Lenguaje Basic
32Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Gee Whiz-Basic) Intérprete de BASIC que
acompaña a MS-DOS en versiones anteriores a
5.0.
Lenguaje GW-BASIC
33Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢El lenguaje C es una herramienta de
programación de tipo general, utilizada para el
desarrollo del sistema operativo Unix.
➢Fue realizado a principios de la década de los
setenta por Dennis Ritchie, como evolución del
lenguaje B que creara Ken Thompson.
Lenguaje C
34Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Versión de C orientada a objetos creada por Bjarne Stroustrup.
➢C++ se ha popularizado porque combina la programación tradicional en C con programación orientada a objetos.
➢Smalltalk y otros lenguajes originales de programación orientada a objetos no suministraban las estructuras familiares de lenguajes convencionales como C y Pascal.
Lenguaje C++
35Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lenguajes XBASE
➢Clipper
➢D-Base
➢ Foxbase
➢ Foxpro
➢Tuvieron difusion por la facilidad de comprender las
instrucciones junto con la potencia de acceder a tablas
de datos en forma nativa, sin programacion de las
mismas
36Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Sistema de desarrollo de aplicaciones de Computer Associates.
➢Originalmente era un compilador de dBASE, ahora se ha convertido en un entorno de desarrollo autónomo con muchas características únicas.
➢Clipper fue originalmente desarrollado por Nantucket Corporation.
Lenguaje Clipper
37Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ Programa de base de datos para DOS y Windows de
Borland.
➢ dBASE fue el primer DBMS relacional completo para
computadores personales y originalmente se
desarrolló para máquinas CP/M.
➢ En un principio fue comercializado por Ashton-Tate,
adquirida más tarde por Borland. El formato de
archivos dBASE DBF se ha convertido en un estándar
de facto utilizado por muchas aplicaciones.
Lenguaje Dbase
38Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢DBMS compatible con dBASE III PLUS para
Macintosh de Microsoft.
➢Originalmente desarrollado por Fox Software
para computadores personales, FoxBASE ganó
una reputación por su velocidad y
compatibilidad.
Lenguaje FoxBase+
39Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢DBMS compatible con dBASE IV para
computadores personales, de Microsoft.
➢Como una versión mejorada de
FoxBASE, FoxPro incluye interfaces de
ventanas, SQL y QBE y tecnología
"Rushmore" para consultas rápidas en
bases de datos grandes.
Lenguaje Foxpro
40Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Common Business Oriented Language).
Lenguaje de programación de tercera
generación (Ver: 3 GL) muy empleado para
aplicaciones comerciales.
➢Utiliza el idioma inglés como base para las
instrucciones incluidas en el programa.
➢DIBOL: Cobol digital usado en PDP y VAX
Lenguaje Cobol
41Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Data Language 1.
➢Lenguaje de programación para bases de datos
jerárquicas, hoy superado por otras alternativas
tecnológicas.
Lenguaje DL/1
42Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (FOuRTH-generation language) Lenguaje de cuarta generación.
➢Lenguaje de programación de alto nivel creado por Charles Moore a finales de los años sesenta, como una forma de proveer control directo del computador.
➢Con una sintaxis parecida a LISP, FORTH se usa para escribir aplicaciones sobre control de procesos, juegos de video e inteligencia artificial.
Lenguaje Forth
43Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (FORmula TRANslator) Traductor de fórmulas.
➢ Primer lenguaje de programación de alto nivel y compilador, desarrollado en 1954 por IBM.
➢ Originalmente fue diseñado para expresar fórmulas matemáticas, y aunque en ocasiones se emplea para aplicaciones comerciales, es aún el lenguaje que más se usa para problemas científicos, de ingeniería y matemáticos.
➢ FORTRAN IV es un estándar ANSI, pero FORTRAN V tiene varias versiones patentadas.
Lenguaje Fortran
44Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Orientación a Objetos - El paradigma
➢Fuentes Abiertas
➢Nuevo: Squeak
➢Portabilidad total, superior a Java
➢Porque no se abandona Java? - Inversión
Lenguaje SmallTalk
45Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Houston Automatic Spooling Program)
Programa de secuenciamiento automático de
Houston.
➢Para mainframe, provee funciones de
administración de tareas, de trabajos y de
datos.
Lenguaje HASP
46Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (HyperText Markup Language).
➢Lenguaje de marcado de Hipertexto.
➢Es el lenguaje estándar para describir el
contenido y la apariencia de las páginas en el
WWW.
Lenguaje HTML
47Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢(Hewlett-Packard Graphics Language) Lenguaje gráfico de Hewlett-Packard.
➢Formato de archivo de gráficos vectoriales de HP que fue desarrollado como un lenguaje estándar para trazadores (plotters).
➢La mayor parte de los trazadores soportan los estándares HPGL y DMPL.
Lenguaje HPGL
48Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Es un lenguaje de programación
desarrollado por Nicholas Wirth
hace más de 20 años.
➢Su uso es frecuente en la
formación de programadores.
Lenguaje Pascal
49Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Lenguaje desarrollado por Sun Microsystems para la elaboración de aplicaciones exportables a la red y capaces de operar sobre cualquier plataforma a través, normalmente, de visualizadores WWW.
➢El programa Java se descarga desde el servidor Web y lo interpreta un programa que se ejecuta en el equipo que contiene el explorador de Web.
Lenguaje Java
50Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Un lenguaje de comandos multiplataforma del
WWW desarrollado por Netscape
Communications.
➢El código de JavaScript se inserta directamente
en una página HTML.
Lenguaje JavaScript
51Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (MODUlar LAnguage-2) Versión mejorada de
Pascal introducida en 1979 por el profesor
suizo Nicklaus Wirth, creador de Pascal.
➢Modula-2 soporta compilación separada de
módulos.
Lenguaje Modula-2
52Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Programming In Logic).
➢Es un lenguaje de programación que tiene su
aplicación práctica en el desarrollo de software
destinado a Sistemas Expertos.
Lenguaje Prolog
53Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Es un lenguaje derivado del viejo Basic, su compilador se distribuía con las versiones del ms-dos (Qbasic), aunque en formato algo reducido.
➢Goza de mala fama pero tiene muchas posibilidades.
➢Microsoft dejó de comercializar el compilador cuando iba por la versión 4.5 para utilizarlo en el Visual Basic.
Lenguaje Quick Basic
54Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Report Program Generator).
➢Es un lenguaje de programación para la gestión
y producción de informes, formularios,
etcétera.
Lenguaje RPG
55Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢ (Structured Query Language).
➢Es un estándar en el lenguaje de acceso a bases
de datos.
➢Originalmente, era un lenguaje de acceso al
sistema de gestión de bases de datos
denominado DB2 en plataformas 390 de IBM.
En la actualidad está adoptado por ISO.
Lenguaje SQL
56Dr. Anibal Mazza Fraquelli – www.fraquelli.net
➢Query By Example
➢El usuario hace consultas sobre estructuras
predefinidas para completar y acceder a los
datos
Lenguajes QBE
57Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Especificos de Paquetes Integrados
➢Algunos enlatado proveen su propio
lenguaje de programacion o macro-lenguaje
➢Estructuras de control similares a 3GL
➢Algunos paquetes toman licenciamiento del
lenguaje de los fabricantes, siendo el mas
usual hoy el Visual Basic
58Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Lenguajes mejorados en entornos gráficos
➢Basic
➢C
➢C++
➢Java
La proliferación de Windows hace que todos los lenguajes de programación
(de cualquier fabricante) se hagan visuales para correr en esta plataforma
Lenguajes Visuales
59Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Programación Orientada a Objetos - OOP
➢Combinar datos y procedimientos en un solo OBJETO
➢ Programa envía mensajes al objeto para que desarrolle un procedimiento contenido en el.
➢Los datos del objetos esta “encapsulados” y separados del resto del sistema.
➢Creación de código reusable
➢Reduce tiempo y costos de desarrollo del software
60Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Programación Orientada a Objetos - OOP
Programación Visual: Seleccionar y arreglar los objetos en lugar de escribir código.
Clase: Todos los objetos de una clase tienen todas las particularidades o propiedades de esa clase.
Herencia: Una clase recibe las particularidades de la clase general.
OVERRIDE: La subclase puede prevalecer sobre un
método heredado
61Dr. Anibal Mazza Fraquelli – www.fraquelli.net
Programación Orientada a Objetos - OOP
JAVA: Sun MicroSistems: OOP
➢APPLET: Programa pequeño que ejecuta una tarea o función
➢Applets se bajan de redes
➢Corren en cualquier computadora y sistema
➢Resultados almacenados en redes y no en PC
➢ Solo la versión de la red necesita ser actualizada
Top Related