42

LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Embed Size (px)

Citation preview

Page 1: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción
Page 2: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

LENGUAJE DE PROGRAMACIONLENGUAJE DE PROGRAMACION

sistema de escritura para la descripción sistema de escritura para la descripción precisa de precisa de algoritmoalgoritmos o programas s o programas informáticos. informáticos.

Los lenguajes de programación son Los lenguajes de programación son herramientas que nos permiten crear herramientas que nos permiten crear programas y software. Entre ellos tenemos programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..Delphi, Visual Basic, Pascal, Java, etc..

Una computadora funciona bajo control de Una computadora funciona bajo control de un programa el cual debe estar un programa el cual debe estar almacenado en la unidad de memoria; almacenado en la unidad de memoria; tales como el disco duro.tales como el disco duro.

Los Los lenguajes de programaciónlenguajes de programación de una de una computadora en particular se conoce computadora en particular se conoce como código de máquinas o lenguaje de como código de máquinas o lenguaje de máquinas. máquinas.

Page 3: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

HISTORIAHISTORIA

Los lenguajes de programacion surge de Charles Babagge SXIX.Los lenguajes de programacion surge de Charles Babagge SXIX. Predijo mucha de las teorias en que se basan las actuales  Predijo mucha de las teorias en que se basan las actuales 

ordenadores,ordenadores,esto consistia  en la maquina analitica.esto consistia  en la maquina analitica.

Por metivos tecnicos no se  realizo hasta SXX con la colaboracion de Por metivos tecnicos no se  realizo hasta SXX con la colaboracion de Ada Lovedby programo en tarjetas perforadas para la maquina de Ada Lovedby programo en tarjetas perforadas para la maquina de babagge, considerada la programadora.babagge, considerada la programadora.

La maq  analitica no se construyo.La maq  analitica no se construyo. En1823 el gob britanico apoyo para crear la maq de diferencias: En1823 el gob britanico apoyo para crear la maq de diferencias:

dispositivo mecanico para efectuar sumas.dispositivo mecanico para efectuar sumas. Babagge abandona el proyecto y se dedica a la maquina analitica Babagge abandona el proyecto y se dedica a la maquina analitica

que contaba de 5 unidades basicas:que contaba de 5 unidades basicas: 1) Unidad de entrada. 1) Unidad de entrada.

2) Memoria.2) Memoria. 3) Unidad de control.3) Unidad de control. 4) Unidad Aritmético-Lógica.4) Unidad Aritmético-Lógica. 5) Unidad de salida. 5) Unidad de salida. BABAGGE “PADRE DE LA INFORMATICA” NO REALIZO SUS INVENTOS BABAGGE “PADRE DE LA INFORMATICA” NO REALIZO SUS INVENTOS

POR FALTA DE LA ELECTRONICA.POR FALTA DE LA ELECTRONICA.

Page 4: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción
Page 5: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

SEGÚN NIVEL DE SEGÚN NIVEL DE ABSTRACCIÓNABSTRACCIÓN

Page 6: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

LENGUAJE DE MAQUINALENGUAJE DE MAQUINA

El lenguaje de máquina de una El lenguaje de máquina de una computadora consta de cadenas de computadora consta de cadenas de números binarios (0 y 1) y es el único que números binarios (0 y 1) y es el único que "entienden" directamente los procesadores. "entienden" directamente los procesadores. Todas las instrucciones preparadas en Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo cualquier lenguaje de máquina tienen por lo menos dos partes. Especifican una menos dos partes. Especifican una operación y una dirección de memoria.operación y una dirección de memoria.Las instrucciones en lenguaje máquina Las instrucciones en lenguaje máquina dependen del hardware de la computadora dependen del hardware de la computadora y, por tanto , diferirán de una computadora y, por tanto , diferirán de una computadora a a otra. otra.

Page 7: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

VENTAJASVENTAJAS

Transferir un programa a la memoria Transferir un programa a la memoria sin necesidad de traducción sin necesidad de traducción posterior.posterior.

