Lenguajes de programaci n
This presentation is the property of its rightful owner.
Sponsored Links
1 / 59

Lenguajes de programación PowerPoint PPT Presentation


  • 155 Views
  • Uploaded on
  • Presentation posted in: General

Lenguajes de programación. Ana Lilia Laureano Cruces. Programación imperativa. núcleo. Procedimientos. Programación Orientada a Objetos. núcleo. herencia. Programación funcional. núcleo. int. érpretes. Programación Lógica. núcleo. avanz. ada. Programación concurrente. núcleo.

Download Presentation

Lenguajes de programació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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Lenguajes de programaci n

Lenguajes de programación

Ana Lilia Laureano Cruces

Lenguajes de Programación


Lenguajes de programaci n

Lenguajes de Programación


Lenguajes de programaci n

Programación imperativa

núcleo

Procedimientos...

Programación Orientada a Objetos

núcleo

herencia

Programación funcional

núcleo

int

érpretes

Programación Lógica

núcleo

avanz

ada

Programación concurrente

núcleo

Lenguajes de Programación


Definiciones

Definiciones

  • Un programa es la especificación de una tarea de computación.

  • Un lenguaje de programación es una notación para escribir programas.

  • El desarrollo de los lenguajes se ha basado en el conocimiento de que la complejidad puede manejarse imponiendo alguna estructura a los datos, a las operaciones, a los programas e incluso a las descripciones de un lenguaje.

Lenguajes de Programación


La funci n de la estructura en la programaci n

La Función de la Estructura en la Programación

Lenguajes de Programación


Lenguajes de programaci n

  • Dijkstra [1972] Es poco probable el establecimiento de la corrección de un programa mediante pruebas, a menos que se tome en cuenta su estructura interna.

  • La única esperanza es diseñar cuidadosamente un programa de manera que su corrección pueda entenderse en términos de su estructura.

Lenguajes de Programación


Lenguajes de programaci n

  • El arte de la programación es el arte de organizar la complejidad y

  • Debemos organizar los cálculos de manera que nuestros limitados sentidos sean suficientes para garantizar que el cómputo arroje los resultados esperados.

Lenguajes de Programación


Qu es la programaci n

Qué es la programación

  • En computación se desarrolla más trabajo de programación que de desarrollo (creación inicial a la verificación de un programa)

  • El lenguaje debe ayudarnos a escribir buenos programas; un programa es bueno si es fácil de leer, fácil de entender y fácil de modificar.

Lenguajes de Programación


Lenguajes de programaci n

  • Técnicas para el manejo de programas pequeños no son crecientes (en general).

  • Las dificultades comienzan cuando el efecto del cambio puede extenderse a través de un programa muy grande, introduciendo errores en un lugar olvidado. Pueden permanecer sin detección durante años.

Lenguajes de Programación


Lenguajes de programaci n

  • La estructura y la organización son la clave para manejar programas muy grandes.

  • La legibilidad de un programa puede mejorarse organizandolo de forma que cada parte pueda entenderse en forma relativamente independiente del resto.

  • La estructura nos ayuda a mantener la situación dentro del límite de la atención humana.

Lenguajes de Programación


Lenguajes de programaci n

  • Miller [1967] observó que la gente es capaz de recordar aproximadamente 7 cosas:

    • 7 bits (dígitos binarios)

    • palabras, colores,tonos, sabores

    • 7 maravillas, 7 pecados capitales, 7 edades del hombre

    • la memoria esta limitada por el número de símbolos o unidades que pueda manejar y no por la información que representen esos símbolos

Lenguajes de Programación


La m quina de von neumann

La máquina de Von Neumann

  • Los orígenes de los lenguajes de programación se encuentran en la máquinas

  • se diseño a finales de los 40’s en el Instituto de Estudios Avanzados de Princeton

  • Las actuales tienen mucho en común = arquitectura Von Neumann

  • Lenguaje de máquina = código (texto en un programa)

Lenguajes de Programación


Elementos de un lenguaje de m quina

Elementos de un lenguaje de máquina

  • Burks, Goldstine y Von Neumann [1947]

  • unidad central de procesamiento: unidad de control, aritmética, y entrada y salida; y la memoria.

  • Memoria miníuscula: instrucciones y datos.

  • Memoria = 4096 palabras, c/u de 40 bits

  • la máquina completa tenía 1024 palabras.

Lenguajes de Programación


Lenguajes de programaci n

Unidad de Control

Unidad Aritmética

Unidad de Entrada/Salida

Acumulador A

Registro R

Memoria para instrucciones y datos..M[i]

Lenguajes de Programación


