lenguajes de inteligencia artificial...lenguajes de inteligencia artificial tema 1.-introducción al...

127
LENGUAJES LENGUAJES UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO 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

Upload: others

Post on 06-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

LENGUAJES LENGUAJES

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO

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

Page 2: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMAPROGRAMA

2

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

Page 3: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Primera parte: Scheme

Tema 1.- Introducción al Lenguaje Scheme

Tema 2.- Expresiones y Funciones

Tema 3.- Predicados y sentencias condicionales

LENGUAJES DE INTELIGENCIA LENGUAJES DE INTELIGENCIA ARTIFICIAL ARTIFICIAL PROGRAMAPROGRAMA

3

Tema 4.- Iteración y Recursión

Tema 5.- Tipos de Datos Compuestos

Tema 6.- Abstracción de Datos

Tema 7.- Lectura y Escritura

Page 4: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

Índice

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

4

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

2. Reseña Histórica de Scheme

Page 5: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

Índice

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

5

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

2. Reseña Histórica de Scheme

Page 6: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

6

Page 7: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

� Programación Declarativa (1 / 2)

� Objetivo: Descripción del Problema

“Qué” problema debe ser resuelto?

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

7

� Observación:

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

- Evita aspectos o características de implementación

Page 8: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

� Programación Declarativa (2 / 2)

� Características

� Expresividad

� Extensible: regla del 10% - 90%

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

8

� Extensible: regla del 10% - 90%

� Protección

� Elegancia Matemática

� Tipos:

� Programación Funcional o Aplicativa:

- Lisp, Scheme, Haskell, …

� Programación Lógica: Prolog

Page 9: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

9

� No existen efectos colaterales

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

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

� No hay instrucciones: programación sin asignaciones

� La Programación Funcional impura permite la

“sentencia de asignación”

Page 10: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

10

� Ejecución de una Función:

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

� Evalúa las expresiones

� Devuelve el resultado: valor calculado por la función

Page 11: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

11

Gestión de la memoria

� Gestión implícita de la memoria:

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

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

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

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

del Problema

Page 12: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

Índice

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

12

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

2. Reseña Histórica de Scheme

Page 13: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

13

� Origen de Scheme

Page 14: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

� Origen de Scheme

Page 15: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

15

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

(después de IPL)

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

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

� Scheme es un dialecto de LISP

Page 16: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

2. Reseña Histórica de Scheme

� LISP

� Características de la Programación Funcional

� Recursión

� Listas

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

16

� Gestión implícita de la memoria

� Programas interactivos e interpretados

� Programación Simbólica

� Reglas de ámbito Dinámico para identificadores no locales

Page 17: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

2. Reseña Histórica de Scheme

� LISP

� Contribuciones de LISP:

� Funciones “Built – in”

� Recolección de basura

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

17

� Lenguaje de Definición Formal:

— El propio lenguaje LISP

Page 18: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

18

� Problemas de Búsqueda

� Procesamiento del Lenguaje Natural

� Visión Artificial

� Robótica

� Sistemas de Representación del Conocimiento

� Sistemas Expertos

� Etc.

Page 19: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

19

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

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

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

- Máquina LISP

Page 20: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

20

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

- NIL (New implementation of LISP): MIT.

- PSL (Portable Standard LISP): Universidad de Utah

- Scheme: MIT.

- T (True): Universidad de Yale

- Common LISP

Page 21: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

21

� Origen de Scheme

Page 22: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

22

ser ejecutado independientemente.

Page 23: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

23

Código fuenteCódigo fuente �� CompiladorCompilador

Page 24: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

24

Errores de compilaciónErrores de compilación

��

Código fuenteCódigo fuente �� CompiladorCompilador

Page 25: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

25

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

Page 26: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

26

��

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

Page 27: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

27

Errores de Errores de EjecuciónEjecución

��

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

��

ResultadosResultados

Page 28: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

28

����

Datos de Datos de entradaentrada

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

ResultadosResultados

Page 29: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

29

Page 30: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

30

Page 31: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

31

� El código fuente es analizado para determinar la siguiente sentencia correcta que va a ser ejecutada.

Page 32: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

32

� El código fuente es analizado para determinar la siguiente sentencia correcta que va a ser ejecutada.

2. Generación

� La sentencia es transformada en Código ejecutable.

Page 33: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

33

� El código fuente es analizado para determinar la siguiente sentencia correcta que va a ser ejecutada.

2. Generación

� La sentencia es transformada en Código ejecutable.

3. Ejecución

� El código generado es ejecutado.

Page 34: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