Velocidad de ejecución superior a Velocidad de ejecución superior a cualquier otro lenguaje de cualquier otro lenguaje de programación.programación.

Page 8: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

DESVENTAJAS: DESVENTAJAS:

Dificultad y lentitud en la Dificultad y lentitud en la codificación,codificación,

Poca fiabilidad,Poca fiabilidad, Dificultad grande de verificar y Dificultad grande de verificar y

poner a punto los programas,poner a punto los programas, Los programas sólo son Los programas sólo son

ejecutables en el mismo ejecutables en el mismo procesador. procesador.

Page 9: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

LENGUAJE LENGUAJE ENSAMBLADORENSAMBLADOR

Lenguaje de programación que posee una Lenguaje de programación que posee una gramatica y estructura.gramatica y estructura.

Trabaja directamente con el microprocesador; por Trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento lo cual se debe de conocer el funcionamiento interno de este.interno de este.

No puede ser ejecutado directamente en la No puede ser ejecutado directamente en la computadora, sino que requiere de una computadora, sino que requiere de una

traducción a lenguaje de máquina. traducción a lenguaje de máquina. El traductor de programas se llama El traductor de programas se llama emsamblador.emsamblador. Existen dos tipos ensambladores básicos y Existen dos tipos ensambladores básicos y

eensambladores modulares, o macro nsambladores modulares, o macro ensambladores.ensambladores.

Page 10: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

VENTAJASVENTAJAS

Velocidad .- Como trabaja directamente con Velocidad .- Como trabaja directamente con el microprocesador al ejecutar un programa, el microprocesador al ejecutar un programa, pues como este lenguaje es el mas cercano a pues como este lenguaje es el mas cercano a la máquina la computadora lo procesa mas la máquina la computadora lo procesa mas rápido.rápido.

Eficiencia de tamaño .- Un programa en Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nively demás como son los lenguajes de alto nivel

Flexibilidad .- Es flexible porque todo lo que Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta hacerse en el lenguaje ensamblador de esta máquina.máquina.

Page 11: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

DESVENTAJAS:DESVENTAJAS:

Tiempo de programación.- Requiere más Tiempo de programación.- Requiere más instrucciones para realizar el mismo proceso, en instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. comparación con un lenguaje de alto nivel.

Programas fuente grandes.- Por las mismas Programas fuente grandes.- Por las mismas razones que aumenta el tiempo, crecen los razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos programas fuentes; simplemente requerimos más instrucciones primitivas para describir más instrucciones primitivas para describir procesos equivalentes.. procesos equivalentes..

Peligro de afectar recursos inesperadamente.- Es Peligro de afectar recursos inesperadamente.- Es posible al cometer errores programando afectar posible al cometer errores programando afectar los recursos de la maquina, y esta se puede los recursos de la maquina, y esta se puede bloquear o reiniciar. bloquear o reiniciar.

Falta de portabilidad.- Para cada máquina existe Falta de portabilidad.- Para cada máquina existe un lenguaje ensamblador.un lenguaje ensamblador.

Page 12: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

LENGUAJE DE ALTO NIVELLENGUAJE DE ALTO NIVEL

Es aquel que se aproxima más al lenguaje Es aquel que se aproxima más al lenguaje natural humano que al lenguaje binario de natural humano que al lenguaje binario de las computadoras, el que se conoce como las computadoras, el que se conoce como lenguaje de bajo nivel. lenguaje de bajo nivel.

Es independiente de un hardware Es independiente de un hardware determinado determinado

Utiliza palabras del lenguaje humano (por lo Utiliza palabras del lenguaje humano (por lo general el inglés) general el inglés)

Expresa los algoritmos de una manera Expresa los algoritmos de una manera adecuada a la capacidad cognitiva humana, adecuada a la capacidad cognitiva humana, en lugaren lugar

de a la capacidad ejecutora de las de a la capacidad ejecutora de las máquinas. máquinas.

Page 13: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

VENTAJASVENTAJAS

Son más fáciles de aprender que los lenguajes Son más fáciles de aprender que los lenguajes ensambladores.ensambladores.

