Lenguajes de programaci n
Download
1 / 59

Lenguajes de programación - PowerPoint PPT Presentation


  • 227 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Lenguajes de programación' - wyanet


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



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



  • 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


Qu es la programaci n
Qué es la programación complejidad y

  • 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


  • 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


  • 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


  • 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 aproximadamente 7 cosas:

  • 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 aproximadamente 7 cosas:

  • 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


Unidad de Control aproximadamente 7 cosas:

Unidad Aritmética

Unidad de Entrada/Salida

Acumulador A

Registro R

Memoria para instrucciones y datos..M[i]

Lenguajes de Programación


  • Datos: aproximadamente 7 cosas: 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 aproximadamente 7 cosas:

  • 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


  • Flujo de control: aproximadamente 7 cosas: 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 aproximadamente 7 cosas:

  • 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 aproximadamente 7 cosas:

  • A := M [i];

  • M [i] := A;

  • R := M [i];

  • A := R;

Lenguajes de Programación


Flujo de control
Flujo de control aproximadamente 7 cosas:

  • 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 aproximadamente 7 cosas:

  • 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


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


programa fuente

TIEMPO DE TRADUCCION

compilador

código destino

TIEMPO DE EJECUCION

salida

entrada

Lenguajes de Programación


Problemas
Problemas conoce como

  • 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 conoce como

  • 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


  • Con respecto al lenguaje C: conoce como

    • 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 conoce como

  • 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


  • 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


  • 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


Cada capa amplía las posibilidades de la capa inferior la máquina en que se apoya; y un programa es una extensión del lenguaje de programación.

Programa

a < b

lenguaje de programación

<

máquina

Lenguajes de Programación


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

  • 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


  • Tipos de datos y operaciones la máquina en que se apoya; y un programa es una extensión del lenguaje de programación. : 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


  • Recursos de abstracción la máquina en que se apoya; y un programa es una extensión del lenguaje de programació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


  • Verificación y validación la máquina en que se apoya; y un programa es una extensión del lenguaje de programació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 la máquina en que se apoya; y un programa es una extensión del lenguaje de programación.

  • 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


Estructura sint ctica
Estructura sintáctica difícil de ésta técnica; debido a que la descomposición no es obvia en un principio.

  • 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


Lenguajes de Programación


  • < > ; <secuencia-dígitos>constructores

  • ::= ; es

  • | ; o

Lenguajes de Programación


Definici n de gram ticas independientes del contexto
Definición de gramáticas independientes del contexto <secuencia-dígitos>

  • 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


  • 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 principal del lenguaje se llama

  • 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


  • 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


Bnf extendida
BNF extendida <término> | <término>

  • 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


  • Una barra vertical | representa una opción <término> | <término>

  • 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 <término> | <término>

  • 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 <término> | <término>

  • 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


( <término> | <término>

)

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 <término> | <término>

  • 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


Programas tutelares
Programas tutelares 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.

  • 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 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.

  • 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 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.

  • 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


ad