3.6 Introducción a Maude

Tamaño: px
Comenzar la demostración a partir de la página:

Download "3.6 Introducción a Maude"

Transcripción

1 3-64 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. 3.6 Introducción a Maude Maude es un lenguaje que permite la ejecución simbólica de especificaciones algebraicas dadas mediante ecuaciones y pertenencias, es modular y admite la definición de módulos parametrizados así como su instanciación. A continuación veremos, de manera sucinta, sus características sintácticas Especificación de módulos La especificación de un módulo (funcional) en Maude tiene el aspecto siguiente: fmod <nombre del modulo> is <cuerpo del modulo> y en el cuerpo de un módulo pueden aparecer las siguientes declaraciones con los formatos que se enuncian en los ejemplos: Declaraciones de universos y de subuniversos (pueden repetirse): sort S. sorts S1 S2 S3 S4. subsort S1 < S2. subsorts S1 < S2 < S3. subsorts S1 < S2 S4 < S3. En el último caso, los universos S2 y S4 no están relacionados aunque ambos contienen a S1 y están contenidos en S3. Declaraciones de operaciones: op p : -> S1. op p : S1 S2 -> S3. ops p q : S1 S2 -> S3. Estas declaraciones pueden etiquetarse con [ctor] para indicar que se trata de una operación generadora del tipo del resultado. Las operaciones pueden declararse infijas mediante guiones de subrayado en los lugares donde deban aparecer los argumentos. Declaraciones de variables: 2 Para una descripción más completa de la sintaxis de Maude véase Maude: Specification and Programming in Rewriting Logic y A Maude Tutorial, ambos documentos disponibles en la dirección

2 3.6. INTRODUCCIÓN A MAUDE 3-65 var X : S. vars X Y : S. Declaraciones de axiomas: ecuaciones y pertenencias. Ambos tipos pueden aparecer condicionados, pero las condiciones se reducen siempre a un término b de tipo booleano obtenido a partir de expresiones construidas con las operaciones predefinidas _==_ y _=/=_ correspondientes al test de igualdad semántica y su fallo, y con _:_ o test de pertenencia, definidos para todos los universos. Declaraciones de ecuaciones: eq t1 = t2. ceq t1 = t2 if b. Declaraciones de pertenencias: mb t : S. cmb t : S if b. Declaraciones de importación de módulos (pueden repetirse): including <nombre de modulo>. protecting <nombre de modulo>. La primera indica una importación sin restricciones semánticas y se utiliza para especificaciones no acabadas en las que se pueden producir ampliaciones o reducciones de los conjuntos de valores. En cambio, la segunda indica que se va a respetar la especificación importada añadiendo, a lo más, alguna función nueva que no afecta a los conjuntos de valores establecidos. Las declaraciones de importación se escriben al principio del cuerpo del módulo, después aparecerán las declaraciones de universos y de subuniversos, las operaciones, las variables y los axiomas (aunque este orden puede alterarse). Todas las variables que se utilicen en los axiomas deben estar declaradas y en las expresiones puede utilizarse cualquier operación declarada en el módulo o importada de otro módulo Ejemplos Veamos cómo se escribirían en Maude los módulos correspondientes a algunas de las especificaciones que se han estudiado en los apartados anteriores. Un módulo para la especificación del universo de los booleanos quedaría:

3 3-66 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. fmod BOOL is sort Bool. ops true false : -> Bool [ctor]. op not_ : Bool -> Bool. ops _and or_ : Bool Bool -> Bool. var X : bool. eq not true = false. eq not false = true. eq X and true = X. eq X and false = false. eq X or true = true. eq X or false = X. Un módulo como éste (con algunas operaciones más) está predefinido en Maude y se importa de forma automática en cada módulo que se defina, por lo que los valores las operaciones lógicas siempre están disponibles sin que necesaria su importación explícita. El módulo para la especificación de números naturales que aparece en el Ejemplo 3.7, con algunas operaciones de ejemplos posteriores, queda fmod NAT is sorts NatNz Nat Nat?. subsorts NatNz < Nat < Nat?. op z : -> Nat [ctor]. op s_ : Nat -> NatNz [ctor]. ops _+ *_ : Nat Nat -> Nat. op _-_ : Nat Nat -> Nat?. op _/_ : Nat NatNz -> Nat. op _mod_ : Nat NatNz -> Nat. op mcd : Nat Nat -> Nat?. op raiz : Nat -> Nat. op rz : Nat Nat -> Nat?. *** op. auxiliar *** op _<=_ : Nat Nat -> Bool. op _<_ : Nat Nat -> Bool. vars M N : Nat. var P : NatNz.