Lenguajes de programaci n

  • Datos: los bits representaban un número en notación binaria.

  • Instrucciones: los 40 bits tenían dos instrucciones de 20 bits.

  • Todo programa en lenguaje de máquina consistía en una secuencia de instrucciones.

Lenguajes de Programación


Las caracter sticas de la m quina

Las características de la máquina

  • Datos: enteros eran la única forma.

  • Operaciones aritméticas:sumar, restar, multiplicar, dividir y tomar el valor absoluto de un número. El resultado de suma o resta se colocaba en un registro llamado acumuldor.

  • Asignaciones a localidades de memoria: a una localidad se le podía asignar el valor contenido en el acumulador y reemplazaba el valor anterior.

Lenguajes de Programación


Lenguajes de programaci n

  • Flujo de control: el flujo normal del control de una instrucción a la sigueinte podía ser interrumpido por una instrucción de salto incondicional (go to).

  • Justificación del go to: la utilidad de un computador automático reside en la posibilidad de usar en forma repetida una secuencia de instrucciones, en donde el número de iteraciones puede asignarse previamente o depender de los resultados de un cálculo.

Lenguajes de Programación


Instrucciones de la m quina de von neumann

Instrucciones de la máquina de Von Neumann

  • Aritmética

    • A:= A + M[i]; A:= A - M[i];

    • A:= A + | M[i] | ; A:= A - | M[i] | ;

    • A:= - M[i] ; A:= A - | M[i] | ; A:= | M[i] |

    • A:= A * 2; A := A div 2

    • A, R := (M [i] * R) div 239, (M[i]*R) mod 239

    • A, R := A mod M [i], A div M [i]

Lenguajes de Programación


Movimiento

Movimiento

  • A := M [i];

  • M [i] := A;

  • R := M [i];

  • A := R;

Lenguajes de Programación


Flujo de control

Flujo de control

  • Dos instrucciones de la palabra i:

    • Salto incondicional M[i]. izq;

    • Salto incondicional M[i]. der;

  • Si A 0 salto incondicional M[i].izq;

  • Si A 0 salto incondicional M[i].der;

Lenguajes de Programación


Otras

Otras

  • Modifica la dirección de M[i].izq proveniente de A.

  • Modifica la dirección de M[i].der proveniente de A.

Lenguajes de Programación


Lenguajes de programaci n

  • Código de máquina es ininteligible:

    • 00000010101111001010

    • 00000010111111001000

    • 00000011001110101000

    • LOAD I

    • ADD J

    • STORE K

    • k = i + j

Lenguajes de Programación


Lenguajes de programaci n

  • El lenguaje ensamblador: es una variante del lenguaje de máquina. Se manejan identificadores en vez de códigos reales (valores, localidades de almacenamiento y operaciones)

  • El lenguaje de máquina y los ensambladores se les conoce como lenguajes de bajo nivel

Lenguajes de Programación


Lenguajes de programaci n

  • El alto costo de creación de código ensamblador o máquina el desarrollo de FORTRAN = FORmula TRANslation.

  • Backus [1975], tenía como meta:

    • Permitir al programador especificar un procedimiento numérico mediante el uso de un lenguaje conciso como el de las matemáticas.

Lenguajes de Programación


Lenguajes de programaci n

  • A partir de esta especificación:

    • un programa en lenguaje de máquina

    • depuración (localización y corrección de errores) se reduce

    • se esperaba reducir a un quinto el desarrollo de programas.

    • B*B - 4*A*C b 2 - 4ac

Lenguajes de Programación


Lenguajes de programaci n

  • El traductor de un lenguaje de máquina o ensamblador se conoce como compilador.

programa fuente

TIEMPO DE TRADUCCION

compilador

código destino

TIEMPO DE EJECUCION

salida

entrada

Lenguajes de Programación


Problemas

Problemas

  • Tiempo de traducción: se necesita tiempo de máquina para compilar un programa fuente y convertirlo en código destino.

  • Tiempo de ejecución y necesidad de espacio mayores: el código destino creado por el compilador suele ejecutarse con mayor lentitud y ocupa más espacio que un código escrito directamente.

Lenguajes de Programación


Preocupaci n

Preocupación

  • Backus pensó que la aceptación de FORTRAN se hallaría en serios problemas al tardar el doble de tiempo en la ejecución que su contraparte escrita en código de máquina.

    • Notación fácil de leer

    • la escritura tenía una notación cercana a la que describía originalmente el problema

    • eran portátiles (intercambio y creación de acervos)

Lenguajes de Programación


Lenguajes de programaci n

  • Con respecto al lenguaje C:

    • Ritchie concluye: aunque un estudio profundo de la mayor cantidad de espacio y tiempo utilizados debido al uso de C, pudiera resultar interesante, sería irrelevante ya que sin importar sus resultados, no provocaría que volviéramos a escribir en lenguaje ensamblador.