Se pueden escribir más rápidamente.Se pueden escribir más rápidamente. Permiten mejor documentación.Permiten mejor documentación. El tiempo de formación de los programadores El tiempo de formación de los programadores

es relativamente corto comparado con otros es relativamente corto comparado con otros lenguajes.lenguajes.

La escritura de programas se basa en reglas La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. sintácticas similares a los lenguajes humanos.

Reducción del coste de los programas.Reducción del coste de los programas. Transportabilidad.Transportabilidad.

Page 14: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

DESVENTAJAS:DESVENTAJAS:

La gran cantidad de lenguajes que existen La gran cantidad de lenguajes que existen actualmente en uso, además de las diferentes actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de versiones o dialectos que se han desarrollado de algunos de ellos. algunos de ellos.

Incremento del tiempo, al necesitarse diferentes Incremento del tiempo, al necesitarse diferentes traducciones del programa fuente para conseguir traducciones del programa fuente para conseguir el programa definitivo.el programa definitivo.

No se aprovechan los recursos internos de la No se aprovechan los recursos internos de la máquina, que se explotan mucho mejor en máquina, que se explotan mucho mejor en lenguajes maquina y ensambladores.lenguajes maquina y ensambladores.

Aumento de la ocupación de memoria.Aumento de la ocupación de memoria. El tiempo de ejecución de los programas es El tiempo de ejecución de los programas es

mucho mayor.mucho mayor.

Page 15: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

COBOLCOBOL Creado en 1960 por un comité denominado CODASYL, patrocinado Creado en 1960 por un comité denominado CODASYL, patrocinado

por el Departamento de Defensa de los Estados Unidos. por el Departamento de Defensa de los Estados Unidos. Su nombre proviene de COmmon Business Oriented Language. Su nombre proviene de COmmon Business Oriented Language. Fue diseñado inspirándose en el lenguaje FLOW-MATIC de Grace Fue diseñado inspirándose en el lenguaje FLOW-MATIC de Grace

Hopper y el IBM COMTRAN de Bob Bemer. Hopper y el IBM COMTRAN de Bob Bemer. En 1968 salió la primera versión ANSI del lenguaje, siendo En 1968 salió la primera versión ANSI del lenguaje, siendo

revisada posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL revisada posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliado en 1989 con funciones matemáticas, finalizando ANS-85, ampliado en 1989 con funciones matemáticas, finalizando el estándar actual más usado, conocido como COBOL-ANSI). el estándar actual más usado, conocido como COBOL-ANSI).

En la revisión de 2002 (COBOL ANS-2002) se le añadió orientación En la revisión de 2002 (COBOL ANS-2002) se le añadió orientación a objetos, aunque desde la revisión de 1974 se podía crear un a objetos, aunque desde la revisión de 1974 se podía crear un entorno de trabajo similar a la orientación a objetos, y un método entorno de trabajo similar a la orientación a objetos, y un método de generación de pantallas gráficas estandarizado Actualmente de generación de pantallas gráficas estandarizado Actualmente se está preparando otra revisión que se espera que esté finalizada se está preparando otra revisión que se espera que esté finalizada para el año 2008.para el año 2008.

Entre sus inconvenientes están sus rígidas reglas de formatos de Entre sus inconvenientes están sus rígidas reglas de formatos de escritura, la necesidad de describir todos los elementos al máximo escritura, la necesidad de describir todos los elementos al máximo detalle, la extensión excesiva en sus sentencias e incluso detalle, la extensión excesiva en sus sentencias e incluso duplicación en algunos casos, la inexistencia de funciones duplicación en algunos casos, la inexistencia de funciones matemáticas y, por último, su no adecuación a las técnicas de matemáticas y, por último, su no adecuación a las técnicas de programación estructurada. programación estructurada.

Page 16: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

FORTRANFORTRAN

Abreviatura de Abreviatura de FórFórmula mula TranTranslator (traductor de fórmulas), fue slator (traductor de fórmulas), fue definido alrededor del año 1955 en los Estados Unidos por la definido alrededor del año 1955 en los Estados Unidos por la compañía IBM. compañía IBM.