4 3.6. INTRODUCCIÓN A MAUDE 3-67 eq z + N = N. eq (s M) + N = s (M + N). eq z * N = z. eq (s M) * N = (M * N) + N. cmb M - N : Nat if N <= M. eq M - z = M. eq (s M) - (s N) = M - N. ceq M / P = z if M < P. ceq M / P = s ((M - P) / P) if P <= M. ceq M mod P = M if M < P. ceq M mod P = (M - P) mod P if P <= M. cmb mcd(m, N) : Nat if (M =/= z) or (N =/= z). eq mcd(p, z) = P. ceq mcd(m, N) = mcd(n, M) if M < N. ceq mcd(m, P) = mcd(m - P, P) if P <= M. eq raiz(n) = rz(n, z). cmb rz(n, M) : Nat if (M * M) <= N. ceq rz(n, M) = M if ((M * M) <= N) and (N < ((s M) * (s M))). ceq rz(n, M) = rz(n, s M) if ((s M) * (s M)) <= N. eq z <= N = true. eq (s M) <= z = false. eq (s N) <= (s M) = N <= M. eq M < z = false. eq z < (s N) = true. eq (s M) < (s N) = M < N. donde, por lo que se ha dicho más arriba, ya no es necesario declarar ni importar explícitamente los valores lógicos. Un módulo para los números enteros, donde se utilizan los subuniversos Pos y Neg correspondientes a los números positivos y a los números negativos, queda fmod ENT is

5 3-68 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. sorts Ent Nat Pos Neg. subsorts Pos < Nat < Ent. subsort Neg < Ent. op z : -> Nat [ctor]. ops s_ p_ : Ent -> Ent [ctor]. ops _+ - *_ : Ent Ent -> Ent. op abs : Ent -> Nat. op _div_ : Nat Pos -> Nat. op mcd : Nat Nat -> Nat. ops _<= <_ : Ent Ent -> Bool. vars E E1 E2 : Ent. var N N1 N2 : Nat. var P : Pos. var Q : Neg. mb s N : Pos. mb p z : Neg. mb p Q : Neg. eq s (p E) = E. eq p (s E) = E. eq z + E2 = E2. eq (s E1) + E2 = s (E1 + E2). eq (p E1) + E2 = p (E1 + E2). eq E1 - z = E1. eq E1 - (s E2) = p (E1 - E2). eq E1 - (p E2) = s (E1 - E2). eq z * E2 = z. eq (s E1) * E2 = (E1 * E2) + E2. eq (p E1) * E2 = (E1 * E2) - E2. eq abs(n) = N. eq abs(q) = z - Q. ceq N div P = z if N < P.

6 3.6. INTRODUCCIÓN A MAUDE 3-69 ceq N div P = s ((N - P) div P) if P <= N. eq mcd(n, z) = N. ceq mcd(n1, N2) = mcd(n1 - N2, N2) if N2 <= N1. ceq mcd(n1, N2) = mcd(n2, N1) if N1 < N2. ceq E1 <= E2 = true if E2 - E1 : Nat. ceq E1 <= E2 = false if E1 - E2 : Pos. ceq E1 < E2 = true if E2 - E1 : Pos. ceq E1 < E2 = false if E1 - E2 : Nat. Y un módulo para los números racionales representados mediante pares formados por un número entero (numerador) y un entero positivo (denominador) queda: fmod RAC is protecting ENT. sorts RacNz Rac. subsort Ent < Rac. subsort Pos Neg < RacNz < Rac. op _/_ : Ent Pos -> Rac [ctor]. op a-ent : Rac -> Rac. ops _+. -. *._ : Rac Rac -> Rac. op _/._ : Rac RacNz -> Rac. ops _<. <=._ : Rac Rac -> Bool. vars e e1 e2 : Ent. vars p p1 p2 : Pos. var n : Neg. cmb e / p : RacNz if e =/= z. *** simplificacion de racionales *** ceq p1 / p = (p1 div mcd(p1, p)) / (p div mcd(p1, p)) if (s z) < mcd(p1, p). ceq n / p = (z - (abs(n) div mcd(abs(n), p))) / (p div mcd(abs(n), p)) if (s z) < mcd(abs(n), p). eq z / p = z. eq e1 / s z = e1. *** operaciones ***