Lenguajes de Programación


Revisi n de la eficiencia

Revisión de la eficiencia

  • La eficiencia de un programa depende de las decisiones tomadas en todos los niveles:

    • concepción

    • elección de estructuras de datos

    • algoritmos

  • La legibilidad y la capacidad de modificar los programas contribuyen a la eficacia.

Lenguajes de Programación


Lenguajes de programaci n

  • El desarrollo de un programa eficiente puede considerarse como una secuencia de cambios evolutivos guiados por la realización de un análisis.

  • El refinamiento de código se realiza con la mejora de puntos críticos, que son las pequeñas partes muy utilizadas en donde un programa emplea la mayor parte de su tiempo de ejecución.

Lenguajes de Programación


Lenguajes de programaci n

  • Detector de perfiles (variante de compiladores): detecta los puntos críticos.

  • La codificación cuidadosa de los puntos críticos mejora significativamente el tiempo de ejecución.

Lenguajes de Programación


Lenguajes de programaci n

  • En general un lenguaje de programación es una extensión de la máquina en que se apoya; y un programa es una extensión del lenguaje de programación.

  • Un lenguaje reconstruye la máquina para proporcionar más recursos, y un programa reconstruye el lenguaje para proporcionar recursos más cercanos al problema que debe resolverse.

Lenguajes de Programación


Lenguajes de programaci n

Cada capa amplía las posibilidades de la capa inferior

Programa

a < b

lenguaje de programación

<

máquina

Lenguajes de Programación


Recursos de un lenguaje

Recursos de un lenguaje

  • Modelo de computación : capacidades de la máquina que lo sustenta o bien proporcionar una aproximación diferente (lenguajes concurrentes)

Lenguajes de Programación


Lenguajes de programaci n

  • Tipos de datos y operaciones : constructores (registros, arreglos) del lenguaje que permiten estructurar los valores básicos que posee la máquina como son: caracteres, enteros y números reales. Cada tipo estructurado tiene asociado un conjunto de operaciones, que permite manipular sus componentes.

Lenguajes de Programación


Lenguajes de programaci n

  • Recursos de abstracción :

    • funciones: son abstracciones de las operaciones integradas (sumas, restas, multiplicaciones), rcua.

    • procedimientos: son abstracciones de las acciones integradas (asignación), ordena.

    • Definir TAD’s

Lenguajes de Programación


Lenguajes de programaci n

  • Verificación y validación :

    • la verificación en tiempo de ejecución; detecta errores antes de que se ejecuten

    • la verificación permite la validación del encapsulamiento.

Lenguajes de Programación


La estructura de un programa

La estructura de un programa

  • Existe más de una forma para solucionar un programa de aquí que exista más de una forma para estructurar un programa.

  • Una forma de estructurar es a través del refinamiento de sucesivo: descomponer problemas en subproblemas más simples que se puedan resolver de una manera relativamente independiente.

Lenguajes de Programación


Lenguajes de programaci n

  • El diseño de una descomposición apropiada es la parte más difícil de ésta técnica; debido a que la descomposición no es obvia en un principio.

  • Entran en juego el paso de parámetros

Lenguajes de Programación


Estructura sint ctica

Estructura sintáctica

  • La sintaxis de un lenguaje especifica cómo están constituidos los programas en dicho lenguaje.

  • La estructura sintáctica es la estructura impuesta por la sintaxis del lenguaje. Constituye la herramienta primaria para trabajar con el lenguaje.

Lenguajes de Programación


Lenguajes de programaci n

  • La sintaxis de un lenguaje de programación se especifica usando alguna variante de la notación conocida como gramática independiente del contexto.

  • BNF (Backus-Naur Form) o BNFE (extendida)

Lenguajes de Programación


Lenguajes de programaci n

  • <número real> ::= <secuencia-dígitos>. <secuencia-dígitos>

  • <secuencia-dígitos> ::= <dígito> | <dígito> <secuencia-dígitos>

  • <dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Lenguajes de Programación


Lenguajes de programaci n

  • < > ; constructores

  • ::= ; es

  • | ; o

Lenguajes de Programación


Definici n de gram ticas independientes del contexto

Definición de gramáticas independientes del contexto

  • Dado un conjunto de símbolos, una cadena sobre el conjunto, es una secuencia finita de cero o más símbolos del conjunto.

  • El número de símbolos en la secuencia se conoce como longitud de la cadena.

  • Los símbolos atómicos de un lenguaje son los componentes léxicos (tokens) o símbolos terminales.

Lenguajes de Programación


