1 / 113

1. INTRODUCCIÓN

Cobol. C. Pascal. Fortran. 1. INTRODUCCIÓN. SmallTalk. Java. C++. Evolución de los conceptos. ABSTRACCIÓN DE DATOS Tipos de datos. Elementales (HW) Estructurados (LP) Abstractos (U). Tipos de datos: Elementales. Enteros Reales Booleanos Caracteres.

apollo
Télécharger la présentation

1. INTRODUCCIÓN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++

  2. Evolución de los conceptos • ABSTRACCIÓN DE DATOS • Tipos de datos • Elementales (HW) • Estructurados (LP) • Abstractos (U)

  3. Tipos de datos: Elementales • Enteros • Reales • Booleanos • Caracteres • Nivel: de la máquina • Primitivos • Tipo básico • Proporcionados por el Hw

  4. Tipos de datos: Estructurados • Arreglos • Registros • Nivel: Del Lenguaje de Programación • Proporcionado por los LP • Con base en tipos elementales • Se utilizan constructores de tipo que  al LP

  5. Tipos de datos: Abstractos • Stacks • Colas, etc • Nivel: Del usuario • Definidos por el usuario para enriquecer el LP

  6. Evolución de los conceptos • ABSTRACCIÓN DE CONTROL • Lógica del código • Sentencias • Unidades de Programas

  7. Sentencias Constructores de código que facilitan la programación estructurada • Asignación • Decisión • Iteración

  8. Unidades de programas • Permiten programación modular • Generalizan la noción de operador • Permiten encapsular parte de un algoritmo • Tienen una única definición • Tienen múltiples activaciones

  9. Clasificación de los Lenguajes De Programación

  10. Clasificación de los LP Lenguajes Naturales De Programación De Máquina Simbólicos Bajo nivel Alto Nivel • Imperativos • Funcionales • Lógicos • OO

  11. C++ Delphi Pascal C LAN ForTran Mayor grado de abstracción L ENS LM COBOL Categorización de los LP

  12. 1.3 Criterios de :Definición y Diseño de LP

  13. Lenguajes Naturales Conjunto de sonidos articulados con que el hombre manifiesta a otros lo que siente o piensa

  14. Lenguajes de Programación Notación sistemática por la cual describimos procesos computacionales

  15. Lenguajes de Máquina • Las instrucciones se expresan como strings binarios que la CPU es capaz de entender, por lo tanto: • Es característico de cada computador y • Depende de la máquina

  16. Lenguajes Simbólicos • Manejan identificadores en vez de strings de bits, para: • Operaciones • Valores • Localidades de almacenamiento Aparece la necesidad de otro Sw, puesto que NO es posible ejecutar notaciones diferentes del LM

  17. Lenguajes Bajo Nivel • Se denominan ensambladores • Es necesario el conocimiento de la arquitectura subyacente. • LP simbólicomás cercano al LM • La relación entre las sentencias del LM y el leng. ensamblador es 1:1 • Los LP ensambladores utilizan símbolos llamados códigos mnemónicos: Add, Store, etc.

  18. Lenguajes Alto Nivel • LP que permite un estilo de escritura fácil de leer y comprender por otros programadores • Permite crear programas portables, sin cambios sustanciales, por los que se dice, que son independientes de la máquina.

  19. CPU RAM Lenguajes Imperativos • Los primeros LP fueron creados en los 50's: Fortran, Pascal, C, Ada • Se denominan también, procedurales • Los LP que tienen a ForTran y COBOL como raíz, se denominan imperativos. • Tienen como característica cambiar elestado de las variables por asignación. • Están influenciados por la máquina en la que deben "correr": Máquina de Von Neuman.

  20. Lenguajes Funcionales • Los primeros aparecieron en los 60's: Lisp, Apl, Forth • Se denominan tambiénaplicativos. • Aplican funciones, ya sea, recursivamente o por composición. • Se caracterizan por una programación sin asignaciones , ie, puramente funcional. • Los usuarios de los LP funcionales NO deben preocuparse de manejar el almacenamiento de datos.

  21. Lenguajes Funcionales Ejemplos: • x + y => (Plus x y) • 2*y => (Times 2 y) • x5=> (Exp x 5) • 5xyz => (Times 5(Times x (Times y z))) • ax2 + bx + c => ax2 + (bx + c) => (Plus (Times a (Exp x 2)) (Plus (Times b x) c ))

  22. Lenguajes Lógicos • Aparecieron en los 70's : PROLOG • Son LP diseñados principalmente para aplicaciones de IA, máquinas de 5° generación. • Los LP lógicos revisan la presencia de una determinada condición, la que,si es verdadera se ejecuta una acción apropiada • Se basa en la noción de definir objetos y relaciones de inferencia en clases de objetos.

  23. Lenguajes Lógicos Ejemplo: Una forma de programación lógica son las tablas de decisión utilizadas en aplicaciones administrativas. Acción 1 if (cond1) Acción 2 if (cond2) :

  24. Lenguajes OO • Ejemplos de estos lenguajes son: Smalltalk, Eiffel, C++, Java. • Son LP que incorporan nuevas formas de pensar con respecto a cómo estructurar la información dentro del computador • Se construyen complejos objetos de datos y se diseña un conjunto de funciones para operar con tales datos.

  25. 1.3 Criterios de :Definición y Diseño de LP • Ortogonalidad • Claridad Sintáctica • Orientación • Extensión • Portabilidad • Eficiencia

  26. 1.4 Sintáxis

  27. ORTOGONALIDAD Dotar al lenguaje de la máxima generalidad posible de modo que NO existan restricciones o casos especiales. Ejemplos: Ventajas: Desventajas:

  28. Ejemplo: Pascal Como ejemplo de FALTAde ortogonalidad en Pascal, el tipo de dato de un parámetro formal NO puede ser anónimo, es decir, no es posible declararlo explícitamente Procedure A(Var v : Array1..10 of Real);

  29. Ejemplo: Pascal debiéndose declarar Type Vector = Array1..10 of Real; Procedure A(var v : Vector);

  30. Ventajas de LP Ortogonales Si un lenguaje es ortogonal, entonces tal LP: • Es fácil de aprender • Permite facilidad en la escritura de programas. Porque NO tiene excepciones ni casos especiales que recordar.

  31. Desventajas de LP Ortogonales Si un lenguaje es ortogonal, entonces: Un programa generalmentes compilará SIN errores, aún cuando contenga combinaciones que son lógicamente incoherentes o extremadamente ineficientes

  32. CLARIDAD SINTÁCTICA Permitir que las diferencias semánticas se manifiesten en diferencias sintácticas • COBOL : Es claro

  33. CLARIDAD SINTÁCTICA • APL:No es claro, puesto que está lleno de símbolos. Su sintáxis es encriptada v 5 0 • Facilita la escritura a programadores experimentados • Son difíciles de leer al momento de efectuar modificaciones futuras.

  34. ORIENTACIÓN Proveer una sintaxis comprometida con la orientación del lenguaje. • Es más bien de carácter histórico • Es un compromiso con las personas En general, la notación utilizada por un LP debiera ser consistente con las notaciones usadas en ese campo.

  35. EXTENSIÓN Facilitar la implementación de estructuras inexistentes en función de las que éste provee, permitiendo al usuario: • Definir sus propios EDT • Codificar sus propios operadores

  36. PORTABILIDAD Proveer una definición del lenguaje independiente de las características de una máquina en particular. • Dos impedimentos para la independencia de la máquina son: • La aritmética de la máquina y • Eltamaño de la word • Incompatible con: • Realidad • Objet. Comerciales

  37. Ejemplo: Java Java crea una versión ejecutable portable El proceso de compilación se detiene antes de generar el código de máquina: Código de Byte El proceso de traducción continúa en cada máquina donde se ejecutará el programa Código Byte HOT JAVA Cód. Ejecutable

  38. EFICIENCIA En traducción: LP orientados a la educación. Rápida compilación En ejecución: LP orientados a rutinas muy utiliza- das, como la verificación de claves En construcción LP que permiten una rápida y clara construcción de programas y ayuda en el diagnóstico

  39. 1.4 Sintáxis Conjunto de reglas que determinan si las sentencias de un programa están bien formadas o no. • Manual del usuario: Reglas de cómo escribir. • Compilador: Mecanismo que determina si el programa está bien escrito

  40. 1.4 Sintáxis • Objetivo: Proveer una notación que permita la comunicación entre el programador y el compilador (procesador del lenguaje). Criterios Sintácticos Elementos Sintácticos

  41. Gramática

  42. Criterios Sintácticos • Legibilidad: COBOL:Write sueldo after advancing 2 lines • Facilidad de escritura: APL: AA*-1 Invierte una matriz

  43. Criterios Sintácticos • Facilidad de traducción: El compilador debiera generar poco código • Ausencia de ambigüedad: Evitar que una estructura tenga más de un significado

  44. Criterios Sintácticos Por ejemplo, en Fortran: • M(i) puede significar un elemento del arreglo M, ó • M(i) una llamada a la función M. Con el parámetro i. Por ejemplo, en PL/1: • A=B=C: Asignación múltiple B=C, A=B • Asignación de un valor booleano: A=(B=C)

  45. Criterios Sintácticos Solución en Pascal: If (x=0) then Begin If (y=0) then S1; End else S2; Por ejemplo, en Pascal: If (x=0) then If (y=0) then S1 else S2;

  46. Elementos Sintácticos • Set de Caracteres • Identificadores • Símbolos para operadores • Palabras claves y reservadas • Comentarios • Abreviaciones • Espacios

  47. Elementos Sintácticos(Cont.) • Delimitadores • Formatos Fijo y Libre • Expresiones • Sentencias • Estructura de Unidades de programa

  48. Gramática

  49. Set de Caracteres • Datos estandarizados: ASCII - EBCDIC • Datos propios: Algol: ASCII Extended APL

  50. Identificadores • Tienen una cantidad máxima de símbolos definidos por la versión • Generalmente es: • Un string con letras y/o dígitos comenzando con letra • La legibilidad aumenta si las versiones permiten identificadores de varios caracteres. • Escritura básica de los LP.

More Related