Fundamentos de la especificación formal
|
|
- José Carlos Maidana Salazar
- hace 6 años
- Vistas:
Transcripción
1 Fundamentos de la especificación formal Métodos Formales en Ingeniería del Software María Alpuente
2 El lenguaje Maude Sintaxis: se utilizan reglas de reescritura (como Haskell, ML, Scheme o Lisp) Semántica: Lógica de Reescritura (modela concurrencia y objetos)
3 mod SIMPLE-VENDING-MACHINE is sorts Coin Item State. subsorts Coin Item < State. op null : -> State. op : State State -> State [assoc id: null]. op $ : -> Coin. op q : -> Coin. op c : -> Item. op b : -> Item. var St : State. Ejemplo rl $ => c. --- da 1 café por 1 $ rl $ => b q. --- o da 1 bollo y el cambio (1/4 de $) rl q q q q => $. --- cambia 4 monedas de 1/4 en 1 $
4 mod SIMPLE-VENDING-MACHINE is sorts Coin Item State. Signatura op null : -> State. op : State State -> State. [assoc id: null]. op $ : -> Coin. op q : -> Coin. op c : -> Item. op b : -> Item. var St : State. rl $ => c. rl $ => b q. rl q q q q => $. Presentación
5 Maude> rew q q q q null. rl $ => c. rl $ => a q. rl q q q q => $.
6 Maude> rew q q q q null. rl $ => c. rl $ => b q. rl q q q q => $. q q q q null $ c b q
7 Maude> rew q q q q null. rewrite in SIMPLE-VENDING-MACHINE : q q q q. rewrites: 2 in 0ms cpu (0ms real) (~ rewrites/second) result Item: c rl $ => c. rl $ => b q. rl q q q q => $. q q q q $ c b q
8 Maude> search q q q q =>! X:State. search in VENDING-MACHINE : q q q q =>! X:State. Solution 1 (state 2) X:State --> c Solution 2 (state 3) X:State --> b q No more solutions. rl $ => c. rl $ => b q. rl q q q q => $. q q q q $ c b q
9 Maude> search $ q q q =>! X:State. search in VENDING-MACHINE : $ q q q =>! X:State. Solution 1 (state 1) X:State --> c q q q Solution 2 (state 4) X:State --> b c Solution 3 (state 5) X:State --> b b q No more solutions.
10 Maude> show search graph. state 0, State: $ q q q arc 0 ===> state 1 (rl $ => c.) arc 1 ===> state 2 (rl $ => b q.) 0 $ q q q 1 c q q q 2 b q q q q state 1, State: c q q q state 2, State: b q q q q arc 0 ===> state 3 (rl q q q q => $.) state 3, State: b $ arc 0 ===> state 4 (rl $ => c.) arc 1 ===> state 5 (rl $ => b q.) 3 b $ 4 b c 5 b q b state 4, State: b c state 5, State: b b q
11 Evaluación de expresiones (i) Reducción e e l => r lhs rhs
12 Evaluación de expresiones (ii) Reducción e b $ e b b q $ => b q
13 Evaluación de expresiones (iii) Reducción e sqr(inc(2)) e sqr(2+1) inc(x) => X + 1
14 sqr(inc(2)) inc(x) => X + 1 sqr(x) => X * X sqr(2+1) inc(2)*inc(2)
15 Evaluación de expresiones (iv) Reducción e sqr(inc(2)) e inc(2)*inc(2) sqr(x) => X * X
16 Definiciones Un redex es una instancia lσ de una parte izquierda l de una regla l => r Una expresión e se reduce (se reescribe) a e si: contiene un redex lσ de una ecuación l = r e se obtiene reemplazando en e el redex lσ por rσ El reemplazamiento, dentro de una expresión, de una instancia de la lhs de una regla por la correspondiente instancia de la rhs se denomina paso de reescritura o reducción
17 Evaluación de expresiones (v) Reducción l r lσ rσ e e l = r
18 La evaluación de una expresión e consiste en aplicar sucesivos pasos de reducción hasta obtener una forma normal o irreducible n (es decir, una expresión que no contiene redexes). En símbolos: e! n sii e n y n / Según la estrategia de reducción escogida, el resultado puede cambiar
19 Estrategias de evaluación sqr(inc(2)) inc(x) => X + 1 sqr(x) => X * X sqr(2+1) inc(2)*inc(2) Impaciente
20 Estrategias de evaluación sqr(inc(2)) inc(x) => X + 1 sqr(x) => X * X sqr(2+1) inc(2)*inc(2) Perezosa
21 Estrategias de evaluación Maude es un lenguaje impaciente (a diferencia de otro lenguajes funcionales como Haskell, que son perezosos) Para garantizar la terminación de los cómputos, es necesario imponer condiciones a las reglas
22 Terminación Un programa (i.e., un conjunto de reglas) es terminante si no existen cadenas infinitas de pasos de reducción: t1 t2 t3 Cuando un programa es terminante, la forma normal de cualquier término siempre existe La terminación es una propiedad indecidible de los programas (pero hay condiciones suficientes)
23 Terminación Ejemplos de reglas no terminantes: inf X => X:(inf X+1). loop => loop. X => a. St => St $. and(x,y) => and(y,x)
24 Confluencia Un programa (i.e., un conjunto de reglas) es confluente si siempre que un término se puede reescribir a dos términos distintos, éstos, a su vez, convergen a un mismo término. En símbolos: t, s 1, s 2 tal que t R s 1 y t R s 2 t u tal que s 1 R u y s 2 R us 1 s 2 u
25 Confluencia Cuando un programa es confluente, la forma normal de cualquier término, si existe, es única La confluencia es una propiedad indecidible de los programas (pero hay condiciones suficientes, por ejemplo ortogonalidad = linealidad por la izquierda + no solapamiento de lhs s ) Ejemplo TRS no lineal donde f(c,c) tiene dos formas nomales, a y b f(x,x)=> a f(x,g(x))=>b c=>g(c)
26 Confluencia Ejemplos de programa no confluentes: $ => c. $ => b q.
27 Ecuaciones Las reglas que son terminantes y confluentes (no dan resultados divergentes) se pueden escribir como ecuaciones dentro de módulos funcionales y se usan como reglas de simplificación ecuacional. op nil : -> List. op _._ : Nat List -> List. op length: List -> Nat. eq length(nil) = 0. eq length(i.l) = s length(l).
28 Reescritura ecuacional Si tenemos un programa P = R E t R E s sii t! E t y t R s y s! E s
29 Ejemplo de reescritura ecuacional Dado el conjunto E de ecuaciones para las funciones length y + y R={ inf X => X.(inf X+1) } inf (length(0.1.nil)) R E 2.inf(3)
30 Atributos Cuando aparecen operadores asociativos, conmutativos, etc, la reescritura no es capaz de computar de forma efectiva con ellos (espacio de búsqueda infinito) Por ello, dichas propiedades se tratan aparte, predefinidas como ATRIBUTOS
31 Ejemplo de Reescritura con atributos and(x,y) = and(y,x) and(x,true) => X and(x,false) => false > rew and(true,x) [regla1] and(x,true) [regla1] and(true,x) [regla1]
32 Ejemplo de Reescritura con atributos and(x,y) = and(y,x) op and : Bool Bool -> Bool [comm]. and(x,true) => X and(x,false) => false > rew and(true,x) [comm] X
33 Reescritura condicional Las reglas condicionales tienen la forma general: crl l => r if C donde C es una conjunción (/\) de expresiones de la forma t=t (equation) t:=t (matching equation) t=>t (rule) t: S (sort expression) (una expresion booleana b se considera b=true) Ej. b(x)=>c(x*2) if a(x)=>b(y)
34 Reescritura condicional Relación de reducción condicional: (para expresiones t:=t ) Un redex lσ se reescribe a la expresión rσβ si existe una sustitución β que hace emparejar con el patrón tσ la forma normal de t σ, es decir, si tσβ=t σ
35 Ejemplo de Reescritura condicional crl f(x)=>x+n if X>0/\s(N):=s(0) Ejemplo de reducción condicional: σ={x/2} β={n /0} f(2) 2+0
36 Maude> search $ q q q q =>! X:State. search in VENDING-MACHINE : $ q q q q =>! X:State. Solution 1 (state 6) X:State --> c c Solution 2 (state 7) X:State --> q b c Solution 3 (state 8) X:State --> q q b b No more solutions.
37 Maude> show search graph. state 0, State: $ q q q q arc 0 ===> state 1 (rl q q q q => $.) arc 1 ===> state 2 (rl $ => c.) arc 2 ===> state 3 (rl $ => q b.) state 1, State: $ $ arc 0 ===> state 4 (rl $ => c.) arc 1 ===> state 5 (rl $ => q b.) state 2, State: q q q q c arc 0 ===> state 4 (rl q q q q => $.) state 3, State: q q q q q b arc 0 ===> state 5 (rl q q q q => $.) state 4, State: $ c arc 0 ===> state 6 (rl $ => c.) arc 1 ===> state 7 (rl $ => q b.) state 5, State: $ q b arc 0 ===> state 7 (rl $ => c.) arc 1 ===> state 8 (rl $ => q b.) state 6, State: c c state 7, State: q b c state 8, State: q q b b
38 Maude> show search graph. state 0, State: $ q q q q arc 0 ===> state 1 (rl q q q q => $.) arc 1 ===> state 2 (rl $ => c.) arc 2 ===> state 3 (rl $ => q b.) state 1, State: $ $ arc 0 ===> state 4 (rl $ => c.) arc 1 ===> state 5 (rl $ => q b.) state 2, State: q q q q c arc 0 ===> state 4 (rl q q q q => $.) state 3, State: q q q q q b arc 0 ===> state 5 (rl q q q q => $.) state 4, State: $ c arc 0 ===> state 6 (rl $ => c.) arc 1 ===> state 7 (rl $ => q b.) state 5, State: $ q b arc 0 ===> state 7 (rl $ => c.) arc 1 ===> state 8 (rl $ => q b.) state 6, State: c c state 7, State: q b c state 8, State: q q b b 0 $ q q q q 1 $ $ 2 c q q q q 3 q b q q q q 4 $ c 5 $ q b 6 c c 7 q b c 8 q q b c
Extensiones a la comprobación de satisfacibilidad de restricciones
Trabajo fin de máster Máster en Ingeniería del Software, Métodos Formales y Sistemas de Información Extensiones a la comprobación de satisfacibilidad de restricciones Autor: Pablo Viciano Negre Director
Más detallesSEMINARIO 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 detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesTema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I
Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison
Más detallesAlgoritmos 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 detallesDESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Más detallesMatemá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 detallesUniversidad 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 detallesIsabelle 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 detallesProgramación Funcional en Haskell
Programación Funcional en Haskell Paradigmas de Lenguajes de Programación 1 cuatrimestre 2006 1. Expresiones, valores y tipos Un programa en lenguaje funcional consiste en definir expresiones que computan
Más detallesTema 3.- Predicados y sentencias condicionales
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesCapítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 7 OPERADORES Y EXPRESIONES 1 OBJETIVOS Conocer los tipos de operadores
Más detallesÁlgebra Booleana. Suma Booleana. El término suma es 1 si al menos uno de sus literales son 1. El término suma es 0 solamente si cada literal es 0.
Álgebra Booleana El álgebra de Boole son las matemáticas de los sistemas digitales. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware y que está formado por los componentes
Más detallesEstructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle
Estructuras de control carlos.andres.delgado@correounivalle.edu.co Facultad de Ingeniería. Universidad del Valle Agosto de 2016 Contenido 1 2 3 Definición Estas sentencias son asociados a dos posibles
Más detallesACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]
ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental] Action script es el lenguaje de programación que lleva incorporado el software de creación multimedia Macromedia
Más detallesNociones Básicas de Sémantica: Semántica Denotacional
Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de
Más detallesCompiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos
Más detallesTema 4: Definición de funciones
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 Constantes como patrones Variables como
Más detallesConceptos básicos sobre gramáticas
Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos
Más detallesExamen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012
Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012 Sin apuntes. Tiemp: 3h. Nombre y Apellidos: Problema de analisis léxico, sintáctico e intérpretes
Más detallesInformá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 detallesIntroducció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 detallesINTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN
INTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN Referencias: Inteligencia Artificial Russell and Norvig Cap.6. Artificial Intellingence Nils Nilsson Ch.4
Más detallesTema 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 detallesSISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Más detallesEJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL
EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL María Alpuente y María José Ramírez 1 LENGUAJES Y PARADIGMAS: INTRODUCCIÓN 1. Indica cuál de las siguientes
Más detalles1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Más detallesIntroducción a PL/SQL
Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL
Más detallesINDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas
INDICE Prologo XVII Prólogo a la edición en español XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas 1 1.1.1. Introducción 1.1.2. Algunos argumentos lógicos importantes 2 1.1.3. Proposiciones
Más detallesCONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten
Más detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesProgramación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesIntroducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4
Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando
Más detallesESTUDIOS SIMULTÁNEOS INGENIERO EN INFORMÁTICA Y LICENCIADO EN MATEMÁTICAS
ESTUDIOS SIMULTÁNEOS INGENIERO EN INFORMÁTICA Y LICENCIADO EN MATEMÁTICAS CURSO ACADÉMICO 00/0 Estudios Ingeniero en Informática y Licenciado en Matemáticas Enseñanza a extinguir por la implantación del
Más detallesRECORDAR TIPOS DE DATOS
RECORDAR TIPOS DE DATOS VARIABLES: OBJETO CUYO valor cambia: A510 nombres NOTAS Int A=0; float B=1; CONSTANTES: OBJETO cuyo valor no cambia PI= 3.14159 LAS COMAS NO SE PERMITEN Int PI=3.1415 EXPRESIONES:
Más detallesTema 3: Tipos y clases
Tema 3: 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 Tema 3: Tipos y clases
Más detallesCurso de Java Introducción a la Programación III
Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional
Más detallesIntroducción a la Programación en MATLAB
Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Más detallesU i n d id d a 3. El Element os á bá i s cos de un programa
Programación Digital U id d 3 El t bá i Unidad 3. Elementos básicos de un programa 1. Concepto de Programa Es un conjunto de instrucciones (órdenes dadas a la computadora), que producirán la ejecución
Más detallesTema 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 detallesIntroducción a la indecidibilidad
Introducción a la indecidibilidad José M. empere Departamento de istemas Informáticos y Computación Universidad Politécnica de Valencia Lenguajes y problemas Un problema será considerado cualquier cuestión
Más detallesUNIVERSIDAD AUTÓNOMA DE SINALOA ESCUELA DE ADMINISTRACIÓN AGROPECUARIA Y DESARROLLO RURAL FORMATO DE DISEÑO INSTRUCCIONAL LIC.
ÁREA DE CONOCIMIENTO Objetivo del área Objetivo del semestre Modulo Horas de laboratorio de cómputo Objetivo general de la materia UNIVERSIDAD AUTÓNOMA DE SINALOA ESCUELA DE ADMINISTRACIÓN AGROPECUARIA
Más detallesProcesamiento y Optimización de Consultas
30/09/2016 s Procesamiento y Optimización de Consultas Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla septiembre 2016 s Objetivos
Más detallesALGEBRA 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 detallesPráctico 5. Definiciones Inductivas - Segunda Parte -
Práctico 5 Definiciones Inductivas - Segunda Parte - Objetivos: Trabajar con tipos inductivos. Realizar pruebas por inducción y análisis de casos. Familiarizarse con los lemas de inversión y las tácticas
Más detallesEstructuras de Datos. Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR
Estructuras de Datos Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR ...but note that an implementation need not be actualized as code a concrete design is sufficient. Chris Okasaki
Más detallesLógica de Predicados
Lógica de redicados Lógica de predicados Lógica de predicados Cálculo de predicados Reglas de inferencia Deducción proposicional Demostración condicional Demostración indirecta Valores de certeza y Tautología
Más detallesExterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}
Bloque II. 2. Objetos y acciones elementales Bloque II. 2. Objetos y acciones elementales Objetivos: Familiarizarse con conceptos de entorno, objeto y tipo Entender qué significa que un objeto sea de un
Más detallesTÍ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 detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesLenguajes y Compiladores
2015 Estructura de la materia a grandes rasgos: Primera Parte: Lenguaje imperativo Segunda Parte: Lenguaje aplicativo puro, y lenguaje aplicativo con referencias y asignación Ejes de contenidos de la primer
Más detallesIntroducción a la Lógica y la Computación
Introducción a la Lógica y la Computación Parte III: Lenguajes y Autómatas Clase del 4 de Noviembre de 2015 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/21 Lenguajes Formales
Más detallesUniversidad de Guanajuato Tronco Común de Ingenierías
Universidad de Guanajuato Tronco Común de Ingenierías Objetivo del Area: Diseñar modelos matemáticos y proponer alternativas de solución a problemas. Programa. AREA: Matemáticas MATERIA: Lenguaje de Programación
Más detallesTema I Testing Estructurado
Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación
Más detallesTipos 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 detallesGUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Más detallesEjercicios de lógica
1. Sistemas formales. Ejercicios de lógica 1. Considere el siguiente sistema formal: Símbolos: M, I, U. Expresiones: cualquier cadena en los símbolos. Axioma: UMUIUU Regla de inferencia: xmyiz xumyuizuu
Más detallesLa Ambigüedad en el Parsing
La en el Parsing Definición y Ejemplos Universidad de Cantabria Outline El Problema 1 El Problema 2 3 El Problema En nuestra busqueda por encontrar la estructura exploraremos como elegir una derivación
Más detallesINDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes
INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los
Más detallesÁlgebra Booleana. Álgebra Booleana. Definiciones. Definiciones. Definiciones. Definiciones. Sistemas Digitales Mario Medina 1
Álgebra Booleana Álgebra Booleana Mario Medina C. mariomedina@udec.cl Postulados y axiomas Lemas y teoremas Referencias a otras álgebras Álgebra de Boole: estructura algebraica definida sobre un conjunto
Más detallesPROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Más detallesINICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar
Más detalles6.1. Condición de magnitud y ángulo
Capítulo 6 Lugar de las raíces La respuesta transitoria de un sistema en lazo cerrado, está ligada con la ubicación de los polos de lazo cerrado en el plano complejo S. Si el sistema tiene una ganancia
Más detallesProgramcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.
Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad
Más detallesProgramación Funcional
Programación Funcional Jeroen Fokker 1996 Universidad de Utrecht Departamento de Informática Traducci on: Programa MEMI Universidad Mayor de San Simón Hielko R. Ophoff & Bernardo Sánchez J. Revisión: Universidad
Más detallesMódulo 2: Algoritmos (continuación)
Módulo 2: Algoritmos (continuación) Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dra. Marcela Capobianco 1 de Copyright Copyright 2012 M.
Más detallesTEMA 2: PUERTAS LÓGICAS Y ÁLGEBRA DE CONMUTACIÓN.
TECNOLOGÍA DE COMPUTADORES. CURSO 27/8 Inocente Sánche Ciudad TEMA 2: PUERTAS LÓGICAS Y ÁLGEBRA DE CONMUTACIÓN. 2.. Operaciones lógicas básicas. Las operaciones básicas se definen como suma lógica o bien
Más detallesModelos de Desarrollo de Programas Y Programación Concurrente Clase N 3
PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia
Más detallesTema 7. Generación de código
Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión
Más detallesEl lenguaje Haskell 98
El lenguaje Haskell 98 Un lenguaje perezoso completamente Curry con sobrecarga. Juan Pedro Villa Introducción Las razones agudas son ronquidos para los oídos tontos. William
Más detallesSignificado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo
Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo Semánticas del cálculo de predicados proporcionan las bases formales para determinar el valor
Más detalles4.7 Operaciones sobre Objetos en Scheme
4.7 Operaciones sobre Objetos en Scheme Equivalencias y predicados de tipos, listas, números, caracteres, strings y vectores Ejemplos de Equivalencia (eq? a a) ;=> #t (eq? 3.1 3.1) ;=> () (eq? (cons a
Más detallesAlgoritmos y Estructuras de Datos II
8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos
Más detallesINTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
Más detallesLógica. Matemática discreta. Matemática discreta. Lógica
Lógica Matemática discreta Lógica: rama de las matemáticas instrumento para representar el lenguaje natural proporciona un mecanismo de deducción 2 y de predicados Razonamientos Cálculo proposicional Cálculo
Más detallesCONTROL DE CALIDAD DEL SOFTWARE. Garantía de calidad del software
CONTROL DE CALIDAD DEL SOFTWARE Garantía de calidad del software Actividad de protección que se aplica en todo el proceso: Enfoque de administración de calidad Tecnología de Ingeniería del software efectiva
Más detallesFundamentos de Informática E.U.P. Universidad de Sevilla
rea de Arquitectura y Teoría de Computadores Fundamentos de Informática E.U.P. Universidad de Sevilla Capítulo : INTRODUCCIÓN A LA INFORMÁTICA epartamento de Álgebra. INDICE INFORMÁTICA E INGENIERÍA DEFINICIÓN
Más detallesGeneración de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesÁlgebra de Boole. Adición booleana. Multiplicación booleana. Escuela Politécnica Superior
Álgebra de Boole El Álgebra de Boole es una forma muy adecuada para expresar y analizar las operaciones de los circuitos lógicos. Se puede considerar las matemáticas de los sistemas digitales. Operaciones
Más detallesGuí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ÁREA DE ELECTRÓNICA FACULTAD DE INGENIERÍA U.N.C.P.B.A.
Qué es un PLC? Dispositivo electrónico programable por el usuario destinado a gobernar máquinas o procesos lógicos y/o secuenciales inicialmente surgen para implementar funciones lógicas Funciones del
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería
Más detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesPara leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.
CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA
Más detallesCapítulo 5. Álgebra booleana. Continuar
Capítulo 5. Álgebra booleana Continuar Introducción El álgebra booleana fue desarrollada por George Boole a partir del análisis intuición y deducción. En su libro An investigation of the laws of Thought,
Más detallesConceptos 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 detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesMatemáticas Discretas Lógica
Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Lógica Cursos Propedéuticos 2010 Ciencias Computacionales INAOE Lógica undamentos de Lógica Cálculo proposicional Cálculo de predicados
Más detallesPresentación de la materia Historia de las computadoras
de la materia de las computadoras Organización de computadoras Universidad Nacional de Quilmes http://orga.blog.unq.edu.ar Horarios Dos bandas horarias: Banda Clase Aula Horario Docente Matutina Teoría
Más detalles3. Ecuaciones Diferenciales Lineales Homogéneas de Orden Superior con Coeficientes Constantes. Ecuaciones Diferenciales de Segundo Orden
3. Lineales Homogéneas de de Segundo Orden Sabemos que la solución general de una ecuación diferencial lineal homogénea de segundo orden está dada por por lo que se tiene dos soluciones no triviales, en
Más detallesANOTACIONES BÁSICAS SOBRE LÓGICA PROPOSICIONAL FILOSOFÍA 1º BACHILLERATO
Pág. 1 Lógica Proposicional La lógica proposicional es la más antigua y simple de las formas de lógica. Utilizando una representación primitiva del lenguaje, permite representar y manipular aserciones
Más detallesEl 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 detallesManual de Lisp para IACS (Curso 91 92)
Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Manual de Lisp para IACS (Curso 91 92) Sevilla, 1992 Contenido 1 Introducción 1 1.1 Introducción............................
Más detallesTEMA 2: PUERTAS LÓGICAS Y ÁLGEBRA DE CONMUTACIÓN.
Inocente Sánche Ciudad TEMA 2: PUERTAS LÓGICAS Y ÁLGEBRA DE CONMUTACIÓN. 2.. Operaciones lógicas básicas. Las operaciones básicas se definen como suma lógica, o bien operación "OR", se representará con
Más detallesProfesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.
Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes
Más detallesCURSO EXPERTO EXCEL 201 BASICO
CURSO EXPERTO EXCEL 201 BASICO Módulo 1 Tema 1: Conceptos básicos sobre hojas de cálculo... 4 1.1 Qué es una hoja de cálculo?... 4 1.2 Qué es un libro de Excel?... 4 1.3 Cómo está organizada una hoja de
Más detalles