Es el más antiguo de los lenguajes de alto nivel, pues antes de Es el más antiguo de los lenguajes de alto nivel, pues antes de su aparición todos los programas se escribían en lenguaje su aparición todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina. ensamblador o en lenguaje máquina.

Es un lenguaje especializado en aplicaciones técnicas y Es un lenguaje especializado en aplicaciones técnicas y científicas, caracterizándose por su potencia en los cálculos científicas, caracterizándose por su potencia en los cálculos matemáticos, pero estando limitado en las aplicaciones de matemáticos, pero estando limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes.caracteres y edición de informes.

El lenguaje fue diseñado teniendo en cuenta que los programas El lenguaje fue diseñado teniendo en cuenta que los programas serían escritos en tarjetas perforadas de 80 columnas. Así por serían escritos en tarjetas perforadas de 80 columnas. Así por ejemplo, las líneas debían ser numeradas y la única alteración ejemplo, las líneas debían ser numeradas y la única alteración posible en el orden de ejecución era producida con la instrucción posible en el orden de ejecución era producida con la instrucción goto. goto.

Estas características han evolucionado de versión en versión. Las Estas características han evolucionado de versión en versión. Las actuales contienen subprogramas, recursión y una variada gama actuales contienen subprogramas, recursión y una variada gama de estructuras de control.de estructuras de control.

Page 17: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

CC

Fué diseñado alrededor de 1970 por Dennis Ritchie, de los Fué diseñado alrededor de 1970 por Dennis Ritchie, de los Laboratorios Bell. Se emplea para escribir compiladores y Laboratorios Bell. Se emplea para escribir compiladores y sistemas operativos; actualmente el lenguaje C es uno de los sistemas operativos; actualmente el lenguaje C es uno de los más usados junto con sus derivados (visual C, C+, C++, etc). más usados junto con sus derivados (visual C, C+, C++, etc).

Un programa en C consta de módulos que pueden llamarse Un programa en C consta de módulos que pueden llamarse recursivamente, pero no de manera anidada. El manejo de la recursivamente, pero no de manera anidada. El manejo de la memoria es dinámico. memoria es dinámico.

La base del lenguaje fue creada por programadores y para La base del lenguaje fue creada por programadores y para programadores, a diferencia de otros lenguajes como Basic o programadores, a diferencia de otros lenguajes como Basic o Cobol que fueron creados para que los usuarios resolvieran Cobol que fueron creados para que los usuarios resolvieran pequeños problemas de sus ordenadores y el segundo para que pequeños problemas de sus ordenadores y el segundo para que los no programadores pudiesen entender partes del programa.los no programadores pudiesen entender partes del programa.

Combina la programación estructurada de los lenguajes de alto Combina la programación estructurada de los lenguajes de alto nivel con la flexibilidad del ensamblador. nivel con la flexibilidad del ensamblador.

Aunque fue diseñado inicialmente para la programación de Aunque fue diseñado inicialmente para la programación de sistemas, posteriormente su uso se ha extendido a aplicaciones sistemas, posteriormente su uso se ha extendido a aplicaciones técnico-científicas, de bases de datos, de proceso de textos, etc. técnico-científicas, de bases de datos, de proceso de textos, etc.

Page 18: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción
Page 19: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

•Diseno de algoritmo•Programa en un papel

Programa en un archivo en el disco duro

•Introduccion •Modificacion

Editor de texto

•Almacenamiento •Recuperacion

Page 20: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

No entiende Lenguaje de Alto Nivel

Lenguaje: maquina comprenda Compilador

trad

ucid

o

Page 21: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Lenguaje de Alto Nivel

DIFERENTE COMPILADOR

Lenguaje de Bajo Nivel

Compilador del programa

DESVENTAJA

Page 22: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

PR

OG

RA

MA

Alto nivel

Introduce escrito

Maquina (editor)

Codigo fuenteCOMPILADORLenguaje

maquina

Almacena resultado

archivo Codigo objetollamado

traduce llama

Page 23: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

INICIO