7 3-70 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. eq e1 +. e2 = e1 + e2. eq e +. (e2 / p2) = ((e * p2) + e2) / p2. eq (e1 / p1) +. e = (e1 + (e * p1)) / p1. eq (e1 / p1) +. (e2 / p2) = ((e1 * p2) + (e2 * p1)) / (p1 * p2). eq e1 -. e2 = e1 - e2. eq e -. (e2 / p2) = ((e * p2) - e2) / p2. eq (e1 / p1) -. e = (e1 - (e * p1)) / p1. eq (e1 / p1) -. (e2 / p2) = ((e1 * p2) - (e2 * p1)) / (p1 * p2). eq e1 *. e2 = e1 * e2. eq e *. (e2 / p2) = (e * e2) / p2. eq (e1 / p1) *. e = (e1 * e) / p1. eq (e1 / p1) *. (e2 / p2) = (e1 * e2) / (p1 * p2). eq e /. p = e / p. eq e /. n = (z - e) / (z - n). eq e /. (p1 / p) = (e * p) / p1. eq e /. (n / p) = (z - (e * p)) / (z - n). eq (e1 / p1) /. p = e1 / (p1 * p). eq (e1 / p1) /. n = (z - e1) / (z - (p1 * n)). eq (e1 / p1) /. (p / p2) = (e1 * p2) / (p * p1). eq (e1 / p1) /. (n / p2) = (z - (e1 * p2)) / (z - (n * p1)). eq e <. (e1 / p) = (e * p) < e1. eq (e1 / p) <. e = e1 < (p * e). eq (e1 / p1) <. (e2 / p2) = (e1 * p2) < (e2 * p1). eq e <=. (e1 / p) = (e * p) <= e1. eq (e1 / p) <=. e = e1 <= (p * e). eq (e1 / p1) <=. (e2 / p2) = (e1 * p2) <= (e2 * p1). donde los números enteros se consideran parte de los racionales y se establecen ecuaciones de simplificación para las representaciones de racionales que pueden llegar a producir un número entero Especificaciones genéricas Las especificaciones genéricas en Maude implican cuatro tipos de construcciones: la especificación de parámetros o teorías, la especificación de módulos parametrizados, la

8 3.6. INTRODUCCIÓN A MAUDE 3-71 instanciación de parámetros o especificación de enfoques de teorías y la particularización de módulos parametrizados. Una especificación de parámetro o teoría se enuncia de manera parecida a un módulo, salvo por los delimitadores, fth <nombre del parametro> is <cuerpo> endfth con la única diferencia de que no pueden aparecer operaciones constructoras y las ecuaciones no son necesariamente reglas de reescritura (pueden aparecer variables nuevas a la derecha) y se interpretan como teoremas que deben satisfacerse en los módulos que sustituyan a dicho parámetro. Una especificación de parámetro denota a cualquier álgebra que cumpla sus axiomas (no necesariamente al álgebra inicial) y sirve para fijar los requisitos que debe cumplir un módulo para que pueda sustituir a un parámetro. Algunos ejemplos de teorías son: la teoría trivial TRIV, fth TRIV is sort Elt. endth que únicamente impone como requisito la existencia de un dominio de valores; la teoría ORDTOT, fth ORDTOT is sort Elt. op _<_ : Elt Elt -> Bool. vars E1 E2 E3 : Elt. eq E1 < E1 = false. ceq E1 < E2 = true if E1 < E3 and E3 < E2. ceq E1 < E2 or E2 < E1 = true if E1 =/= E2. endth que exige la existencia de un dominio con una relación de orden total; y la teoría COTA, fth COTA is protecting NAT. tmax : -> NatNz. endth que impone como requisito la existencia de un valor natural no nulo.

9 3-72 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. Un módulo parametrizado se declara de manera parecida a como se declara un módulo con las diferencias siguientes: junto al nombre del módulo debe aparecer una lista con los nombres de los parámetros y sus correspondientes teorías, estos parámetros se utilizan como si se tratase de importaciones con la salvedad de que los universos declarados en las teorías de los parámetros, cuando se utilicen, deben etiquetarse de manera postfija con los nombres de los parámetros correspondientes (para evitar ambigüedades cuando se empleen varios parámetros caracterizados por la misma teoría), y los universos que se definan en el módulo parametrizado deberán aparecer parametrizados en los mismos parámetros que el módulo. fmod <nombre del modulo> [X :: <nombre de teoria>] is protecting <nombre de modulo>. sort S[X]. subsort S.X < S[X] Una instancia o un enfoque de una teoría es una forma de ver un módulo concreto como un caso particular de la teoría; para fijar dicho enfoque es necesario establecer una serie de identificaciones entre elementos del módulo y sus correspondientes elementos en la teoría. Esto se hace en Maude con la construcción siguiente view <nom. enfoque> form <nom. teoria> to <nom. modulo> is sort <sort de la teoria> to <sort del modulo>.... op <op. de la teoria> to <op. del modulo>.... endv Una particularización de un módulo parametrizado se obtiene importando, de forma protegida, dentro de un módulo el nombre del módulo parametrizado con los parámetros sustituidos por enfoques. fmod <nombre instancia> is protecting <nom. modulo parametrizado>[nom enfoque]

10 3.6. INTRODUCCIÓN A MAUDE 3-73 Ejemplos de especificaciones genéricas o módulos parametrizados, así como de instanciaciones de dichos módulos, se irán viendo en los capítulos siguientes donde también se irán introduciendo algunas particularidades sobre la notación.

Características. Tipos Cocientes 2

Características. Tipos Cocientes 2 Tipos Cocientes Características La característica básica de los tipos cocientes es que los distintos términos construidos con operaciones generadoras no siempre representan valores distintos del tipo:

Más detalles

Tipos lineales I. Tipos Lineales 2

Tipos lineales I. Tipos Lineales 2 Tipos Lineales Tipos lineales I En los ordenadores la información se almacena normalmente de manera secuencial: secuencias de bits, secuencias de bloques, secuencias de registros,... En muchos lenguajes

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2003/2004 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

