La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Conceptos fundamentales

Presentaciones similares


Presentación del tema: "Conceptos fundamentales"— Transcripción de la presentación:

1 Conceptos fundamentales
Historia y Conceptos fundamentales Lenguajes de programación Aurelio Sanabria Alajuela

2 Lenguajes de programación
Producto de diseño Es universal Implementable Posee Sintaxis, semántica y pragmática Abstracción

3 Historia

4

5

6 “Birth of the Punch Card Technology”

7 Historia 50s ~ 60s Ensamblador: 1:1 con instrucciones del procesador
FORTRAN: introduce expresiones simbólicas, arreglos y procedimientos con parámetros. COBOL: orientado a negocios, clientes utilizando las computadoras para procesar datos de negocios no se sentían a gusto con la notación matemática, introduce el concepto de tipo de datos. ALGOL60: Introduce el concepto de bloque y scope, soporte recursividad

8 Historia 60s ~ 70s PASCAL: portabilidad, conjunto enriquecido de tipos y estructuras de control, apogeo de programación estructurada. C: Unix, programación de sistemas. Prolog, LISP, Scheme, ML: descubrimiento de nuevos paradigmas más allá del imperativo.

9 Historia 70s ~ 80s C++, Objective-C, Ada: consolidación de principios fundamentales, orientación a objetos

10 Historia 90s ~ 00s Java: consolidación de OO en ingeniería de software
Perl, Ruby, Python, PHP, Javascript: programación web / scripting.

11 Historia 00s ~ Paradigma funcional recobra fuerza
Programación concurrente y distribuida Móviles Programación orientada a aspectos C#, Groovy, Scala, Clojure

12 Conceptos fundamentales

13 Lenguajes Estáticamente tipados
Cada variable y parámetro tiene un único tipo fijo que es escogido por el programador El tipo de las expresiones puede ser calculado durante la compilación Permite detectar muchos errores durante la compilación

14 Lenguajes Dinámicamente tipados
Solo los valores tienen tipos fijos Las variables y parámetros no tienen tipos fijos, toman el tipo de los valores que se les va asignando La revisión de tipos de las operaciones debe hacerse justo antes de ejecutarlas Usado en lenguajes interpretados La revisión reduce la velocidad de ejecución Es más flexible

15 Variable Modelo de almacenamiento:
Formado por celdas o localizaciones. Cada celda puede estar en un estado allocated/unallocated. Cada celda allocated tiene un contenido que puede ser un valor o indefinido.

16 Variables Dinámicas Son creadas y borradas en cualquier momento.
creadas por una instrucción particular anónimas accedidas por medio de un puntero

17 Variables Dinámicas Puntero:
valor que permite acceder una variable; pueden asignarse, incorporarse en estructuras de datos, etc.

18 Problemas asociados con variables dinámicas
Variables inaccesibles: surgen cuando se pierden todas las referencias a una variable dinámica; la variable ocupa espacio pero no se puede accesar; new(p); la primera variable queda inaccesible

19 Problemas asociados con variables dinámicas
Referencias colgadas: ocurren cuando se acceden variables dinámicas cuya vida ya expiró; suelen darse al tener referencias duplicadas y se usa una de ellas para destruir la variable pero a se usa la referencia copiada para continuar accediéndola.

20 Alcance Porción del texto del programa sobre la cual una declaración tiene efecto. Estructura de bloques: Un bloque es una frase del programa que delimita el alcance de cualquier declaración que contenga Monolítica (antiguo COBOL) Plana (Fortran) Anidada (Algol-like)

21 Paso de Parámetros Permite la comunicación de datos entre unidades de un programa La convención escogida afecta la semántica del lenguaje

22 Paso de Parámetros

23 Paso por referencia La unidad que llama pasa a la unidad llamada la dirección del parámetro real Una referencia al parámetro formal correspondiente es tratada como referencia a la localización cuya dirección fue pasada Si el parámetro real es una expresión que no es variable, se calcula su valor y se pasa una referencia a la posición temporal que almacena el resultado.

24 Paso por copia Los parámetros formales no comparten referencias con los parámetros reales Los parámetros formales son variables locales cuyos valores son inicializados con los valores de los parámetros reales. Las técnicas se pueden clasificar en tres grupos de acuerdo con la forma en que estas variables locales son inicializadas: call-by-value, call-by-result y call-by- value-result.

25 Paso por copia call-by-value
Al ser invocado el subprograma, se evalúan los parámetros reales y se inicializan las variables locales No permite el flujo de datos de vuelta al subprograma que llama

26 Paso por copia call-by-result
Al finalizar el subprograma llamado, los valores de las variables locales son copiados a los parámetros reales No usa los valores iniciales de los parámetros reales

27 Paso por copia call-by-value-result
Se comporta como call-by-value al ser invocado el subprograma y como call-by-result. cuando finaliza dicho subprograma Esto es, se inicializan las variables locales al invocar el subprograma, y su valor se copia a los parámetros reales al terminar

28 Principios de diseño

29 Principios de diseño Facilidad de escritura

30 Principios de diseño Facilidad de escritura

31 Principios de diseño Legibilidad

32 Principios de diseño Legibilidad

33 Principios de diseño Confiabilidad

34 Principios de diseño Confiabilidad

35 Principios de diseño Mantenibilidad

36 Principios de diseño Mantenibilidad

37 Principios de diseño “How did perl gain a reputation for being a write-only language?” did_perl_gain_a_reputation_for_being_a/

38 Principios de diseño “How to write unmaintanable C code”

39 Las presentaciones para el curso “IC-4700: Lenguajes de programación” por Aurelio Sanabria se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa Rica. *La licencia de la presentación no cubre las imágenes utilizadas*


Descargar ppt "Conceptos fundamentales"

Presentaciones similares


Anuncios Google