34

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

Page 35: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

35

�� interpretacióninterpretaciónDatos de Datos de entradaentrada

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

Page 36: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

36

ResultadosResultados

��Errores de Errores de ejecuciónejecución

��

Datos de Datos de entradaentrada

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

Page 37: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

37

ResultadosResultados

����

Datos de Datos de entradaentrada

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

Page 38: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

� Compilación

- Independencia

- Necesidades de memoria

� Interpretación

- Dependencia

- Sin necesidades de memoria

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

38

memoria

- Eficiencia

- Global

- No interactividad

- Código cerradodurante la ejecución

memoria

- Menos eficiencia

- Local

- Interactividad

- Código abiertodurante la ejecución

Page 39: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

39

� Origen de Scheme

Page 40: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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.

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

40

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

� Dos tipos

� Ámbito Léxico o Estático- Con “estructura de bloques”: Pascal, Scheme

- Sin “estructura de bloques”: C, Fortran

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

APL

Page 41: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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…)

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

41

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

� Un procedimiento o función puede ser llamadopor - Sí mismo- Su padre (pero no por su abuelo, …)- Sus hijos, nietos, bisnietos, …- Sus hermanos y sus hijos, nietos, ...

Page 42: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

P

Declaración de procedimiento f

Declaración de procedimiento g

Declaración de procedimiento h

Declaración de procedimiento k

Ejemplo

de estructura

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

42

Declaración de procedimiento l

Declaración de procedimiento m

Declaración de procedimiento n

de estructura

de bloques

Page 43: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

P

f l

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

43

m ng h

k

Jerarquía de la estructura de bloques

Page 44: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f l

P

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

44

m ng h

k

Funciones que pueden ser llamadas por f

Page 45: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f l

P

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

45

m ng h

k

Funciones que pueden llamar a f

Page 46: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f l

P

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

46

m ng h

k

Funciones que pueden ser llamadas por h

Page 47: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f l

P

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

47

m ng h

k

Funciones que pueden llamar a h

Page 48: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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:

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

48

Sólo tienes que leer el programa

para determinar la declaración de un identificador

� Reglas del anidamiento más cercano

Page 49: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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.

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

49

procedimiento f.

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

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

Page 50: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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)

Ejemplo:

Ámbito léxico

con

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

50

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

con

“estructura de bloques”

Page 51: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

51

entonces no es local para todas las funciones

Page 52: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

main(){

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

/* Uso de x ���� x2 *//* Uso de y ���� y2 */

Ejemplo en C:

Ámbito léxico

Las variablesglobales no son recomendables

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

52

/* 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 */}

Ámbito léxico

sin

“estructura de bloques”

Page 53: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

53

Tienes que ejecutar el programa

para determinar la declaración de un identificador

� Reglas de la activación más cercana

Page 54: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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.

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

54

procedimiento f.

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

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

Page 55: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

55

identificador pueda estar asociado a declaraciones diferentes durante la ejecución del programa.

Page 56: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

ProgramaDeclaración de una variable x

Declaración de procedimiento fUso de x

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

Ejemplo:

Comparación

entre

los ámbitos

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

56

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

los ámbitos

léxico

y

dinámico

Page 57: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

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

57

f

f

h

Pila de Activación Árbol de Activación

Page 58: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

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

58

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 59: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

59

f

f

h

f

Programa

Pila de Activación Árbol de Activación

Page 60: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

60

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 61: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

61

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 62: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

62

f

f

h

g

f

Programa

Pila de Activación Árbol de Activación

Page 63: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

63

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 64: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

64

f

f

h

g

h

Programa

Pila de Activación Árbol de Activación

Page 65: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

f

Programa

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

65

f

f

h

g

h

f

Programa

Pila de ActivaciónÁrbol de Activación

Page 66: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

66

f

f

h

g

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 67: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

67

f

f

h

g

Programa

Pila de ActivaciónÁrbol de Activación

Page 68: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

68

f

f

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 69: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

69

f

f

h

Pila de ActivaciónÁrbol de Activación

Page 70: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f

gg

f

Programa Programa

Programa ProgramaPrograma

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

70

h

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

f

Programa

g

Programa

g

Programa

h

g

Programa

Page 71: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f

g

Programa

h

g

Programa

h

g

Programa

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

71

Programa

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

Page 72: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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)

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

72

Ámbito léxico Declaración de procedimiento hUso de xLlamada a f

Llamada a fLlamada a hSi condición = verdadero

entonces Llamada a gsi no Uso de x

fin siUso de xLlamada a fLlamada a g

Page 73: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