TEMA 1. ESPECIFICACIONES FORMALES ALGEBRAICAS EN MAUDE

TEMA 1. ESPECIFICACIONES FORMALES ALGEBRAICAS EN MAUDE Algoritmos y Estructuras de Datos I Grado en Ingeniería Informática, Curso 2º TEMA 1. ESPECIFICACIONES FORMALES ALGEBRAICAS EN MAUDE Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Especificación de Tipos Abstractos de Datos

Especificación de Tipos Abstractos de Datos Especificación de Tipos Absracos de Daos Méodo algebraico: Los universos de daos como dominios de un álgebra Inroducción Lenguajes de programación Signaura básica: operaciones y propiedades Represenación

Más detalles

Isabelle como un lenguaje funcional

Isabelle como un lenguaje funcional Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada

Más detalles

Fundamentos de la especificación formal

Fundamentos de la especificación formal Fundamentos de la especificación formal Métodos Formales en Ingeniería del Software María Alpuente El lenguaje Maude Sintaxis: se utilizan reglas de reescritura (como Haskell, ML, Scheme o Lisp) Semántica:

Más detalles

Guía rápida sobre ejecución de especificaciones algebraicas en Maude bajo el entorno Eclipse para estudiantes de Estructuras de Datos.

Guía rápida sobre ejecución de especificaciones algebraicas en Maude bajo el entorno Eclipse para estudiantes de Estructuras de Datos. Guía rápida sobre ejecución de especificaciones algebraicas en Maude bajo el entorno Eclipse para estudiantes de Estructuras de Datos. Actualizado para poder utilizar la herramienta de testing. 1. Introducción

Más detalles

Tema II: Introducción al Lenguaje Funcional

Tema II: Introducción al Lenguaje Funcional Tema II: Introducción al Lenguaje Funcional Características de Haskell Lenguaje funcional de o. superior fuertemente tipificado. Clasifica los entes de un programa en: objetos (constantes y funciones)

Más detalles

Método Algebraico de Especificación.

Método Algebraico de Especificación. Capítulo 3 Método Algebraico de Especificación. Los lenguajes de programación proporcionan habitualmente una signatura básica que incluye los universos siguientes: BOOLEAN, CARDINAL, INTEGER, REAL y CHAR,

Más detalles

Tema 9: Declaraciones de tipos y clases

Tema 9: Declaraciones de tipos y clases Tema 9: Declaraciones de tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Tema 9: Declaraciones de tipos y clases

Tema 9: Declaraciones de tipos y clases Tema 9: Declaraciones de tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 41 Tema 9:

Más detalles

Especificación de TAD. Lección 2

Especificación de TAD. Lección 2 Especificación de TAD Lección 2 Esquema Características generales de una especificación Especificación algebraica Especificación no formal Lectura recomendada: sección 1.3 del libro de Z.J. Hernández et

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Funciones Segunda parte

Funciones Segunda parte Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...

Más detalles

1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)

1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5) 1 Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Práctica 1 1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:?

Más detalles

LENGUAJES Y COMPILADORES

LENGUAJES Y COMPILADORES LENGUAJES Y COMPILADORES Repaso. La clase pasada presentamos el lenguaje imperativo simple y dimos las ecuaciones para casi todas las construcciones del lenguaje. En efecto, teníamos que [ ] Σ

Más detalles

Axiomas del Cálculo de Predicados

Axiomas del Cálculo de Predicados Axiomas del Cálculo de Predicados Si bien el cálculo proposicional nos permitió analizar cierto tipo de razonamientos y resolver acertijos lógicos, su poder expresivo no es suficiente para comprobar la

Más detalles

UNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD IV Programación Funcional Porqué? 2 Introducción Porque aprender programación funcional? - Recursión - Abstracción funcional - Funciones de primer orden Estos conceptos se han incorporado en la

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Lenguajes funcionales: λ-cálculo

Lenguajes funcionales: λ-cálculo Lenguajes funcionales: λ-cálculo λ-cálculo (Church 1933) Cálculo para el estudio formal del comportamiento de las funciones Sintaxis: λ expresiones Reglas de reducción de λ expresiones Método matemático

Más detalles

Guardas y Tipos de datos