Prog.fuente

Compilar prog.

ERRORES

programa

Prog. ejecutable

ejecucion

enlazador

modificacion

Page 24: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

PROGRAMAFUENTE

traduceEjecuta

BASIC

Prog clasicos

Practicamente no utiliza

Q. BASIC

Computadoras personales

RENACER

JAVAaparicion

Page 25: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción
Page 26: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Lenguaje de Lenguaje de Programación Programación ImperativosImperativos Son aquellos lenguajes en los cuales Son aquellos lenguajes en los cuales

se le ordena a la computadora cómo se le ordena a la computadora cómo realizar una tarea siguiendo una serie realizar una tarea siguiendo una serie de pasos o instrucciones.de pasos o instrucciones.

Los lenguajes imperativos se basan en Los lenguajes imperativos se basan en comandos u órdenes que se le dan a la comandos u órdenes que se le dan a la computadora para que haga algo, con computadora para que haga algo, con el fin de organizar o cambiar valores el fin de organizar o cambiar valores en ciertas partes de la memoria. en ciertas partes de la memoria.

BASIC, C, Java, Clipper, Dbase, C#, BASIC, C, Java, Clipper, Dbase, C#, PHP, Perl, etc. PHP, Perl, etc.

Page 27: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Los primeros lenguajes imperativos fueron los Los primeros lenguajes imperativos fueron los lenguajes de máquina de los computadores lenguajes de máquina de los computadores originales. En estos lenguajes, las instrucciones originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la fueron muy simples, lo cual hizo la implementación de hardware fácil, pero implementación de hardware fácil, pero obstruyendo la creación de programas obstruyendo la creación de programas complejos. complejos. FortranFortran, cuyo desarrollo fue iniciado , cuyo desarrollo fue iniciado en 1954 por en 1954 por John BackusJohn Backus en IBM, fue el primer en IBM, fue el primer gran lenguaje de programación en superar los gran lenguaje de programación en superar los obstáculos presentados por el código de obstáculos presentados por el código de máquina en la creación de programas máquina en la creación de programas complejos.complejos.

Page 28: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Lenguajes Imperativos Lenguajes Imperativos ProceduralesProcedurales En este tipo de lenguajes, la En este tipo de lenguajes, la

arquitectura consta de una secuencia arquitectura consta de una secuencia de celdas, llamadas memoria, en las de celdas, llamadas memoria, en las cuales se pueden guardar en forma cuales se pueden guardar en forma codificada, lo mismo datos que codificada, lo mismo datos que instrucciones; y de un procesador, el instrucciones; y de un procesador, el cual es capaz de ejecutar de manera cual es capaz de ejecutar de manera secuencial una serie de operaciones, secuencial una serie de operaciones, principalmente aritméticas y booleanas, principalmente aritméticas y booleanas, llamadas comandos .llamadas comandos .

Page 29: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Con un lenguaje procedural el usuario Con un lenguaje procedural el usuario (normalmente será un programador) (normalmente será un programador) especifica qué datos se necesitan y cómo especifica qué datos se necesitan y cómo obtenerlos. obtenerlos.

Estos lenguajes acceden a un registro, lo Estos lenguajes acceden a un registro, lo procesan y basándose en los resultados procesan y basándose en los resultados obtenidos, acceden a otro registro, que obtenidos, acceden a otro registro, que también deben procesar. Así se va también deben procesar. Así se va accediendo a registros y se van accediendo a registros y se van procesando hasta que se obtienen los procesando hasta que se obtienen los datos deseados. datos deseados.

Page 30: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

BASICBASIC

El lenguaje BASIC fue creado en El lenguaje BASIC fue creado en 1964 por los norteamericanos 1964 por los norteamericanos John Kemeny y Thomas Kurtz.John Kemeny y Thomas Kurtz.

Se uso para le aenseñanza y para Se uso para le aenseñanza y para la programacion profesional.la programacion profesional.

Era un lenguaje poco Era un lenguaje poco estructurado y recibió muchas estructurado y recibió muchas críticas por promover malos críticas por promover malos hábitos de programación. hábitos de programación.

