43
1 LENGUAJES LENGUAJES DE INTELIGENCIA ARTIFICIAL DE INTELIGENCIA ARTIFICIAL INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SEGUNDO CURSO PRIMER CUATRIMESTRE Tema 1.- Introducción al Lenguaje Scheme UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO 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 LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMA PROGRAMA 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 LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMA PROGRAMA

LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

1

LENGUAJES LENGUAJES

DE INTELIGENCIA ARTIFICIALDE INTELIGENCIA ARTIFICIALINGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN

INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

SEGUNDO CURSO

PRIMER CUATRIMESTRE

Tema 1.- Introducción al Lenguaje Scheme

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO

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

LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMAPROGRAMA

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

LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMAPROGRAMA

Page 2: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

2

4

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Índice

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

2. Reseña Histórica de Scheme

5

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Índice

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

2. Reseña Histórica de Scheme

6

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

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 3: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

3

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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”

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 4: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

4

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

12

Lenguajes de Inteligencia Artificial 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: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

5

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 6: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

6

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 7: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

7

19

2. Reseña Histórica de Scheme

� LISP

� Dialectos (1 /2)

� Mac LISP (Man and computer or Machine – aidedcognition): 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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

20

2. Reseña Histórica de Scheme

� LISP

� Dialectos (2 / 2)

� Mac LISP (Man and computer or Machine – aidedcognition): 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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 8: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

8

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

23

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Compilación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Código fuenteCódigo fuente �� CompiladorCompilador

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Código fuenteCódigo fuente �� CompiladorCompilador

Page 9: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

9

25

�� Código ejecutableCódigo ejecutable

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Compilación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Código fuenteCódigo fuente �� CompiladorCompilador

26

��

Datos de Datos de entradaentrada

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Compilación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

��

Datos de Datos de entradaentrada

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

��

ResultadosResultados

Page 10: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

10

28

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Compilación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

����

Datos de Datos de entradaentrada

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

ResultadosResultados

29

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Interpretación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 11: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

11

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 12: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

12

34

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Interpretación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

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 Datos de entradaentrada

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

��

Datos de Datos de entradaentrada

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

Page 13: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

13

37

2. Reseña Histórica de Scheme

� Comparación entre Compilación e Interpretación

� Interpretación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

ResultadosResultados

����

Datos de Datos de entradaentrada

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

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 14: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

14

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 15: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

15

43

P

f l

m ng h

k

Jerarquía de la estructura de bloques

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

44

f l

m ng h

k

Funciones que pueden ser llamadas por f

P

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

45

f l

m ng h

k

Funciones que pueden llamar a f

P

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 16: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

16

46

f l

m ng h

k

P

Funciones que pueden ser llamadas por h

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

47

f l

m ng h

k

P

Funciones que pueden llamar a h

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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:

Sólo tienes que leer el programa

para determinar la declaración de un identificador

� Reglas del anidamiento más cercano

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 17: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

17

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

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

50

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”

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

51

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 18: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

18

52

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

53

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

� Reglas de la activación más cercana

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

� 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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 19: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

19

55

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.

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

56

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

57

Programa

f g

f

f

h

Pila de Activación Árbol de Activación

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 20: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

20

58

Programa

f g

f

f

h

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

59

f g

f

f

h

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

60

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Page 21: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

21

61

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

62

f g

f

f

h

g

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

63

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Page 22: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

22

64

f g

f

f

h

g

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

65

f g

f

f

h

g

h

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

66

f g

f

f

h

g

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Page 23: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

23

67

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

68

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

69

f g

f

f

h

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Page 24: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

24

70

f

gg

f

h

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

Programa

f

Programa

Programa ProgramaPrograma

g

Programa

g

Programa

h

g

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

71

f

g

Programa

h

g

Programa

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

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

72

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 25: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

25

73

Programa

f g

f

f

h

Ámbito léxico

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

74

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

75

f g

f

f

h

Ámbito léxico

� Uso de x1 en Programa

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Page 26: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

26

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

77

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

78

f g

f

f

h

f

Ámbito léxico� Uso de x1 en f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Page 27: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

27

79

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

80

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

81

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

Page 28: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

28

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

83

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

84

f g

f

f

h

g

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico� Uso de x1 en f

Page 29: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

29

85

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

86

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

87

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

Page 30: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

30

88

f g

f

f

h

g

h

Ámbito léxico� Uso de x2 en h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

90

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

Page 31: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

31

91

f g

f

f

h

g

h

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

92

f g

f

f

h

g

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

93

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

Page 32: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

32

94

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico� Uso de x2 en g

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

léxico

96

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

Page 33: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

33

97

Programa

f g

f

f

h

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito léxico

98

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

99

Programa

f g

f

f

h

Ámbito dinámico

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Page 34: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

34

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

101

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

� Uso de x1 en programa

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

Page 35: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

35

103

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

104

f g

f

f

h

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

� Uso de x1 de programaen f

105

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

Page 36: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

36

106

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

107

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

Page 37: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

37

109

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

110

f g

f

f

h

g

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

� Observación: uso de x2 de g en f

111

f g

f

f

h

g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

Page 38: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

38

112

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

113

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

114

f g

f

f

h

g

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de Activación Árbol de Activación

Ámbito dinámico

� Uso de x2 de g en h

Page 39: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

39

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

116

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito

dinámico

117

f g

f

f

h

g

h

f

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

� Observación: uso de x2 de g en f

Page 40: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

40

118

f g

f

f

h

g

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

119

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

120

f g

f

f

h

g

Ámbito dinámico

� Uso de x2 de g en g

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Page 41: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

41

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Ejecución con

Ámbito dinámico

122

f g

f

f

h

Programa

Programa

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Ámbito dinámico

123

Programa

f g

f

f

h

Programa

Ámbito dinámico

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Pila de ActivaciónÁrbol de Activación

Page 42: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

42

124

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

125

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 LanguageScheme

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

126

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

Lenguajes de Inteligencia Artificial Tema 1.- Introducción al Lenguaje Scheme

Page 43: LENGUAJES DE INTELIGENCIA ARTIFICIAL · 2019. 7. 18. · Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 18 2. Reseña Histórica de Scheme LISP Aplicaciones:

43

LENGUAJES LENGUAJES

DE INTELIGENCIA ARTIFICIALDE INTELIGENCIA ARTIFICIALINGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN

INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

SEGUNDO CURSO

PRIMER CUATRIMESTRE

Tema 1.- Introducción al Lenguaje Scheme

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO