UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7....

129
PROGRAMACIÓN DECLARATIVA PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER CUATRIMESTRE Tema 1.- Introducción al Lenguaje Scheme UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO

Transcript of UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7....

Page 1: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

PROGRAMACIÓN DECLARATIVAPROGRAMACIÓN DECLARATIVAINGENIERÍA INFORMÁTICA

ESPECIALIDAD DE COMPUTACIÓN

CUARTO CURSO

PRIMER CUATRIMESTRE

Tema 1.- Introducción al Lenguaje Scheme

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO

Page 2: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

2

Primera parte:

Scheme

Tema 1.- Introducción al Lenguaje Scheme

Tema 2.- Expresiones y Funciones

Tema 3.- Predicados y sentencias condicionales

Tema 4.- Iteración y Recursión

Tema 5.- Tipos de Datos Compuestos

Tema 6.- Abstracción de Datos

Tema 7.- Lectura y Escritura

Tema 8.- Introducción al Lenguaje Prolog

Tema 9.- Elementos Básicos de Prolog

Tema 10.- Listas

Tema 11.- Reevaluación y el “corte”

Tema 12.- Entrada y Salida

Segunda parte: Prolog

PROGRAMACIÓN DECLARATIVA PROGRAMACIÓN DECLARATIVA PROGRAMAPROGRAMA

Page 3: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

3

Primera parte: Scheme

Tema 1.- Introducción al Lenguaje Scheme

Tema 2.- Expresiones y Funciones

Tema 3.- Predicados y sentencias condicionales

Tema 4.- Iteración y Recursión

Tema 5.- Tipos de Datos Compuestos

Tema 6.- Abstracción de Datos

Tema 7.- Lectura y Escritura

PROGRAMACIÓN DECLARATIVA PROGRAMACIÓN DECLARATIVA PROGRAMAPROGRAMA

Page 4: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

4

Programación Declarativa Tema 1.- Introducción al Lenguaje Scheme

Índice

1. Características Fundamentales de la Programación Funcional

2. Reseña Histórica de Scheme

Page 5: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

5

Índice

1. Características Fundamentales de la Programación Funcional

2. Reseña Histórica de Scheme

Programación Declarativa Tema 1.- Introducción al Lenguaje Scheme

Page 6: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

6

1. Características Fundamentales de la Programación Funcional

La Programación Funcional es un subtipo de la Programación Declarativa

Page 7: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

7

1. Características Fundamentales de la Programación Funcional

Programación Declarativa (1 / 2)

Objetivo: Descripción del Problema

“Qué” problema debe ser resuelto? Observación:

- No importa “cómo” es resuelto el problema

- Evita aspectos o características de implementación

Page 8: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

8

1. Características Fundamentales de la Programación Funcional

Programación Declarativa (2 / 2)

Características Expresividad

Extensible: regla del 10% - 90%

Protección

Elegancia Matemática

Tipos: Programación Funcional o Aplicativa:

- Lisp, Scheme, Haskell, …

Programación Lógica: Prolog

Page 9: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

9

1. Características Fundamentales de la Programación Funcional

Principio de la Programación Funcional “Pura”

“El valor de la expresión sólo depende del valor de sus subexpresiones, si las tiene”

No existen efectos colaterales

El valor de “a + b” sólo depende de “a” y “b”.

El término función es usado en su sentido matemático

No hay instrucciones: programación sin asignaciones

La Programación Funcional impura permite la

“sentencia de asignación”

Page 10: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

10

1. Características Fundamentales de la Programación Funcional

Estructura de los programas en la Programación Funcional

El programa es una función compuesta de Funciones más simples

Ejecución de una Función:

Recibe los datos de entrada: argumentos o parámetros de las funciones

Evalúa las expresiones

Devuelve el resultado: valor calculado por la función

Page 11: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

11

1. Características Fundamentales de la Programación Funcional

Tipos de lenguajes funcionales La mayoría son lenguajes interpretados

Algunas versiones son lenguajes compilados

Gestión de la memoria Gestión implícita de la memoria:

La gestión de la memoria es una tarea del intérprete.

El programador no debe preocuparse por la gestión de la memoria.

Recolección de basura: tarea del intérprete.

En resumen: El programador sólo se debe de preocupar por la Descripción

del Problema

Page 12: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

12

Índice

1. Características Fundamentales de la Programación Funcional

2. Reseña Histórica de Scheme