Page 31: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Lenguaje de Lenguaje de Programación Orientados Programación Orientados a Objetosa Objetos

El elemento fundamental de la OOP es, como su El elemento fundamental de la OOP es, como su nombre lo indica, el nombre lo indica, el objetoobjeto. Podemos definir un . Podemos definir un objeto como objeto como un conjunto complejo de un conjunto complejo de datosdatos y y programasprogramas que poseen estructura y forman que poseen estructura y forman parte de una organizaciónparte de una organización..

La programación orientada a objetos expresa un La programación orientada a objetos expresa un programa como un conjunto de estos objetos, programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. que colaboran entre ellos para realizar tareas. Esto permite hacer los programas módulos más Esto permite hacer los programas módulos más fáciles de escribir, mantener y reutilizar.fáciles de escribir, mantener y reutilizar.

De esta forma, un objeto contiene toda la De esta forma, un objeto contiene toda la información, (los denominados atributos) que información, (los denominados atributos) que permite definirlo e identificarlo frente a otros permite definirlo e identificarlo frente a otros objetos.objetos.

Page 32: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

A su vez, dispone de mecanismos de A su vez, dispone de mecanismos de interacción (los llamados métodos) que interacción (los llamados métodos) que favorecen la comunicación entre favorecen la comunicación entre objetos, y en consecuencia, el cambio objetos, y en consecuencia, el cambio de estado en los propios objetos. Esta de estado en los propios objetos. Esta característica lleva a tratarlos como característica lleva a tratarlos como unidades indivisibles, en las que no se unidades indivisibles, en las que no se separan (ni deben separarse) separan (ni deben separarse) información (datos) y procesamiento información (datos) y procesamiento (métodos).(métodos).

Algunos lenguajes de POO: Ada, Delphi, Algunos lenguajes de POO: Ada, Delphi, C++,Ruby, etc.C++,Ruby, etc.

Page 33: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

DELPHIDELPHI

DelphiDelphi es un entorno de desarrollo es un entorno de desarrollo de software diseñado para la de software diseñado para la programación de propósito general programación de propósito general con énfasis en la programación con énfasis en la programación visual. visual.

En sus diferentes variantes, permite En sus diferentes variantes, permite producir archivos ejecutables para producir archivos ejecutables para Windows, Linux y la Windows, Linux y la plataforma .NET. plataforma .NET.

Page 34: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

Delphi está basado en una versión Delphi está basado en una versión moderna de moderna de PascalPascal, denominada , denominada ObjectObject Pascal Pascal. Borland en los últimos . Borland en los últimos años defendía que el nombre años defendía que el nombre correcto del lenguaje es también correcto del lenguaje es también DelphiDelphi..

Pero en los manuales el nombre del Pero en los manuales el nombre del lenguaje aparecía como lenguaje aparecía como Object Object PascalPascal, por lo que la comunidad de , por lo que la comunidad de programadores no ha adoptado programadores no ha adoptado mayoritariamente este cambio mayoritariamente este cambio

Page 35: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

LENGUAJES DE PROGRAMACION LENGUAJES DE PROGRAMACION DECLARATIVOSDECLARATIVOS

La La programaciónprogramación declarativa es una declarativa es una forma de programación que implica la forma de programación que implica la descripcióndescripción de un problema dado en de un problema dado en lugar de proveer una solución para lugar de proveer una solución para dicho problema, dejando la dicho problema, dejando la interpretacióninterpretación de los pasos específicos de los pasos específicos para llegar a dicha solución a un para llegar a dicha solución a un intérprete no especificado. La intérprete no especificado. La programación declarativa adopta, por programación declarativa adopta, por lo tanto, un enfoque diferente al de la lo tanto, un enfoque diferente al de la programación imperativa tradicional.programación imperativa tradicional.

Page 36: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

CARACTERÍSTICAS DE LOS LENGUAJES DE CARACTERÍSTICAS DE LOS LENGUAJES DE PROGRAMACIÓN DECLARATIVOSPROGRAMACIÓN DECLARATIVOS