Guardas y Tipos de datos Guardas y Tipos de datos Taller de Álgebra I 1er Cuatrimestre 2017 Definiciones de funciones por casos Podemos usar guardas para definir funciones por casos: f (n) = { 1 si n = 0 0 si no f n n == 0 = 1

Más detalles

1/10. Diseño Modular III. 25 de febrero de 2017

1/10. Diseño Modular III. 25 de febrero de 2017 1/10 Diseño Modular III Josefina Sierra Santibáñez 25 de febrero de 2017 2/10 Implementación de Clases en C++ La implementación una clase requiere elegir una representación para el tipo de datos, i.e.

Más detalles

Para entender la recursividad primero tenemos que entender la recursividad

Para entender la recursividad primero tenemos que entender la recursividad Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre

Más detalles

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes

Más detalles

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción CONTENIDO vii Contenido Prólogo... Prólogo a la edición en español... XVIl XXI 1 Cálculo proposicional... 1 1.1 Argumentos y proposiciones lógicas 1.1.1 Introducción 1 1 1.1.2 Algunos argumentos lógicos

Más detalles

Módulo 1. (Primera Parte) INTRODUCCIÓN AL LENGUAJE LÓGICO- MATEMÁTICO

Módulo 1. (Primera Parte) INTRODUCCIÓN AL LENGUAJE LÓGICO- MATEMÁTICO Módulo 1 (Primera Parte) INTRODUCCIÓN AL LENGUAJE LÓGICO- MATEMÁTICO Qué es un símbolo? El concepto de símbolo (una palabra que deriva del latín simbŏlum) sirve para representar, de alguna manera, una

Más detalles

Introducción a Haskell. El lenguaje Haskell

Introducción a Haskell. El lenguaje Haskell Capítulo 2. Introducción a Haskell 9 Introducción a Haskell Un ejemplo de fichero Haskell El lenguaje Haskell Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro = transparencia

Más detalles

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

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

Símbolos (4) - Información y lenguaje

Símbolos (4) - Información y lenguaje Símbolos (4) - Información y lenguaje Fundamentos de Informática I I.T.I. Sistemas (2005-06) César Llamas Bello Universidad de Valladolid 1 Familia de Problemas Representación de la información Marco apropiado

Más detalles

FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS

FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS Para la corrección de la Práctica de Procesadores de Lenguajes, y como se indica en la especificación de la misma (http://dlsiisv.fi.upm.es/procesadores/practica.html),

Más detalles

Clasificación de Grafos

Clasificación de Grafos Grafos Clasificación de Grafos Los grafos se utilizan en aplicaciones muy diversas (redes de comunicaciones, redes de transporte, circuitos, planificación de tareas) cada una de las cuales utiliza una

Más detalles

TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad

TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad Calculo proposicional 1 Argumentos y proposiciones lógicas 1 Algunos argumentos lógicos importantes 2 Proposiciones 4 Conexiones lógicas 5 Negación (tabla)

Más detalles

Introducción a la Programación

Introducción a la Programación 0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;

Más detalles

Tipos abstractos. Taller de Álgebra I. Segundo cuatrimestre de 2013

Tipos abstractos. Taller de Álgebra I. Segundo cuatrimestre de 2013 Tipos abstractos Taller de Álgebra I Segundo cuatrimestre de 2013 Acerca de los tipos algebraicos 1 Su forma se declara expĺıcitamente a través de los constructores. 2 Toda expresión del tipo representa

Más detalles

Apuntes de Programación y estructuras de datos. Abstracción y modularidad

Apuntes de Programación y estructuras de datos. Abstracción y modularidad Apuntes de Programación y estructuras de datos. Abstracción y modularidad Nikos Mylonakis nicos@lsi.upc.edu Dept. Llenguatges i Sistemes Informátics Universitat Politécnica de Catalunya Barcelona April

Más detalles

Introducción a Haskell. Cecilia Manzino

Introducción a Haskell. Cecilia Manzino Paradigmas de programación Un paradigma de programación representa un estilo particular o filosofía para la construcción del software. Los más comunes dan lugar a los siguientes tipos de programación:

Más detalles

Tipos de Datos Simples Contenido del Tema

Tipos de Datos Simples Contenido del Tema T E M A 3 Tipos de Datos Simples Contenido del Tema 3.1. Concepto de Tipo 3.1.1. Elementos básicos: atributos y operaciones 3.1.2. Tipos. Concepto y necesidad 3.1.3. Operadores básicos 3.2. Tipos de Datos

Más detalles

Tema 3. Patrones y Definiciones de Funciones

Tema 3. Patrones y Definiciones de Funciones Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones

Más detalles

Divisibilidad y congruencia

Divisibilidad y congruencia Divisibilidad y congruencia Taller de Álgebra I Verano 2017 Algoritmo de la división Teorema Dados a, d Z, d 0, existen únicos q, r Z tales que a = qd + r, 0 r < d. Idea de la demostración: (caso a 0,

Más detalles

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

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante. Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una

Más detalles

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 Este documento define los elementos de programación del lenguaje P-0, basado en un subconjunto del lenguaje de programación Arduino. 1.- PROGRAMA Un programa

Más detalles

2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos

2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA 1. Semántica axiomática de un lenguaje de programación Para poder utilizar tipos estructurados en los programas, será necesario tenerlos definidos como Tipos Abstractos de

Más detalles

Introducción a la programación. Cecilia Manzino

Introducción a la programación. Cecilia Manzino Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos

Más detalles

PROGRAMACIÓN DECLARATIVA

PROGRAMACIÓN DECLARATIVA UNIVERSIDAD DE MALAGA DEPARTAMENTO DE LENGUAJES Y CIENCIAS DE LA COMPUTACION PROGRAMACIÓN DECLARATIVA CURSO 2000-2001 I. PROGRAMACIÓN LÓGICA II. PROGRAMACIÓN FUNCIONAL BIBLIOGRAFÍA Programación Lógica:

Más detalles

Tema 2. Tipos predefinidos

Tema 2. Tipos predefinidos Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 2. Tipos predefinidos 2.1 Tipos simples predefinidos El tipo Bool El tipo Int El tipo Integer

Más detalles

Apuntes de Tipos Abstractos de Datos. Juan M. Molina Bravo

Apuntes de Tipos Abstractos de Datos. Juan M. Molina Bravo Apuntes de Tipos Abstractos de Datos Juan M. Molina Bravo curso 2001-2002 0-2 Capítulo 1 Introducción a la Programación Basada en Tipos Abstractos de Datos. 1.1 Diseño basado en ttaadd Los sistemas de

Más detalles

Tipos de datos algebraicos

Tipos de datos algebraicos Tipos de datos algebraicos Taller de Álgebra I Segundo cuatrimestre de 2013 Programación funcional Recordemos que un tipo de datos es un conjunto dotado con una serie de operaciones sobre los elementos

Más detalles

Guía 1: Funciones, precedencia y tipado

Guía 1: Funciones, precedencia y tipado Introducción a los Algoritmos - do. cuatrimestre 014 Guía 1: Funciones, precedencia y tipado Docentes: Walter Alini, Luciana Benotti El objetivo de los siguientes ejercicios es introducirnos en la programación

Más detalles

POLINOMIOS Y FRACCIONES ALGEBRAICAS

POLINOMIOS Y FRACCIONES ALGEBRAICAS POLINOMIOS Y FRACCIONES ALGEBRAICAS Monomio: Monomio es una expresión algebraica en la que las únicas operaciones que aparecen entre las variables son el producto y la potencia de exponente natural. 2x

Más detalles

1/1. Diseño Modular. 18 de febrero de 2017

1/1. Diseño Modular. 18 de febrero de 2017 1/1 Diseño Modular Josefina Sierra Santibáñez 18 de febrero de 2017 2/1 Introducción al Diseño Modular Orientación a Objetos En esta asignatura utilizaremos la orientación a objetos como mecanismo de C++

Más detalles

Índice del capítulo. Capítulo 4. Expresiones. Las expresiones. Indice de la sección. Lenguajes de Programación. Introducción. 2.

Índice del capítulo. Capítulo 4. Expresiones. Las expresiones. Indice de la sección. Lenguajes de Programación. Introducción. 2. Índice del capítulo Capítulo 4. Expresiones Lenguajes de Programación Capítulo 4. Expresiones 1. Carlos Ureña Almagro 2. Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad

Más detalles

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica LÓGICA FORMAL TEORIAS DE PRIMER ORDEN Sintaxis y semántica Pedro López Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Lenguajes de primer orden 1 La lógica

Más detalles

Algoritmos en teoría de números

Algoritmos en teoría de números Algoritmos en teoría de números IIC2283 IIC2283 Algoritmos en teoría de números 1 / 92 Para recordar: aritmética modular Dados dos números a, b Z, si b > 0 entonces existen α, β Z tales que 0 β < b y a

Más detalles

Apéndice 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas. . Analizando el

Apéndice 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas. . Analizando el Apéndice 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas Polinomios Dedicaremos este apartado al repaso de los polinomios. Se define Rx a 0 a 1 x a 2 x 2...a n x n a 0,a 1,a 2,...,a

Más detalles

Operadores y reglas de precedencia

Operadores y reglas de precedencia Capítulo 5 1 Operadores y reglas de precedencia MIA Ricardo González Lozano 2 Categoría de Operadores Los operadores son los elementos del lenguaje que nos permiten asignar, calcular y comparar expresiones,

Más detalles

Lenguajes de Programación. Capítulo 4. Expresiones.

Lenguajes de Programación. Capítulo 4. Expresiones. Lenguajes de Programación. Capítulo 4. Expresiones. Carlos Ureña Almagro Curso 2011-12 Contents 1 Introducción 2 2 Literales 5 2.1 Literales tipos primitivos......................................... 5

Más detalles

Tema 3. Patrones y Definiciones de Funciones

Tema 3. Patrones y Definiciones de Funciones Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones

Más detalles

ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6]

ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6] ALGEBRA DE BOOLE El álgebra booleana, como cualquier otro sistema matemático deductivo, puede definirse con un conjunto de elementos, un conjunto de operadores y un número de axiomas no probados o postulados.

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

GUÍAS DE ESTUDIO PROGRAMA DE ALFABETIZACIÓN, EDUCACIÓN BÁSICA Y MEDIA PARA JÓVENES Y ADULTOS

GUÍAS DE ESTUDIO PROGRAMA DE ALFABETIZACIÓN, EDUCACIÓN BÁSICA Y MEDIA PARA JÓVENES Y ADULTOS GUÍAS DE ESTUDIO Código PGA-0-R0 1 INSTITUCIÓN EDUCATIVA CASD PROGRAMA DE ALFABETIZACIÓN, EDUCACIÓN BÁSICA Y MEDIA PARA JÓVENES Y ADULTOS UNIDAD DE TRABAJO Nº PERIODO 1 ÁREA INTEGRADA: MATEMÁTICAS. ASIGNATURA:

Más detalles

Programación funcional

Programación funcional Programación funcional Inferencia de tipos manual para programas Haskell J. Sánchez Hernández Enero de 2007 El sistema de tipos de Haskell Es una variante del propuesto R. Milner en 1978 (con antecedentes

Más detalles

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-3-1

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-3-1 Capítulo 5 Los números reales y sus representaciones 2012 Pearson Education, Inc. Diapositiva 5-3-1 Capítulo 5: Los números reales y sus representaciones 5.1 Números reales, orden y valor absoluto 5.2

Más detalles

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:

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: Cuestionario Modulo 1.1 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: 1001 0110. 2. qué es Dato? Definición: Es toda

Más detalles

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones

Más detalles

Algebras booleanas. B2) Leyes Distributivas. Cada operación es distributiva con respecto a la otra:

Algebras booleanas. B2) Leyes Distributivas. Cada operación es distributiva con respecto a la otra: Algebras booleanas AXIOMAS DEL ALGEBRA DE BOOLE Sea B un conjunto en el cual se han definido dos operaciones binarias, + y * (En algunos casos se definen en términos de y respectivamente), y una operación

