Tema 2. La Sintaxis. 1. El vocabulario de un programa PROLOG

Documentos relacionados
1. El vocabulario de un programa PROLOG. 1. El vocabulario de un programa PROLOG. Sintaxis: Conjunto de caracteres válidos v

1. El vocabulario de un programa PROLOG

TUTORIAL PROLOG. Lenguajes de programación Universidad Nacional de Colombia Santiago Carvajal Castañeda Mario Andrés Moreno Norato

5.3 Tipos de Datos en Prolog

5.3 Tipos de Datos en Prolog

5.3 Tipos de Datos en Prolog

Tema 2. Tipos predefinidos

Lección 2 Introducción al lenguaje C

Principios de Computadoras II

Aritmética y operadores (2011/2012)

Tema 2. Concepto de Algoritmo

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Tema II: Introducción al Lenguaje Funcional

Programación Exploratoria - Predicados Predefinidos en Prolog -

6. Operadores en PROLOG

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Expresiones y sentencias

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Programación estructurada (Tipos, operadores y expresiones)

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

Sintaxis de PSeInt Tutorial

Tema 1: Introducción a C

Tema 3.- Predicados y sentencias condicionales

Curso de Programación Avanzada en C

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

UNIDAD 2 Descripción de un programa

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

Operadores y Expresiones

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Expresiones Aritméticas, relacionales y lógicas. Prof. Hilda Contreras Programación 1

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

El lenguaje C. 1. Identificadores, constantes y variables

1.2 Uso del software como una calculadora. Iniciación a los operadores y almacenamiento de datos.

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

Elementos de un programa en C

Introducción a la Programación

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Introducción a Haskell. El lenguaje Haskell

Expresiones y sentencias

Tecnologías en la Educación Matemática

Tema 3. Patrones y Definiciones de Funciones

Inteligencia Artificial: Prolog

Programación - Algorítmica

Tema III Predicados Extralógicos de PROLOG

5. Entrada y Salida en PROLOG

El operador contenido ( ) permite acceder al contenido de

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

Tema#2. Tipos de Datos 10

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Curso de PHP. Tema 2: Lenguaje PHP básico

Introducción a Excel

Diagrama de una computadora. Unidad Central de procesamiento (CPU)

TEMA 3. OPERADORES Y EXPRESIONES.

Datos Elementales y formato de un programa en Java

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial

Unidad 1. Lógica de programación. Tema 2. Tipos básicos de datos y estructuras secuenciales

Predicados Básicos de Prolog TAII(I) - Curso

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 2

AMBIENTES DE COMPILACION

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

Conocimientos previos

Programación En Lenguaje C

Características de JavaScript

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

'type' <nombre conjunto> '=' 'SET OF' <tipo base>

Programación estructurada. Programación estructurada

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Un calculadora avanzada... y algo más!

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

n 6 Logro Conocimientos previos Tema: Datos y # Ficha de aprendizaje

Estos argumentos posicionales trabajan con todos los datos que hay en la dirección especificada hasta que se encuentran con una celda vacía

Práctica 2. TIPOS DE DATOS SIMPLES

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Elementos léxicos del lenguaje de programación C

PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Introducción a PROLOG

Lenguaje C, primer bloque

Tema 3. Patrones y Definiciones de Funciones

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

LENGUAJE. Tema 2 Elementos de un programa

26 de Octubre del 2013

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2 Elementos básicos en C

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Tipos de Datos Estructurados

FUNCIONES Y FÓRMULAS FUNCIONES

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Transcripción:

Tema 2. La Sintaxis 1. El vocabulario de un programa PROLOG 2. TérminosT 2.1. Constantes 2.2. Variables 2.3. Estructuras 3. Operadores 4. Igualdad y Desigualdad 5. Aritmética tica en los programas PROLOG