Programación Declarativa Tema 1.- Introducción al Lenguaje Scheme

Page 13: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

13

2. Reseña Histórica de Scheme

LISP

Comparación entre Compilación e Interpretación

Comparación entre el ámbito léxico (o estático) y el dinámico

Origen de Scheme

Page 14: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

14

2. Reseña Histórica de Scheme

LISP

Comparación entre Compilación e Interpretación

Comparación entre el ámbito léxico (o estático) y el dinámico

Origen de Scheme

Page 15: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

15

2. Reseña Histórica de Scheme LISP John McCarthy (MIT)

El programa “Advice Taker” : Fundamentos teóricos: Lógica Matemática

Objetivo: Deducción e inferencias

LISP: LISt Processing (1956 – 1958) Segundo lenguaje histórico de Inteligencia Artificial

(después de IPL)

En la actualidad, segundo lenguaje histórico en uso (después de Fortran)

LISP está basado en el Lambda Calculus (Alonzo Church)

Scheme es un dialecto de LISP

Page 16: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

16

2. Reseña Histórica de Scheme

LISP

Características de la Programación Funcional

Recursión

Listas

Gestión implícita de la memoria

Programas interactivos e interpretados

Programación Simbólica

Reglas de ámbito Dinámico para identificadores no locales

Page 17: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

17

2. Reseña Histórica de Scheme

LISP

Contribuciones de LISP:

Funciones “Built – in”

Recolección de basura

Lenguaje de Definición Formal:

— El propio lenguaje LISP

Page 18: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

18

2. Reseña Histórica de Scheme

LISP

Aplicaciones: Programas de Inteligencia Artificial Verificación y prueba de Teoremas

Diferenciación e Integración Simbólica

Problemas de Búsqueda

Procesamiento del Lenguaje Natural

Visión Artificial

Robótica

Sistemas de Representación del Conocimiento

Sistemas Expertos

Etc.

Page 19: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

19

2. Reseña Histórica de Scheme

LISP

Dialectos (1 /2)

Mac LISP (Man and computer or Machine – aided cognition): Versión de la Costa Este

Inter LISP (Interactive LISP): Versión de la Costa Oeste

- Compañía de Bolt, Beranek y Newman (BBN)

- Centro de Investigación de Xerox en Palo Alto (Texas)

- Máquina LISP

Page 20: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

20

2. Reseña Histórica de Scheme

LISP Dialectos (2 / 2)

Mac LISP (Man and computer or Machine – aided cognition): East Coast Version

- C-LISP: Universidad de Massachusetts

- Franz LISP: Universidad de California (Berkeley). Versión compilada.

- NIL (New implementation of LISP): MIT.

- PSL (Portable Standard LISP): Universidad de Utah

- Scheme: MIT.

- T (True): Universidad de Yale

- Common LISP

Page 21: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

21

2. Reseña Histórica de Scheme

LISP

Comparación entre Compilación e Interpretación

Comparación entre el ámbito léxico (o estático) y el dinámico

Origen de Scheme

Page 22: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

22

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación:

El código fuente (alto nivel) es transformadoen código ejecutable (bajo nivel), que puede ser ejecutado independientemente.

Page 23: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

23

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Código fuenteCódigo fuente CompiladorCompilador

Page 24: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

24

Errores de compilaciónErrores de compilación

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Código fuenteCódigo fuente CompiladorCompilador

Page 25: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

25

Código ejecutableCódigo ejecutable

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Código fuenteCódigo fuente CompiladorCompilador

Page 26: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

26

Datos de entradaDatos de entrada

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Código ejecutableCódigo ejecutableCódigo fuenteCódigo fuente CompiladorCompilador

Page 27: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

27

Errores de Errores de EjecuciónEjecución

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Datos de entradaDatos de entrada

Código ejecutableCódigo ejecutableCódigo fuenteCódigo fuente CompiladorCompilador

ResultadosResultados

Page 28: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

28

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Compilación

Código ejecutableCódigo ejecutableCódigo fuenteCódigo fuente CompiladorCompilador

ResultadosResultados

Datos de entradaDatos de entrada

Page 29: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

29

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación

Page 30: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

30

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación o simulación: consiste en un ciclo de tres fases

Page 31: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

31

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación o simulación: consiste en un ciclo de tres fase

1. Análisis El código fuente es analizado para determinar la

siguiente sentencia correcta que va a ser ejecutada.

Page 32: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