Más detalles

Lenguajes de Programación Programación funcional

Lenguajes de Programación Programación funcional Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Tipos de datos en Haskell

Tipos de datos en Haskell Tipos de datos en Haskell Ejercicios 1. Tipos enumerados Cuando los distintos valores que debemos distinguir en un tipo son finitos, entonces podemos enumerar todos los valores distintos para el tipo.

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

El sistema de clases de Haskell. Introducción

El sistema de clases de Haskell. Introducción Capítulo 5. El sistema de clases de Haskell 56 El sistema de clases de Haskell Introducción Función monomórfica: sólo se puede usar para valores de un tipo concreto not :: Bool Bool not True = False not

Más detalles

Mecanismo de Reducción

Mecanismo de Reducción Mecanismo de Reducción Taller de Álgebra I 1er Cuatrimestre 2017 Repaso: Qué vimos hasta ahora? Programar para qué? Implementar algoritmos que solucionen problemas. Pensamiento algorítmico Ver los problemas

Más detalles

Guía práctica de estudio 05: Pseudocódigo

Guía práctica de estudio 05: Pseudocódigo Guía práctica de estudio 05: Pseudocódigo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Autorizado por: M.C. Alejandro Velázquez Mena Guía

Más detalles

Guía N 1 Introducción a las Matemáticas