Los lenguajes declarativos están orientados a buscar la Los lenguajes declarativos están orientados a buscar la solución del problema, sin preocuparse por la forma de solución del problema, sin preocuparse por la forma de llegar a ellollegar a ello . .

Los programas están formados por un conjunto de Los programas están formados por un conjunto de definiciones o definiciones o ecuacionesecuaciones, las cuales describen lo que , las cuales describen lo que debe ser calculado, no en sí la forma de hacerlo. debe ser calculado, no en sí la forma de hacerlo.

Las Las variablesvariables sólo pueden tener asignado un solo valor sólo pueden tener asignado un solo valor a lo largo de la ejecución del programa, lo cual implica a lo largo de la ejecución del programa, lo cual implica que no puede existir asignación destructiva. que no puede existir asignación destructiva.

El orden de la ejecución no resulta importante debido a El orden de la ejecución no resulta importante debido a que no existen efectos colaterales.que no existen efectos colaterales.

Las expresiones o definiciones pueden ser usadas como Las expresiones o definiciones pueden ser usadas como valoresvalores y por lo tanto se pueden tratar como y por lo tanto se pueden tratar como argumentos de otras definiciones. argumentos de otras definiciones.

El control de la ejecución no es El control de la ejecución no es responsabilidadresponsabilidad del del programador. programador.

Page 37: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

DESVENTAJAS DE LA DESVENTAJAS DE LA PROGRAMACIÓN DECLARATIVAPROGRAMACIÓN DECLARATIVA

La principal desventaja de la programación La principal desventaja de la programación declarativa es que no puede resolver declarativa es que no puede resolver cualquier problema dado, sino que está cualquier problema dado, sino que está restringida al subconjunto de problemas para restringida al subconjunto de problemas para los que el intérprete o compilador fue los que el intérprete o compilador fue diseñado.diseñado.

Page 38: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

VENTAJAS DE LA VENTAJAS DE LA PROGRAMACIÓN DECLARATIVAPROGRAMACIÓN DECLARATIVA

Entre las ventajas se destaca que Entre las ventajas se destaca que la solución de un problema se la solución de un problema se puede realizar con un nivel de puede realizar con un nivel de abstracción considerablemente abstracción considerablemente alto, sin entrar en detalles de alto, sin entrar en detalles de implementación irrelevantes, lo implementación irrelevantes, lo que hace a las soluciones más que hace a las soluciones más fácil de entender por las fácil de entender por las personas. La resolución de personas. La resolución de problemas complejos es problemas complejos es resuelta por el intérprete a resuelta por el intérprete a partir de la declaración de las partir de la declaración de las condiciones dadas.condiciones dadas.

Page 39: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

EJEMPLOS DE LENGUAJES EJEMPLOS DE LENGUAJES DECLARATIVOSDECLARATIVOS

Algunos lenguajes declarativos que se Algunos lenguajes declarativos que se pueden mencionar son:pueden mencionar son:

PROLOGPROLOG SQLSQL HTMLHTML WSDL (WSDL (WebWeb Services Description Services Description

Language)Language) XML Stylesheet Language for XML Stylesheet Language for

TransformationTransformation

Page 40: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

PROGRAMACIÓN LÓGICAPROGRAMACIÓN LÓGICA

