lenguajes de programación -...

62
1 Dr. Anibal Mazza Fraquelli www.fraquelli.net Universidad de Buenos Aires Facultad de Ciencias Económicas Tecnología de la Información Profesor Adjunto Dr. Anibal Mazza Fraquelli Lenguajes de Programación File:2-32000

Upload: lamnhan

Post on 02-Jul-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

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”

28Dr. Anibal Mazza Fraquelli – www.fraquelli.net

Algunos

Lenguajes

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

62Dr. Anibal Mazza Fraquelli – www.fraquelli.net

Programación Orientada a Objetos - OOP

ActiveX: Controles de WINDOWS

➢Gráficos

➢Tablas

➢Animaciones

➢Insertados en paginas Web