Guía N 1 Introducción a las Matemáticas Glosario: Guía N 1 Introducción a las Matemáticas - Aritmética: Es la rama de las matemáticas que se dedica al estudio de los números y sus propiedades bajo las operaciones de suma, resta, multiplicación

Más detalles

Tipos de datos y clases de tipos

Tipos de datos y clases de tipos Tipos de datos y clases de tipos Taller de Álgebra I Verano 2017 Tipos de datos Tipo de dato Un conjunto de valores a los que se les puede aplicar un conjunto de funciones. Ejemplos 1 Integer = (Z, {+,,,

Más detalles

Unidad 2: Ecuaciones, inecuaciones y sistemas.

Unidad 2: Ecuaciones, inecuaciones y sistemas. Unidad 2: Ecuaciones, inecuaciones y sistemas 1 Unidad 2: Ecuaciones, inecuaciones y sistemas. 1.- Factorización de polinomios. M. C. D y m.c.m de polinomios. Un número a es raíz de un polinomio es 0.

Más detalles

Informática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición:

Informática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición: Ejercicios de Introducción a Haskell Informática de 1 o de Matemáticas Ejercicio 1 Consideremos la siguiente definición: doble x = x + x El valor de doble(doble 3) se puede calcular usando distintos métodos

Más detalles

Definiciones de tipo. Sinónimos de tipo

Definiciones de tipo. Sinónimos de tipo Capítulo 4. Definiciones de tipo 40 Definiciones de tipo Sinónimos de tipo Un sinónimo de tipo renombra un tipo existente. El nuevo nombre y el antiguo son totalmente intercambiables. type Entero =Integer

Más detalles

Departamento de Matemáticas. ÁLGEBRA: Ecuaciones

Departamento de Matemáticas. ÁLGEBRA: Ecuaciones 3.5. Ecuaciones bicuadradas. Empezamos ahora a analizar qué pasa cuando el polinomio tiene grado más grande que dos. Todas éstas se engloban dentro de la misma estrategia de resolución que, como posteriormente

Más detalles

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 6 Nombre: Álgebra Booleana Objetivo Durante la sesión el participante identificará las principales características

Más detalles

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017 Paradigma Funcional Caso de estudio: ML Lenguajes de Programación 2017 Paradigma Funcional FUNCIÓN: Mapeo de un dominio en un rango El mapeo se puede describir por medio de una EXPRESIÓN f(1) = 2 f(2)

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos! Introducir el mecanismo de abstracción y justificar la necesidad de los TAD! Diferenciar adecuadamente los conceptos de especificación e implementación de TAD! Presentar la especificación algebraica

Más detalles

Análisis y Diseño de Sistemas

Análisis y Diseño de Sistemas Análisis y Diseño de Sistemas Dpto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Clase 21 Especificación Formal Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] 1er. CUATRIMESTRE

Más detalles

Tema 7. El sistema de clases

Tema 7. El sistema de clases Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 7. El sistema de clases 7.1 Funciones Sobrecargadas Clases e Instancias 7.2 Algunas Clases

Más detalles

Tema 2. Polinomios y fracciones algebraicas

Tema 2. Polinomios y fracciones algebraicas Tema. Polinomios y fracciones algebraicas. Polinomios.... Definiciones.... Operaciones con polinomios.... Factorización de un polinomio.... Teorema del resto. Criterio de divisibilidad por -a.... Propiedades

Más detalles

Conceptos previos. Revisión de Sistemas Lógicos Formatos Numéricos. Dpto. Ingeniería Electrónica y Comunicaciones

Conceptos previos. Revisión de Sistemas Lógicos Formatos Numéricos. Dpto. Ingeniería Electrónica y Comunicaciones Conceptos previos Revisión de Sistemas Lógicos Formatos Numéricos Revisión de Sistemas Lógicos Álgebra de Boole Base matemática de la Electrónica Digital Consta de dos elementos: 0 lógico y 1 lógico Tecnología

Más detalles

Programación Funcional Haskell Clase 19

Programación Funcional Haskell Clase 19 Programación Funcional Haskell Clase 19 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 19 p.1/23 Temas de la clase Lenguajes Funcionales Haskell y

Más detalles

Elementos de un lenguaje de programación. Lenguajes de Programación 1

Elementos de un lenguaje de programación. Lenguajes de Programación 1 Elementos de un lenguaje de programación Lenguajes de Programación 1 Que nos brinda el lenguaje a + b que tipos de valores brinda qué operaciones proporciona qué significan los símbolos a y b es legal

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

introducción...13 Capítulo 1. lógica y conjuntos...15

introducción...13 Capítulo 1. lógica y conjuntos...15 Índice introducción...13 Capítulo 1. lógica y conjuntos...15 1.1 Elementos de lógica [proposicional]...15 1.1.1 Conectivos lógicos...17 1.1.2 Combinación de operaciones...19 1.1.3 Tautología...19 1.1.4

Más detalles

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,

Más detalles

Capítulo 1. Numeración 1 Variables... 2 Números naturales... 2 Números enteros... 3 Números reales Ejercicios Orden y valor absoluto...

Capítulo 1. Numeración 1 Variables... 2 Números naturales... 2 Números enteros... 3 Números reales Ejercicios Orden y valor absoluto... ÍNDICE Capítulo 1. Numeración 1 Variables... 2 Números naturales... 2 Números enteros... 3 Números reales... 3 Ejercicios... 5 Orden y valor absoluto... 6 Ejercicios... 7 Suma de números reales... 9 Reglas

Más detalles

Tutorial Haskell David Julián Guzmán Cárdenas Cristian Alexanther Rojas Cárdenas Luis Ernesto Gil Castellanos

Tutorial Haskell David Julián Guzmán Cárdenas Cristian Alexanther Rojas Cárdenas Luis Ernesto Gil Castellanos Tutorial Haskell David Julián Guzmán Cárdenas Cristian Alexanther Rojas Cárdenas Luis Ernesto Gil Castellanos Agenda 1. 2. 3. 4. 5. 6. Introducción Aspectos básicos del lenguaje Tipos y clases de tipos

Más detalles

JavaScript: Variables

JavaScript: Variables JavaScript: Variables Una variable es un elemento que se emplea para almacenar y hacer referencia a otro valor. Gracias a las variables es posible crear "programas genéricos", es decir, programas que funcionan

Más detalles

Introducción al Cálculo Simbólico a través de Maple

Introducción al Cálculo Simbólico a través de Maple 1 Introducción al Cálculo Simbólico a través de Maple Introducción A manera de introducción, podemos decir que los lenguajes computacionales de cálculo simbólico son aquellos que permiten la representación

Más detalles

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

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo

Más detalles

Divisibilidad y congruencia

Divisibilidad y congruencia de los ejercicios de la clase 8 Divisibilidad y congruencia Taller de Álgebra I Segundo cuatrimestre de 2016 Introducción A continuación les presentamos algunas soluciones para los ejercicios de la clase

Más detalles