Lenguajes de programaci n

  • El símbolo no terminal que representa al constructor principal del lenguaje se llama símbolo no terminal inicial.

  • Los componentes de un constructor se identifican con reglas llamadas producciones.

  • Una producción consta de un lado izquierdo (símbolo no terminal) :: = lado derecho (secuencia de cero o más símbolos terminales o no terminales)

Lenguajes de Programación


Gram tica libre de contexto

Gramática libre de contexto

  • Un conjunto de símbolos terminales.

  • Un conjunto de símbolos no terminales.

  • Un conjunto de producciones, donde cada producción consta de un símbolo no terminal del lado izquierdo, un ::=, y del lado derecho, una cadena construida con los conjuntos de símbolos terminales y no terminales.

  • Un símbolo no terminal designado como símbolo no terminal inicial.

Lenguajes de Programación


Lenguajes de programaci n

  • En BNF, los símbolos no terminales se encuentran entre los símbolos < >.

  • Las gramáticas para expresiones aritméticas se basan en reglas como las siguientes:

    • la expresión es una secuencia de términos separados por + o -

    • el término es una secuencia de factores separados por *odiv

    • el factor es una expresión entre paréntesis, una variable o una constante.

Lenguajes de Programación


Lenguajes de programaci n

  • <expresión> ::= <expresión> + <término> | <expresión> - <término> | <término>

  • <término> ::= <término> * <factor> | <término> div <factor> | <factor>

  • <factor> ::= (<expresión>) | <variable> | <constante>

Lenguajes de Programación


Bnf extendida

BNF extendida

  • Los símbolos no terminales comienzan con letra mayúscula.

  • los terminales que consisten en símbolos como + y - se colocan entre comillas sencillas, y los símbolos terminales en negritas como div.

Lenguajes de Programación


Lenguajes de programaci n

  • Una barra vertical | representa una opción

  • los paréntesis ( y ), se usan para agrupar

  • las llaves { y }, representan cero o más repeticiones

  • los corchetes [ y ], representan una construcción opcional.

Lenguajes de Programación


La versi n en bnfe

La versión en BNFE

  • Expresión ::= Término {(‘+’|‘-’) Término }

  • Término ::= Factor { (‘*’ | div) Factor}

  • Factor ::= ‘(‘Expresión’)’ | Variable | Constante

Lenguajes de Programación


Esquemas de sintaxis

Esquemas de sintaxis

  • Otra forma de representar la sintaxis de un lenguaje.

    • existe un subesquema para cada símbolo no terminal

    • cada producción para un símbolo no terminal se transforma en una trayectoria a través del esquema.

    • sobre la trayectoria de una producción se encuentran los símbolos terminales y los no terminales en el lado derecho

    • los símbolos terminales son óvalos y los no terminales en rectángulos

    • las llaves que indican cero o más repeticiones, sugieren esquemas de sintaxis con ciclos.

Lenguajes de Programación


Lenguajes de programaci n

(

)

Expresión

Variable

Constante

Factor ::= (< Expresión>) | Variable | Constante

  • Factor

Lenguajes de Programación


Organizaci n de las descripciones de lenguajes

Organización de las descripciones de lenguajes

  • La semántica de los lenguajes especifica el significado del programa

  • sintaxis de fecha

    • <fecha> ::= DD/DD/DD donde D = <dígito>

      • 01/02/2004

      • en este caso el día no esta identificado por la sintáxis

        • en USA sería 2 de enero de 2004

        • en México seria el 1o. De febrero de 2004

Lenguajes de Programación


Lenguajes de programaci n

  • Es necesario contar con descripciones completas y claras de sintaxis y de la semántica de los lenguajes, con el fin de asegurar que todos las implementaciones acepten los mismos programas, para garantizar la transportabilidad de los programas.

Lenguajes de Programación


Programas tutelares

Programas tutelares

  • Una introducción tutelar es un viaje guiado a través de un lenguaje. Proporciona una idea de los principales constructores del lenguaje y la forma en que deben usarse.

  • Ejemplos, se aprende por imitación y adptación

Lenguajes de Programación


Manuales de referencia

Manuales de referencia

  • Describe la sintaxis y la semántica de un lenguaje; organizado tradicionalmente en la sintaxis del lenguaje.

  • Se aprende por explicaciones y ejemplos para las reglas sintácticas

Lenguajes de Programación


Definiciones formales

Definiciones formales

  • Es una descripción precisa de la sintaxis y la semántica de un lenguaje; se dirige a especialistas.

  • Se aprende a través de notaciones específicas. El esfuerzo y la capacitación para comprender estas notaciones, se compensan con la posibilidad de clarificar ciertos puntos finos.

Lenguajes de Programación


  • Login