Ámbito léxico

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

73

f

f

h

Pila de Activación Árbol de Activación

Page 74: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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)

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

Ejecución con

Ámbito

74

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

Ámbito

léxico

Page 75: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Ámbito léxico

� Uso de x1 en Programa

Programa

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

75

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 76: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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)

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

Ejecución con

Ámbito

76

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

Ámbito

léxico

Page 77: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

77

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

Ámbito

léxico

Page 78: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Ámbito léxico� Uso de x1 en f

Programa

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

78

f

f

h

f

Programa

Pila de Activación Árbol de Activación

Page 79: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico

79

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 80: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

80

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

Ámbito

léxico

Page 81: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico

81

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 82: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

82

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

Ámbito

léxico

Page 83: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

83

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

Ámbito

léxico

Page 84: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico� Uso de x1 en f

84

f

f

h

g

f

Programa

Pila de Activación Árbol de Activación

Page 85: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico

85

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 86: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

86

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

Ámbito

léxico

Page 87: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

87

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

Ámbito

léxico

Page 88: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Ámbito léxico� Uso de x2 en h

Programa

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

88

f

f

h

g

h

Programa

Pila de Activación Árbol de Activación

Page 89: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

89

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

Ámbito

léxico

Page 90: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

90

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

Ámbito

léxico

Page 91: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

f

Programa

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

91

f

f

h

g

h

f

Programa

Pila de Activación Árbol de Activación

Page 92: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico

92

f

f

h

g

h

Programa

Pila de Activación Árbol de Activación

Page 93: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

93

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

Ámbito

léxico

Page 94: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico� Uso de x2 en g

94

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 95: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

95

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

Ámbito

léxico

Page 96: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito léxico

96

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 97: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

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

Ámbito léxico

97

f

f

h

Pila de Activación Árbol de Activación

Page 98: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

98

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

Ámbito

dinámico

Page 99: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

Ámbito dinámico

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

99

f

f

h

Pila de Activación Árbol de Activación

Page 100: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

100

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

Ámbito

dinámico

Page 101: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

� Uso de x1 en programa

101

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 102: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

102

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

Ámbito

dinámico

Page 103: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

103

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

Ámbito

dinámico

Page 104: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

� Uso de x1 de programaen f

104

f

f

h

f

Programa

Pila de Activación Árbol de Activación

Page 105: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

105

f

f

h

Programa

Pila de Activación Árbol de Activación

Page 106: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

106

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

Ámbito

dinámico

Page 107: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

107

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 108: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

108

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

Ámbito

dinámico

Page 109: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

Ejecución con

Ámbito

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

109

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

Ámbito

dinámico

Page 110: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

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

110

f

f

h

g

f

Programa

Pila de Activación Árbol de Activación

Page 111: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

111

f

f

h

g

Programa

Pila de Activación Árbol de Activación

Page 112: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

112

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

Ámbito

dinámico

Page 113: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

113

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

Ámbito

dinámico

Page 114: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

� Uso de x2 de g en h

114

f

f

h

g

h

Programa

Pila de Activación Árbol de Activación

Page 115: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

115

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

Ámbito

dinámico

Page 116: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

116

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

Ámbito

dinámico

Page 117: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

f

Programa

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

Ámbito dinámico

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

117

f

f

h

g

h

f

Programa

Pila de ActivaciónÁrbol de Activación

Page 118: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

118

f

f

h

g

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 119: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

Ejecución con

Ámbito

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

119

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

Ámbito

dinámico

Page 120: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Ámbito dinámico

� Uso de x2 de g en g

Programa

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

120

f

f

h

g

Programa

Pila de ActivaciónÁrbol de Activación

Page 121: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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 h

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

Ejecución con

Ámbito

121

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

Ámbito dinámico

Page 122: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

f g

Programa

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

Ámbito dinámico

122

f

f

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 123: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

Programa

f g

Ámbito dinámico

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

123

f

f

h

Programa

Pila de ActivaciónÁrbol de Activación

Page 124: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

124

� Origen de Scheme

Page 125: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

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

125

� 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

Page 126: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

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

126

- y expresiones

Page 127: LENGUAJES DE INTELIGENCIA ARTIFICIAL...Lenguajes de Inteligencia Artificial Tema 1.-Introducción al Lenguaje Scheme 15 LISP: LIS tProcessing(1956 –1958) Segundo lenguaje histórico

LENGUAJES LENGUAJES

UNIVERSIDAD DE CÓRDOBA

ESCUELA POLITÉCNICA SUPERIOR

DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO

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