32

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación o simulación: consiste en un ciclo de tres fase

1. Análisis El código fuente es analizado para determinar la

siguiente sentencia correcta que va a ser ejecutada.

2. Generación La sentencia es transformada en Código

ejecutable.

Page 33: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

33

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación o simulación: consiste en un ciclo de tres fase

1. Análisis El código fuente es analizado para determinar la

siguiente sentencia correcta que va a ser ejecutada.

2. Generación La sentencia es transformada en Código

ejecutable.

3. Ejecución El código generado es ejecutado.

Page 34: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

34

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación

Código fuenteCódigo fuente IntérpreteIntérprete

Page 35: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

35

Errores de Errores de interpretacióninterpretación

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación

Datos de entradaDatos de entrada

Código fuenteCódigo fuente IntérpreteIntérprete

Page 36: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

36

ResultadosResultados

Errores de Errores de ejecuciónejecución

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación

Datos de entradaDatos de entrada

Código fuenteCódigo fuente IntérpreteIntérprete

Page 37: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

37

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Interpretación

ResultadosResultados

Datos de entradaDatos de entrada

Código fuenteCódigo fuente IntérpreteIntérprete

Page 38: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

38

Compilación

- Independencia

- Necesidades de memoria

- Eficiencia

- Global

- No interactividad

- Código cerradodurante la ejecución

Interpretación

- Dependencia

- Sin necesidades de memoria

- Menos eficiencia

- Local

- Interactividad

- Código abiertodurante la ejecución

2. Reseña Histórica de Scheme

Comparación entre Compilación e Interpretación

Page 39: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

39

2. Reseña Histórica de Scheme

LISP

Comparación entre Compilación e Interpretación

Comparación entre el ámbito léxico (o estático) y el dinámico

Origen de Scheme

Page 40: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

40

2. Reseña Histórica de Scheme Comparación entre el ámbito léxico (o estático) y el

dinámico Las reglas de ámbito determinan la declaración de

identificadores no locales Identificadores no locales:

Variables, Funciones o Procedimientos que son usados en otra función o procedimiento donde no han sido declarados.

Dos tipos Ámbito Léxico o Estático

- Con “estructura de bloques”: Pascal, Scheme- Sin “estructura de bloques”: C, Fortran

Ámbito Dinámico- Siempre con “estructura de bloques”: Lisp, SNOBOL,

APL

Page 41: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

41

2. Reseña Histórica de Scheme Comparación entre el ámbito léxico (o estático) y el

dinámico Estructura de bloques Un procedimiento o función puede llamar a

- Sí mismo- Sus hijos (pero no a sus nietos…)- Sus hermanos (pero no a sus sobrinos)- Su padre, abuelo, bisabuelo, …- Los hermanos de su padres, abuelo, …

Un procedimiento o función puede ser llamadopor

- Sí mismo- Su padre (pero no por su abuelo, …)- Sus hijos, nietos, bisnietos, …- Sus hermanos y sus hijos, nietos, ...

Page 42: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

42

P

Declaración de procedimiento f

Declaración de procedimiento g

Declaración de procedimiento h

Declaración de procedimiento k

Declaración de procedimiento l

Declaración de procedimiento m

Declaración de procedimiento n

Ejemplo

de estructura

de bloques

Page 43: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

43

P

f l

m ng h

k

Jerarquía de la estructura de bloques

Page 44: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

44

f l

m ng h

k

Funciones que pueden ser llamadas por f

P

Page 45: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

45

f l

m ng h

k

Funciones que pueden llamar a f

P

Page 46: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

46

f l

m ng h

k

P

Funciones que pueden ser llamadas por h

Page 47: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

47

f l

m ng h

k

P

Funciones que pueden llamar a h

Page 48: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

48

2. Reseña Histórica de Scheme

Comparación entre el ámbito léxico (o estático) y el dinámico Ámbito léxico o estático

La declaración de un identificador no local depende del contexto léxico más cercano

Reglas del anidamiento más cercano

Page 49: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

49

2. Reseña Histórica de Scheme

Comparación entre el ámbito léxico (o estático) y el dinámico Ámbito léxico o estático

La declaración de un identificador no local depende del contexto léxico más cercano:

Sólo tienes que leer el programa

para determinar la declaración de un identificador

Page 50: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

50

2. Reseña Histórica de Scheme

Comparación entre el ámbito léxico (o estático) y el dinámico Ámbito léxico o estático Reglas del anidamiento más cercano