1. El vocabulario de un programa PROLOG Sintaxis: Conjunto de caracteres válidos v (m (máx. 128; ASCII 7 bits): Mayúsculas [A-Z] Minúsculas [a-z] Dígitos [0-9] Signos de puntuación: n: + - * / ^ < > ~ : ;. _? \ ( ) [ ] Se distinguen imprimibles de no imprimibles Un programa PROLOG es una sucesión n de términos: Constantes Variables Estructuras (functores( functores) 2

2. TérminosT 2.1. Constantes Expresan objetos : juan, maria, Hay dos clases de constantes: átomos y enteros Constantes átomo: Constituidos por letras y números n (y algunos signos) comienzan por minúscula pueden contener _ (subrayado) si van entre comillas simples ( ),( cualquier carácter cter Constituidos por signos sólo: s?- (asociado a una consulta) :- (asociado a una regla) 3

Ejemplos Constantes válidasv a vacio jorge-perez --> jorge_perez algo1234 Constantes no válidasv 2304algo jorge-perez Vacio _alfa Constantes entero: representan números n enteros y permiten realizar operaciones aritméticas ticas Generalmente sólo s se usarán n naturales (menos de 16 bits) 4

2. TérminosT 2.2. Variables Representan objetos no específicos (a los que aún n no sabemos cómo c nombrar). Comienzan por Mayúscula ó _ (subrayado) X Y Z Padre Madre Algo _alfa _ es una variable (anónima) nima) No vamos a usar su futuro valor?- le_gusta_a (_, juan). Permite asignaciones no coherentes dentro de una cláusula 5

2. TérminosT 2.3. Estructuras (Functor, Functores) Identifica un objeto compuesto (similar a un dato estructurado): colección n de objetos o componentes Los componentes pueden ser a su vez estructuras Permite tratar como un único objeto a una colección n de informaciones relacionadas También n permite nombrar de forma diferente varios objetos de un mismo tipo 6

2.3. Estructuras Misma sintaxis que la de los hechos: functor(comp#1 (comp#1, comp#2,...). En general, functor es un nombre que designa: un hecho, una relación, una función Internamente se guardan en forma arborescente. Ejemplo: fichas de libros de tu biblioteca tiene(belarmino,, libro). tiene(belarmino, hobbit). tiene(belarmino, el_senor_de_los_anillos). tiene(belarmino, yo_robot). tiene(belarmino, fundacion). 7

2.3. Estructuras (cont.( cont.) Frente a: tiene(belarmino, libro(hobbit, tolkien)). tiene(belarmino, libro(el_senor_de_los_anillos, tolkien)). tiene(belarmino, libro(yo_robot, asimov)). tiene(belarmino, libro(fundacion, asimov)). tiene(belarmino, libro(hobbit, autor(jrr, tolkien))). tiene(belarmino, libro(yo_robot, autor(isaac, asimov))). Ejercicio: : Crea un fichero PROLOG, mi_biblioteca.pl,, con una definición n de tus libros, diferenciados por géneros, g y después s realiza consultas concretas, con variables y con variables anónimas. nimas. Comenta cuál l sería a la pregunta original. 8

3. Operadores Algunas estructuras/functores se pueden escribir como operadores: x + y + z frente a +(z, +(x,y x,y)) Escribir un operador no implica evaluarlo.?- 4 = 2 + 2.?- 4 = +(2,2). Los operadores vendrán n especificados por: su posición n (infija( infija,, prefija o postfija), por su precedencia, y por la asociatividad (por la izquierda o por la derecha). 9

3. Operadores (cont.) Trataremos los operadores aritméticos ticos más m habituales: +, -,, *, y /. Los operadores aritméticos ticos serán n todos infijos. Las precedencias están n asociadas a clases de operadores y varían an según n el compilador (entre 1 y 255): los operadores * y / tendrán n mayor precedencia siempre que + y 10

3. Operadores (cont.) Los operadores aritméticos ticos serán n asociativos por la izquierda: debe tener a su izquierda operaciones de precedencia menor o igual; a la derecha tendrá operadores de precedencia mayor Ejemplos: 8/2/2 será 2 u 8. asociativo por la izquierda 8/2/2 = (8/2)/2 Importante: los operadores aritméticos ticos son como cualquier otra estructura: pero pueden evaluarse con is?- X is 2 + 2.?- X is +(2,2).?- 4 is +(2,2). 11

4. Igualdad y Desigualdad El predicado igualdad,, =, está predefinido:?- X = Y. PROLOG para satisfacer el objetivo comprueba si ambas coinciden. Asociado (internamente) a satisfacer: X = X. Reglas para decidir si X e Y son iguales : Si X no está instanciada e Y sí, s, entonces son iguales y X toma como valor el término t al que estuviese instanciado Y. Los enteros y los átomos siempre son iguales entre sí. s Dos estructuras son iguales si tienen el mismo functor y el mismo número n de argumentos, y cada uno de esos argumentos son iguales. 12

4. Igualdad y Desigualdad (cont.)?- mesa = mesa.?- silla = silla.?- mesa = silla.?- 2005 = 2004.?- tiene(belarmino,, X) = tiene(belarmino, libro(fundacion, asimov)).?- tiene(belarmino,, libro(_, X)) = tiene(belarmino, libro(yo_robot, author(isaac, asimov))). Si las 2 variables no están instanciadas,, se cumple la igualdad y pasan a ser variables compartidas.?- X = Y. (Cuando una de ellas quede instanciada,, fijará el valor de la otra.) 13

4. Igualdad y Desigualdad (cont.) Existe otro predicado predefinido: no es igual, \=?- X \= = Y. Se satisface is no se cumple el objetivo X = Y. Al igual que =, al estar predefinido no podemos modificarlos: queso = yogurt. mesa = silla. Ejercicio: Comprueba si se cumplen: libro(titulo,, autor) = libro(yo_robot, asimov). libro(titulo,, Autor) = libro(yo_robot, asimov). constante = constante. fun1(a, b) = fun1(a, B). fun1(a, b, c) = fun1(a, B). 14

5. Aritmética tica en los programas PROLOG Los programas PROLOG no están n pensados para requerir una gran manipulación n numérica Operadores comparación n (predefinidos): X =:= Y X \= = Y X < Y X > Y X >= Y X =< Y Operadores aritméticos: ticos: X + Y X Y X * Y X / Y X mod Y 15

5. Aritmética tica en los programas PROLOG (cont.) Los operadores aritméticos ticos pueden usarse para hacer cálculos c si se combinan con el operador is: operador infijo, el argumento a la derecha debe asociarse a un operador aritmético, tico, obliga a evaluar el argumento de la derecha y contrasta el resultado con el argumento a la izquierda: X is 2 + 2. resto is X mod Y. No todos los operadores pueden evaluarse como expresiones aritméticas. ticas. 16