La programación lógica, junto con la funcional, La programación lógica, junto con la funcional, forma parte de lo que se conoce como forma parte de lo que se conoce como programación declarativa.programación declarativa. En los lenguajes En los lenguajes tradicionales, la programación consiste en indicar tradicionales, la programación consiste en indicar cómo cómo resolver un problema mediante sentencias; resolver un problema mediante sentencias; en la programación lógica, se trabaja de forma en la programación lógica, se trabaja de forma descriptiva, estableciendo relaciones entre descriptiva, estableciendo relaciones entre entidades, indicando entidades, indicando no cómo, sino qué hacer. no cómo, sino qué hacer. Se Se establece entonces que la idea esencial de la establece entonces que la idea esencial de la programación lógica es: programación lógica es: algoritmos = lógica + algoritmos = lógica + control.control. Es decir, un algoritmo se construye Es decir, un algoritmo se construye especificando especificando conocimientoconocimiento en un lenguaje en un lenguaje formal (lógica de primer orden), y el problema se formal (lógica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia resuelve mediante un mecanismo de inferencia (control) que actúa sobre aquél.(control) que actúa sobre aquél.

Page 41: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

PROGRAMACIÓN FUNCIONALPROGRAMACIÓN FUNCIONAL

La programación funcional es un La programación funcional es un paradigmaparadigma de programación de programación declarativa basado en la utilización de funciones declarativa basado en la utilización de funciones matemáticasmatemáticas. El . El objetivoobjetivo de la programación funcional es conseguir lenguajes de la programación funcional es conseguir lenguajes expresivos y expresivos y matemáticamente elegantes,matemáticamente elegantes, en los que no sea en los que no sea necesario bajar al nivel de la máquina para describir el proceso necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa. llevado a cabo por el programa.

Los programas escritos en un lenguaje funcional están constituidos Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo (pues la como subprogramas clásicos de un lenguaje imperativo (pues la programación funcional es declarativa), sino como funciones programación funcional es declarativa), sino como funciones puramente matemáticas, en las que se verifican ciertas puramente matemáticas, en las que se verifican ciertas propiedades como la propiedades como la transparencia referencial transparencia referencial (el significado de (el significado de una expresión depende únicamente del significado de sus una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.subexpresiones), y por tanto, la carencia total de efectos laterales.

Existen dos grandes categorías de lenguajes funcionales: los Existen dos grandes categorías de lenguajes funcionales: los funcionales funcionales puros puros y los y los híbridoshíbridos. La diferencia entre ambos estriba . La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al permitir conceptos tomados de los lenguajes que los puros, al permitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen de variables. En contraste, los lenguajes funcionales puros tienen una mayor una mayor potenciapotencia expresiva, conservando a la vez su expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un transparencia referencial, algo que no se cumple siempre con un lenguaje híbrido.lenguaje híbrido.

Page 42: LENGUAJE DE PROGRAMACION sistema de escritura para la descripción precisa de algoritmos o programas informáticos. sistema de escritura para la descripción

PROGRAMACIÓN ORIENTADA A BASES PROGRAMACIÓN ORIENTADA A BASES DE DATOSDE DATOS

Las bases de datos son programas que administran Las bases de datos son programas que administran informacióninformación y hacen más ordenada la información, aparte y hacen más ordenada la información, aparte de hacer la fácil de buscar y por supuesto de encontrar.de hacer la fácil de buscar y por supuesto de encontrar.

Las bases de datos tienen muchos usos: facilitan el Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de información; almacenamiento de grandes cantidades de información; permiten la recuperación rápida y flexible de información, permiten la recuperación rápida y flexible de información, con ellas se puede organizar y reorganizar la información, con ellas se puede organizar y reorganizar la información, así como imprimirla o distribuirla en formas diversas.así como imprimirla o distribuirla en formas diversas.

Es claro que los lenguajes orientados a bases de datos son Es claro que los lenguajes orientados a bases de datos son declarativos y no imperativos, pues el problema es declarativos y no imperativos, pues el problema es "qué""qué" se se quiere hacer o quiere hacer o "qué""qué" se necesita buscar y encontrar en la se necesita buscar y encontrar en la base de datosbase de datos, y no se enfatiza el , y no se enfatiza el "cómo"."cómo".

Una base de datos también se puede definir como un banco Una base de datos también se puede definir como un banco de datos o conjunto de datos que pertenecen al mismo de datos o conjunto de datos que pertenecen al mismo contexto, almacenados sistemáticamente para su posterior contexto, almacenados sistemáticamente para su posterior uso. En este sentido, una uso. En este sentido, una bibliotecabiblioteca puede considerarse una puede considerarse una base de datos compuesta en su mayoría por base de datos compuesta en su mayoría por documentosdocumentosy y textos impresos en papel e indexados para su consulta.textos impresos en papel e indexados para su consulta.