- El ámbito de un procedimiento (*) f incluye al procedimiento f.

- Si un identificador no local x es usado en f entonces la declaración de x debe ser encontrada en procedimiento más cercano gque incluya a f

- Observación (*) : procedimiento, función o bloque.

Page 51: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

51

Declaración de procedimiento hDeclaración de una variable x (x1)Declaración de una variable y (y1)Declaración de una variable z (z1)

Declaración de procedimiento gDeclaración de una variable x (x2) Declaración de una variable y (y2)

Declaración de procedimiento fDeclaración de una variable x (x3)

Uso de x ( x3)Uso de y ( y2)Uso de z ( z1)

Uso de x ( x2)Uso de y ( y2)Uso de z ( z1)Llamada a f

Uso de x ( x1)Uso de y ( y1)Uso de z ( z1)Llamada a g

Ejemplo:

Ámbito léxico

con

“estructura de bloques”

Page 52: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

52

2. Reseña Histórica de Scheme

Comparación entre el ámbito léxico (o estático) y el dinámico Ámbito léxico o estático Sin estructura de bloques

- Si x no es local para una función específicaentonces no es local para todas las funciones

Page 53: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

53

int x; /* x1 */int y; /* y1 */int z; /* z1 */

main(){

int x; /* x2 */int y; /* y2 */

/* Uso de x x2 *//* Uso de y y2 *//* Uso de z z1 *//* Llamada a f */f ();

}

f(){int x; /* x3 *//* Uso de x x3 *//* Uso de y y1 *//* Uso de z z1 */}

Ejemplo en C:

Ámbito léxico

sin

“estructura de bloques”

Las variablesglobales no son recomendables

Page 54: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

54

2. Reseña Histórica de Scheme Comparación entre el ámbito léxico (o estático) y el

dinámico Ámbito dinámico

La declaración de un identificador depende de la ejecución del programa

Reglas de la activación más cercana

Page 55: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

55

2. Reseña Histórica de Scheme Comparación entre el ámbito léxico (o estático) y el

dinámico Ámbito dinámico

La declaración de un identificador depende de la ejecución del programa

Tienes que ejecutar el programa

para determinar la declaración de un identificador

Page 56: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

56

2. Reseña Histórica de Scheme Comparación entre el ámbito léxico (o estático) y el

dinámico Ámbito dinámico Reglas de la activación más cercana

- El ámbito de un procedimiento (*) f incluye al procedimiento f.

- Si un identificador no local x es usado en la activación de f entonces la declaración de xdebe ser encontrada en el procedimiento activo más cercano g con una declaración de x

- Observación (*) : procedimiento, función o bloque

Page 57: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

57

2. Reseña Histórica de Scheme

Comparación entre el ámbito léxico (o estático) y el dinámico

Observación:

El Ámbito dinámico permite que un identificador pueda estar asociado a declaraciones diferentes durante la ejecución del programa.

Page 58: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

58

ProgramaDeclaración de una variable x

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejemplo:

Comparación

entre

los ámbitos

léxico

y

dinámico

Page 59: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

59

Programa

f g

f

f

h

Pila de Activación Árbol de Activación

Page 60: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

60

Programa

f g

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 61: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

61

f g

f

f

h

f

Programa

Programa

Pila de Activación Árbol de Activación

Page 62: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

62

f g

f

f

h

Programa

Programa

Pila de Activación Árbol de Activación

Page 63: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

63

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Page 64: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

64

f g

f

f

h

g

f

Programa

Programa

Pila de Activación Árbol de Activación

Page 65: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

65

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Page 66: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

66

f g

f

f

h

g

h

Programa

Programa

Pila de Activación Árbol de Activación

Page 67: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

67

f g

f

f

h

g

h

f

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Page 68: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

68

f g

f

f

h

g

h

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Page 69: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

69

f g

f

f

h

g

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Page 70: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

70

f g

f

f

h

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Page 71: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

71

f g

f

f

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 72: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

72

f

gg

f

h

Cambios en la Pila de Activación (1 / 2)

Programa

f

Programa

Programa ProgramaPrograma

g

Programag

Programah

g

Programa

Page 73: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

73

f

g

Programa

h

g

Programa

h

g

Programa

Programa

Cambios en la Pila de Activación (2 / 2)

Page 74: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

74

Ejecución con

Ámbito léxico

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Page 75: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

