PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme...
Transcript of PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme...
![Page 1: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/1.jpg)
PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA
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
![Page 2: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/2.jpg)
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 PROGRAMA
![Page 3: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/3.jpg)
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 PROGRAMA
![Page 4: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/4.jpg)
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: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/5.jpg)
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: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/6.jpg)
6
1. Características Fundamentales de la Programación
Funcional
• La Programación Funcional es un subtipo de la
Programación Declarativa
![Page 7: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/7.jpg)
7
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (1 / 7)
o 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: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/8.jpg)
8
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (2 / 7)
o Características
Expresividad
Extensible: regla del 10% - 90%
Protección
Elegancia Matemática
![Page 9: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/9.jpg)
9
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (3 / 7)
o Características
Expresividad
Muestra con claridad el significado de la
programación
Extensible: regla del 10% - 90%
Protección
Elegancia Matemática
![Page 10: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/10.jpg)
10
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (4 / 7)
o Características
Expresividad
Extensible: regla del 10% - 90%
Facilidad para ampliar el lenguaje.
El 10 % del lenguaje permite resolver el 90%
de los problemas.
Protección
Elegancia Matemática
![Page 11: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/11.jpg)
11
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (5 / 7)
o Características
Expresividad
Extensible: regla del 10% - 90%
Protección
El programador no tiene que preocuparse por
detalles internos de gestión de memoria.
Elegancia Matemática
![Page 12: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/12.jpg)
12
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (6 / 7)
Características
Expresividad
Extensible: regla del 10% - 90%
Protección
Elegancia Matemática
Precisión y sencillez
![Page 13: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/13.jpg)
13
1. Características Fundamentales de la Programación
Funcional
• Programación Declarativa (7 / 7)
o Tipos:
Programación Funcional o Aplicativa:
Lisp, Scheme, Haskell, …
Programación Lógica: Prolog
![Page 14: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/14.jpg)
14
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
o La Programación Funcional impura permite la
“sentencia de asignación”
![Page 15: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/15.jpg)
15
1. Características Fundamentales de la Programación
Funcional
• Estructura de los programas en la Programación
Funcional
o El programa es una función compuesta de
funciones más simples
o Ejecución de una Función:
1. Recibe los datos de entrada: argumentos o
parámetros de las funciones
2. Evalúa las expresiones
3. Devuelve el resultado: valor calculado por la
función
![Page 16: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/16.jpg)
16
1. Características Fundamentales de la Programación
Funcional
• Tipos de lenguajes funcionales
o La mayoría son lenguajes interpretados
o Algunas versiones son lenguajes compilados
• Gestión de la memoria
o 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.
o Recolección de basura: tarea del intérprete.
![Page 17: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/17.jpg)
17
1. Características Fundamentales de la Programación
Funcional
• En resumen:
o El programador sólo se debe de preocupar por la
Descripción del Problema
![Page 18: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/18.jpg)
18
Í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 19: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/19.jpg)
19
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 20: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/20.jpg)
20
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 21: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/21.jpg)
21
2. Reseña Histórica de Scheme
• LISP
o John McCarthy (MIT)
o El programa “Advice Taker” :
Fundamentos teóricos: Lógica Matemática
Objetivo: deducción e inferencias
o 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)
o Scheme es un dialecto de LISP
![Page 22: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/22.jpg)
22
2. Reseña Histórica de Scheme
• LISP
o 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 23: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/23.jpg)
23
2. Reseña Histórica de Scheme
• LISP
o Contribuciones de LISP:
Funciones “Built – in”
Recolección de basura
Lenguaje de Definición Formal:
El propio lenguaje LISP
![Page 24: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/24.jpg)
24
2. Reseña Histórica de Scheme
• LISP
o 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 25: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/25.jpg)
25
2. Reseña Histórica de Scheme
• LISP
o 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 26: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/26.jpg)
26
2. Reseña Histórica de Scheme
• LISP
o 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 27: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/27.jpg)
27
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 28: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/28.jpg)
28
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación:
El código fuente (alto nivel) es transformado
en código ejecutable (bajo nivel), que puede
ser ejecutado independientemente.
![Page 29: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/29.jpg)
29
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Código fuente Compilador
![Page 30: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/30.jpg)
30
Errores de compilación
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Código fuente Compilador
![Page 31: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/31.jpg)
31
Código ejecutable
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Código fuente Compilador
![Page 32: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/32.jpg)
32
Datos de entrada
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Código ejecutable Código fuente Compilador
![Page 33: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/33.jpg)
33
Errores de
Ejecución
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Datos de entrada
Código ejecutable Código fuente Compilador
Resultados
![Page 34: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/34.jpg)
34
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Compilación
Código ejecutable Código fuente Compilador
Resultados
Datos de entrada
![Page 35: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/35.jpg)
35
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación
![Page 36: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/36.jpg)
36
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación o simulación: consiste en un ciclo
de tres fases
![Page 37: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/37.jpg)
37
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación o simulación: consiste en un ciclo de
tres fases
1. Análisis
El código fuente es analizado para
determinar la siguiente sentencia
correcta que va a ser ejecutada.
![Page 38: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/38.jpg)
38
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación o simulación: consiste en un ciclo de
tres fases
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 39: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/39.jpg)
39
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación o simulación: consiste en un ciclo de
tres fases
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 40: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/40.jpg)
40
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación
Código fuente Intérprete
![Page 41: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/41.jpg)
41
Errores de
interpretación
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación
Datos de entrada
Código fuente Intérprete
![Page 42: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/42.jpg)
42
Resultados
Errores de
ejecución
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación
Datos de entrada
Código fuente Intérprete
![Page 43: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/43.jpg)
43
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
o Interpretación
Resultados
Datos de entrada
Código fuente Intérprete
![Page 44: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/44.jpg)
44
o Compilación
Independencia
Necesidades de
memoria
Eficiencia
Global
No interactividad
Código cerrado
durante la ejecución
o Interpretación
Dependencia
Sin necesidades de
memoria
Menos eficiencia
Local
Interactividad
Código abierto
durante la ejecución
2. Reseña Histórica de Scheme
• Comparación entre Compilación e Interpretación
![Page 45: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/45.jpg)
45
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 46: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/46.jpg)
46
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el
dinámico
o Las reglas de ámbito determinan la declaración de
identificadores no locales
o Identificadores no locales:
Variables, Funciones o Procedimientos que son
usados en otra función o procedimiento donde no
han sido declarados.
![Page 47: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/47.jpg)
47
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el
dinámico
o 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 48: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/48.jpg)
48
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o 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 llamado por
- Sí mismo
- Su padre (pero no por su abuelo, …)
- Sus hijos, nietos, bisnietos, …
- Sus hermanos y sus hijos, nietos, ...
![Page 49: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/49.jpg)
49
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 50: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/50.jpg)
50
P
f l
m n
g h
k
Jerarquía de la estructura de bloques
![Page 51: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/51.jpg)
51
f l
m n
g h
k
Funciones que pueden ser llamadas por f
P
![Page 52: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/52.jpg)
52
f l
m n
g h
k
Funciones que pueden llamar a f
P
![Page 53: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/53.jpg)
53
f l
m n
g h
k
P
Funciones que pueden ser llamadas por h
![Page 54: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/54.jpg)
54
f l
m n
g h
k
P
Funciones que pueden llamar a h
![Page 55: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/55.jpg)
55
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Á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 56: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/56.jpg)
56
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Ámbito léxico o estático
La declaración de un identificador no local depende del contexto léxico más cercano:
Sólo hay que leer el programa
para determinar la declaración de un identificador
![Page 57: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/57.jpg)
57
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Á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 g
que incluya a f
Observación (*) : procedimiento, función o
bloque.
![Page 58: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/58.jpg)
58
Declaración de procedimiento h Declaración de una variable x (x1) Declaración de una variable y (y1) Declaración de una variable z (z1) Declaración de procedimiento g Declaración de una variable x (x2) Declaración de una variable y (y2) Declaración de procedimiento f Declaració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 59: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/59.jpg)
59
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Ámbito léxico o estático
Sin estructura de bloques
Si x no es local para una función específica entonces no es local para todas las funciones
![Page 60: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/60.jpg)
60
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 variables
globales no son
recomendables
![Page 61: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/61.jpg)
61
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Á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 62: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/62.jpg)
62
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Á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 63: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/63.jpg)
63
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el dinámico
o Á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 x debe ser encontrada en el procedimiento activo más cercano g con una declaración de x
Observación (*): procedimiento, función o bloque
![Page 64: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/64.jpg)
64
2. Reseña Histórica de Scheme
• Comparación entre el ámbito léxico (o estático) y el
dinámico
o Observación:
El Ámbito dinámico permite que un
identificador pueda estar asociado a
declaraciones diferentes durante la ejecución
del programa.
![Page 65: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/65.jpg)
65
Programa
Declaración de una variable x
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
Ejemplo:
Comparación
entre
los ámbitos
léxico
y
dinámico
![Page 66: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/66.jpg)
66
Programa
f g
f
f
h
Pila de Activación Árbol de Activación
![Page 67: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/67.jpg)
67
Programa
f g
f
f
h
Programa
Pila de Activación Árbol de Activación
![Page 68: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/68.jpg)
68
f g
f
f
h
f
Programa
Programa
Pila de Activación Árbol de Activación
![Page 69: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/69.jpg)
69
f g
f
f
h
Programa
Programa
Pila de Activación Árbol de Activación
![Page 70: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/70.jpg)
70
f g
f
f
h
g
Programa
Programa
Pila de Activación Árbol de Activación
![Page 71: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/71.jpg)
71
f g
f
f
h
g
f
Programa
Programa
Pila de Activación Árbol de Activación
![Page 72: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/72.jpg)
72
f g
f
f
h
g
Programa
Programa
Pila de Activación Árbol de Activación
![Page 73: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/73.jpg)
73
f g
f
f
h
g
h
Programa
Programa
Pila de Activación Árbol de Activación
![Page 74: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/74.jpg)
74
f g
f
f
h
g
h
f
Programa
Programa
Pila de Activación Pila de Activación Árbol de Activación
![Page 75: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/75.jpg)
75
f g
f
f
h
g
h
Programa
Programa
Pila de Activación Árbol de Activación
![Page 76: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/76.jpg)
76
f g
f
f
h
g
Programa
Programa
Pila de Activación Árbol de Activación
![Page 77: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/77.jpg)
77
f g
f
f
h
Programa
Programa
Pila de Activación Árbol de Activación
![Page 78: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/78.jpg)
78
f g
f
f
h
Programa
Pila de Activación Árbol de Activación
![Page 79: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/79.jpg)
79
f
g g
f
h
Cambios en la Pila de Activación (1 / 2)
Programa
f
Programa
Programa Programa Programa
g
Programa
g
Programa
h
g
Programa
![Page 80: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/80.jpg)
80
f
g
Programa
h
g
Programa
h
g
Programa
Programa
Cambios en la Pila de Activación (2 / 2)
![Page 81: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/81.jpg)
81
Ejecución con
ámbito léxico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 82: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/82.jpg)
82
Programa
f g
f
f
h
Ámbito léxico
Pila de Activación Árbol de Activación
![Page 83: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/83.jpg)
83
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
Ejecución con
ámbito léxico
![Page 84: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/84.jpg)
84
f g
f
f
h
Ámbito léxico
Uso de x1 en Programa
Programa
Programa
Pila de Activación Árbol de Activación
![Page 85: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/85.jpg)
85
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
Ejecución con
ámbito léxico
![Page 86: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/86.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 86
Ejecución con
ámbito léxico
![Page 87: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/87.jpg)
87
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 88: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/88.jpg)
88
f g
f
f
h
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 89: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/89.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 89
Ejecución con
ámbito léxico
![Page 90: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/90.jpg)
90
f g
f
f
h
g
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 91: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/91.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 91
Ejecución con
ámbito léxico
![Page 92: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/92.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 92
Ejecución con
ámbito léxico
![Page 93: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/93.jpg)
93
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 94: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/94.jpg)
94
f g
f
f
h
g
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 95: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/95.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 95
Ejecución con
ámbito léxico
![Page 96: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/96.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 96
Ejecución con
ámbito léxico
![Page 97: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/97.jpg)
97
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 98: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/98.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 98
Ejecución con
ámbito léxico
![Page 99: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/99.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 99
Ejecución con
ámbito léxico
![Page 100: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/100.jpg)
100
f g
f
f
h
g
h
f
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 101: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/101.jpg)
101
f g
f
f
h
g
h
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 102: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/102.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 102
Ejecución con
ámbito léxico
![Page 103: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/103.jpg)
103
f g
f
f
h
g
Programa
Programa Ámbito léxico
Uso de x2 en g
Pila de Activación Árbol de Activación
![Page 104: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/104.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 104
Ejecución con
ámbito léxico
![Page 105: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/105.jpg)
105
f g
f
f
h
Programa
Programa Ámbito léxico
Pila de Activación Árbol de Activación
![Page 106: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/106.jpg)
106
Programa
f g
f
f
h
Ámbito léxico
Pila de Activación Árbol de Activación
![Page 107: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/107.jpg)
107
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 108: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/108.jpg)
108
Programa
f g
f
f
h
Ámbito dinámico
Pila de Activación Árbol de Activación
![Page 109: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/109.jpg)
109
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 110: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/110.jpg)
110
f g
f
f
h
Programa
Programa Ámbito dinámico
Uso de x1 en programa
Pila de Activación Árbol de Activación
![Page 111: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/111.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 111
Ejecución con
ámbito
dinámico
![Page 112: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/112.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 112
Ejecución con
ámbito
dinámico
![Page 113: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/113.jpg)
113
f g
f
f
h
f
Programa
Programa Ámbito dinámico
Uso de x1 de programa en f
Pila de Activación Árbol de Activación
![Page 114: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/114.jpg)
114
f g
f
f
h
Programa
Programa
Pila de Activación Árbol de Activación
Ámbito dinámico
![Page 115: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/115.jpg)
115
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 116: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/116.jpg)
116
f g
f
f
h
g
Programa
Programa
Pila de Activación Árbol de Activación
Ámbito dinámico
![Page 117: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/117.jpg)
117
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 118: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/118.jpg)
118
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 119: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/119.jpg)
119
f g
f
f
h
g
f
Programa
Programa Ámbito dinámico
Observación: uso de x2 de g en f
Pila de Activación Árbol de Activación
![Page 120: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/120.jpg)
120
f g
f
f
h
g
Programa
Programa
Pila de Activación Árbol de Activación
Ámbito dinámico
![Page 121: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/121.jpg)
121
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 122: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/122.jpg)
122
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 123: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/123.jpg)
123
f g
f
f
h
g
h
Programa
Programa Ámbito dinámico
Uso de x2 de g en h
Pila de Activación Árbol de Activación
![Page 124: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/124.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 124
Ejecución con
ámbito
dinámico
![Page 125: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/125.jpg)
125
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 126: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/126.jpg)
126
f g
f
f
h
g
h
f
Programa
Programa Ámbito dinámico
Observación: uso de x2 de g en f
Pila de Activación
Árbol de Activación
![Page 127: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/127.jpg)
127
f g
f
f
h
g
h
Programa
Programa
Pila de Activación
Ámbito dinámico
Árbol de Activación
![Page 128: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/128.jpg)
128
Ejecución con
ámbito
dinámico
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g
![Page 129: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/129.jpg)
129
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 130: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/130.jpg)
Programa
Declaración de una variable x (x1)
Declaración de procedimiento f
Uso de x
Declaración de procedimiento g
Declaración de una variable x (x2)
Declaración de procedimiento h
Uso de x
Llamada a f
Llamada a f
Llamada a h
Si condición = verdadero
entonces Llamada a g
si no Uso de x
fin si
Uso de x
Llamada a f
Llamada a g 130
Ejecución con
ámbito
dinámico
![Page 131: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/131.jpg)
131
f g
f
f
h
Programa
Programa
Pila de Activación
Ámbito dinámico
Árbol de Activación
![Page 132: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/132.jpg)
132
Programa
f g
f
f
h
Programa
Pila de Activación
Ámbito dinámico
Árbol de Activación
![Page 133: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/133.jpg)
133
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 134: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/134.jpg)
134
2. Reseña Histórica de Scheme
• Origen de Scheme
o Gerald Jay Sussman (MIT) and Guy Lewis Steele Jr.
o Pregunta:
¿Cómo sería LISP con reglas de Ámbito Léxico o Estático?
o Respuesta: un nuevo lenguaje Scheme
Implementación más eficiente de la recursión
Funciones de primera clase
Reglas semánticas rigurosas
o Influencia en Common LISP: reglas de ámbito léxico
o Revised 5 Report on the Algorithmic Language Scheme
![Page 135: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/135.jpg)
135
2. Reseña Histórica de Scheme
• Origen de Scheme
o Estructura de los programas de Scheme
Secuencia de
definiciones de funciones y variables
y expresiones
![Page 136: PROGRAMACIÓN DECLARATIVA - Universidad de Córdoba · Tema 1.- Introducción al Lenguaje Scheme Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema](https://reader030.fdocumento.com/reader030/viewer/2022041118/5f2f9fcc6ce27866a7524e9f/html5/thumbnails/136.jpg)
PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA
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