75

Programa

f g

f

f

h

Ámbito léxico

Pila de Activación Árbol de Activación

Page 76: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

76

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 77: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

77

f g

f

f

h

Ámbito léxico Uso de x1 en Programa

Programa

Programa

Pila de Activación Árbol de Activación

Page 78: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

78

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 79: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

79

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 80: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

80

f g

f

f

h

f

Ámbito léxico Uso de x1 en f

Programa

Programa

Pila de Activación Árbol de Activación

Page 81: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

81

f g

f

f

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico

Page 82: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

82

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 83: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

83

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico

Page 84: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

84

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 85: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

85

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 86: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

86

f g

f

f

h

g

f

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico Uso de x1 en f

Page 87: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

87

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico

Page 88: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

88

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 89: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

89

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 90: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

90

f g

f

f

h

g

h

Ámbito léxico Uso de x2 en h

Programa

Programa

Pila de Activación Árbol de Activación

Page 91: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

91

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 92: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

92

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 93: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

93

f g

f

f

h

g

h

f

Programa

Programa

Pila de Activación Árbol de Activación

Page 94: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

94

f g

f

f

h

g

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico

Page 95: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

95

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 96: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

96

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico Uso de x2 en g

Page 97: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

97

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

léxico

Page 98: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

98

f g

f

f

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito léxico

Page 99: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

99

Programa

f g

f

f

h

Pila de Activación Árbol de Activación

Ámbito léxico

Page 100: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

100

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 101: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

101

Programa

f g

f

f

h

Ámbito dinámico

Pila de Activación Árbol de Activación

Page 102: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

102

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 103: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

103

f g

f

f

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Uso de x1 en programa

Page 104: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

104

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 105: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

105

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 106: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

106

f g

f

f

h

f

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Uso de x1 de programaen f

Page 107: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

107

f g

f

f

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Page 108: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

108

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 109: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

109

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Page 110: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

110

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 111: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

111

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 112: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

112

f g

f

f

h

g

f

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Observación: uso de x2 de g en f

Page 113: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

113

f g

f

f

h

g

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Page 114: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

114

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 115: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

115

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 116: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

116

f g

f

f

h

g

h

Programa

Programa

Pila de Activación Árbol de Activación

Ámbito dinámico

Uso de x2 de g en h

Page 117: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

117

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 118: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

118

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 119: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

119

f g

f

f

h

g

h

f

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

Observación: uso de x2 de g en f

Page 120: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

120

f g

f

f

h

g

h

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

Page 121: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

121

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito

dinámico

Page 122: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

122

f g

f

f

h

g

Ámbito dinámico

Uso de x2 de g en g

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Page 123: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

123

ProgramaDeclaración de una variable x (x1)

Declaración de procedimiento fUso de x

Declaración de procedimiento gDeclaración de una variable x (x2)

Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Ejecución con

Ámbito dinámico

Page 124: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

124

f g

f

f

h

Programa

Programa

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

Page 125: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

125

Programa

f g

f

f

h

Programa

Ámbito dinámico

Pila de ActivaciónÁrbol de Activación

Page 126: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

126

2. Reseña Histórica de Scheme

LISP

Comparación entre Compilación e Interpretación

Comparación entre el ámbito léxico (o estático) y el dinámico

Origen de Scheme

Page 127: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

127

2. Reseña Histórica de Scheme

Origen de Scheme

Gerald Jay Sussman (MIT) and Guy Lewis Steele Jr.

Pregunta:

Cómo sería LISP con reglas de Ámbito Léxico o Estático?

Respuesta: un nuevo lenguaje Scheme Implementación más eficiente de la recursión

Funciones de primera clase

Reglas semánticas rigurosas

Influencia en Common LISP: reglas de ámbito léxico

Revised 5 Report on the Algorithmic Language Scheme

Page 128: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

128

2. Reseña Histórica de Scheme

Origen de Scheme

Estructura de los programas de Scheme

Secuencia de

- definiciones de funciones y variables

- y expresiones

Page 129: UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE ... · 2019. 7. 18. · Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema

PROGRAMACIÓN DECLARATIVAPROGRAMACIÓN DECLARATIVAINGENIERÍA INFORMÁTICA

ESPECIALIDAD DE COMPUTACIÓN

CUARTO CURSO

PRIMER CUATRIMESTRE

Tema 1.- Introducción al Lenguaje Scheme

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO