Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Primer cuatrimestre
|
|
- Juan José Miranda Botella
- hace 7 años
- Vistas:
Transcripción
1 Cálculo Lambda - primera parte Paradigmas de Lenguajes de Programación Primer cuatrimestre
2 Para qué sirve el cálculo lambda? Provee un modelo de cómputo simple que permite representar todas las funciones computables. Sirve como marco formal para estudiar propiedades de procesos de cómputo, programas, lenguajes... Facilita la realización de pruebas de concepto antes de incorporar extensiones a lenguajes de programación....etc. (ver bibliografía).
3 Empecemos con un ejemplo (λx : Bool.λy : Bool Bool.y(yx))((λz : Bool.true)false)(λw : Bool.w) Qué significa esto? Tiene sentido? Representa un valor? Cómo nos damos cuenta?
4 Componentes del cálculo lambda (y de todas sus extensiones) Para poder modelar formalmente cualquier aspecto de la programación en este lenguaje, necesitamos definir: Sintaxis de los tipos Sintaxis de los términos Reglas de tipado Qué consideramos como valores Reglas de semántica Todo esto lo iremos viendo a lo largo de esta clase (y también en la siguiente, para nuevas extensiones).
5 Repasemos los primeros tipos y términos Las expresiones de tipos (o simplemente tipos) de λ b son σ ::= Bool σ τ Sea X un conjunto infinito enumerable de variables y x X. Los términos de λ b están dados por M ::= x true false if M then P else Q λx : σ.m M N
6 Cuáles de estas expresiones son términos? λx : Bool Bool.(x true) (λx : Bool Bool.(x true))(λy : Bool.y) if x then y else λz : Bool.z x(λy : Bool.y) λx : Bool λx : Bool.y true false if true then λx : Bool.x
7 Convenciones Convención de paréntesis Convención de limpieza Poner paréntesis en wzλx : (σ σ) τ τ.xλy : σ.y
8 Términos con y sin sentido true false es un término, aunque medio sospechoso. Intuitivamente: qué querríamos obtener al evaluarlo? x x también es un término. Intuitivamente: qué tipo debería tener? Moraleja: aun sobre términos válidos caben preguntas como... En nuestro contexto / para nuestros fines, esto tiene sentido? Sería deseable que tenga sentido? Qué tipo debería tener? Debería tener tipo? Podría tener alguno? De este filtro se ocupará nuestro sistema de tipado. ( Entre otras cosas! Más detalles en la tercera teórica de cálculo lambda, cuando veamos inferencia de tipos.)
9 Axiomas y reglas de tipado x : σ Γ (T-Var) Γ x : σ (T-True) Γ true : Bool (T-False) Γ false : Bool Γ M : Bool Γ P : σ Γ Q : σ (T-If) Γ if M then P else Q : σ Γ, x : σ M : τ Γ λx : σ.m : σ τ (T-Abs) Γ M : σ τ Γ M N : τ Γ N : σ (T-App)
10 Ejercicio Demostrar la validez del siguiente juicio de tipado: (λx : Bool.λy : Bool.if x then true else y) false : Bool Bool...Y ahora tipemos nuestro primer ejemplo: (λx : Bool.λy : Bool Bool.y(yx))((λz : Bool.true)false)(λw : Bool.w):? Podemos hacerlo, ya que las anotaciones de tipos nos dicen de qué tipo es el argumento de cada función.
11 Semántica operacional (1/3) Valores V ::= true false λx : σ.m Cuáles de estos términos son valores? if true then λx : Bool.x else λx : Bool.false if x then false else true λx : Bool.false (λx : Bool.x)false λx : Bool.(λy : Bool.x)false λx : Bool.x true
12 Semántica operacional (2/3) Reglas de evaluación en un paso (1/2) (E-IfTrue) if true then M 2 else M 3 M 2 (E-IfFalse) if false then M 2 else M 3 M 3 M 1 M 1 if M 1 then M 2 else M 3 if M 1 then M 2 else M 3 (E-If)
13 Semántica operacional (3/3) Reglas de evaluación en un paso (2/2) M 1 M 1 M 1 M 2 M 1 M 2 (E-App1 o µ) M 2 M 2 (E-App2 o ν) V 1 M 2 V 1 M 2 (E-AppAbs o β) (λx : σ.m) V M{x V }
14 Ejercicios Volvamos a los términos que vimos antes: (λx : Bool.λy : Bool.if x then true else y) false (λx : Bool.λy : Bool Bool.y(yx))((λz : Bool.true)false)(λw : Bool.w) Cuál es el resultado de evaluarlos? Y este otro? if (λb : Bool.true) false then (λx : Bool.x) true else (λy : Bool.y) false
15 Simplificando la escritura Podemos definir macros para expresiones que vayamos a utilizar con frecuencia. Por ejemplo: and def = λx : Bool.λy : Bool.if x then y else false Qué otras macros podemos definir?
16 Un nuevo tipo: los Naturales σ ::= Bool σ ρ Nat M ::=... 0 succ(m) pred(m) iszero(m)
17 Tipado (T-Zero) Γ 0 : Nat Γ M : Nat Γ M : Nat (T-Succ) (T-Pred) Γ succ(m) : Nat Γ pred(m) : Nat Γ M : Nat (T-IsZero) Γ iszero(m) : Bool
18 Probemos... pred(succ(0)) : Nat {x : Nat} iszero(pred(succ(x))) : Bool
19 Semántica operacional (1/2) Valores V ::=... n donde n abrevia succ n (0). Reglas de evaluación en un paso (1/2) M 1 M 1 (E-Succ) succ(m 1 ) succ(m 1) (E-PredZero) pred(0) 0 (E-PredSucc) pred(succ(n)) n M 1 M 1 (E-Pred) pred(m 1 ) pred(m 1)
20 Semántica operacional (2/2) Reglas de evaluación en un paso (2/2) (E-IsZeroZero) iszero(0) true (E-IsZeroSucc) iszero(succ(n)) false M 1 M 1 (E-IsZero) iszero(m 1 ) iszero(m 1)
21 ...Y ahora evaluemos (λx : Nat. iszero(pred(succ(x)))) 0 Y si en vez de 0 dijera succ(0)? O succ(succ(0))? Cuál es la forma normal de succ(pred(pred(succ(0))))? Y la de succ(pred(pred(succ(x))))?
22 Recursión y punto fijo Veamos esta extensión: M ::=... fix M Γ M : σ 1 σ 1 (T-Fix) Γ fix M : σ 1 M 1 M 1 (E-Fix) fix M 1 fix M 1 (E-FixBeta) fix (λx : σ.m) M{x fix (λx : σ.m)} (El conjunto de tipos y el de valores no se modifican.)
23 Recursión como punto fijo Qué tipo tiene el siguiente término? Qué representa? M = (λx : Nat. fix(λs : Nat Nat.λy : Nat.if iszero(y) then x else succ(s pred(y)))) Verifiquemos: M : Nat Nat Nat...Y ahora evaluemos: M 3 2
24 Definiendo funciones recursivas Podemos definir la suma como macro. Por ejemplo: suma def = (λx : Nat. fix(λs : Nat Nat.λy : Nat.if iszero(y) then x else succ(s pred(y)))) (No es la única definición posible.) Ejercicio: definir el producto como macro usando suma y fix. Una solución posible: producto def = λx : Nat. fix (λp : Nat Nat.λy : Nat.if iszero(y) then 0 else suma x (p pred(y)))
25 En la próxima clase... Ejemplos rápidos y sofisticados Cómo definir nuevas extensiones
26 Continuará...????????????? (λx : clase.fin x) (Cálculo Lambda I )
Nociones 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 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 detallesTrabajo Práctico Final
Trabajo Práctico Final Paradigmas de Lenguajes de Programación (1er cuatrimestre de 2009) Integrante LU Correo electrónico Castillo, Gonzalo 164/06 gonzalocastillo 086@hotmail.com Martínez, Federico 17/06
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 detalles13.3. MT para reconocer lenguajes
13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática
Más detallesLenguajes y Gramáticas
Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas
Más detallesModelos Estocásticos I Tercer Examen Parcial Respuestas
Modelos Estocásticos I Tercer Examen Parcial Respuestas. a Cuál es la diferencia entre un estado recurrente positivo y uno recurrente nulo? Cómo se define el período de un estado? Demuestre que si el estado
Más detallesExpresiones Regulares y Derivadas Formales
y Derivadas Formales Las Derivadas Sucesivas. Universidad de Cantabria Esquema 1 2 3 Derivadas Sucesivas Recordemos que los lenguajes de los prefijos dan información sobre los lenguajes. Derivadas Sucesivas
Más detallesConjunto R 3 y operaciones lineales en R 3
Conjunto R 3 y operaciones lineales en R 3 Objetivos. Definir el conjunto R 3 y operaciones lineales en R 3. Requisitos. Conjunto de los números reales R, propiedades de las operaciones aritméticas en
Más detallesTeoría de la Computabilidad
Teoría de la Computabilidad Módulo 7: Lenguajes sensibles al contexto 2016 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Es este programa en Pascal sintácticamente
Más detallesFundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
Más detallesRESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES
UNIDD 4 RESOLUCIÓN DE SISTEMS MEDINTE DETERMINNTES Página 00 Resolución de sistemas mediante determinantes x y Resuelve, aplicando x = e y =, los siguientes sistemas de ecuaciones: x 5y = 7 5x + 4y = 6x
Más detallesNota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
Más detallesAmpliación Matemática Discreta. Justo Peralta López
Justo Peralta López UNIVERSIDAD DE ALMERíA DEPARTAMENTO DE ÁGEBRA Y ANÁLISIS MATEMÁTICO 1 Introducción 2 Definición semántica de las proposiciones 3 Diagrama de valores de certeza 4 Evaluación de fórmulas.
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 detallesInducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática
Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx
Más detallesGuía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
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 detallesTema: Autómata de Pila
Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas
Más detallesProblemas de Espacios Vectoriales
Problemas de Espacios Vectoriales 1. Qué condiciones tiene que cumplir un súbconjunto no vacío de un espacio vectorial para que sea un subespacio vectorial de este? Pon un ejemplo. Sean E un espacio vectorial
Más detallesEspacios Vectoriales
Leandro Marín Octubre 2010 Índice Definición y Ejemplos Paramétricas vs. Impĺıcitas Bases y Coordenadas Para definir un espacio vectorial tenemos que empezar determinando un cuerpo sobre el que esté definido
Más detallesTema 9: Cálculo Deductivo
Facultad de Informática Grado en Ingeniería Informática Lógica PARTE 2: LÓGICA DE PRIMER ORDEN Tema 9: Cálculo Deductivo Profesor: Javier Bajo jbajo@fi.upm.es Madrid, España 24/10/2012 Introducción a la
Más detallesCapítulo 4. Lógica matemática. Continuar
Capítulo 4. Lógica matemática Continuar Introducción La lógica estudia la forma del razonamiento, es una disciplina que por medio de reglas y técnicas determina si un teorema es falso o verdadero, además
Más detallesTema 1 Programación Funcional
Tema 1 Programación Funcional Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica Tema de Andalucía)
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 detallesJUNIO Bloque A
Selectividad Junio 009 JUNIO 009 Bloque A 1.- Estudia el siguiente sistema en función del parámetro a. Resuélvelo siempre que sea posible, dejando las soluciones en función de parámetros si fuera necesario.
Más detallesEstatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Más detallesCompiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en
Más detallesTeorema Central del Límite (1)
Teorema Central del Límite (1) Definición. Cualquier cantidad calculada a partir de las observaciones de una muestra se llama estadístico. La distribución de los valores que puede tomar un estadístico
Más detallesMMAF: Espacios normados y espacios de Banach
MMAF: Espacios normados y espacios de Banach Licenciatura en Estadística R. Álvarez-Nodarse Universidad de Sevilla Curso 2011/2012 Espacios vectoriales Definición Sea V un conjunto de elementos sobre el
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 detallesMISIÓN UNIVERSIDAD DEL ISTMO VICERRECTORIA ACADÉMICA PROGRAMA ANALÍTICO
1. DATOS GENERALES UNIVERSIDAD DEL ISTMO VICERRECTORIA ACADÉMICA PROGRAMA ANALÍTICO CARRERA LICENCIATURA EN ADMINISTRACIÓN DE SISTEMAS ASIGNATURA PROGRAMACION II ABREVIATURA SIS CÓDIGO 0092 PRERREQUISITOS
Más detallesEjemplo de Diseño. Algoritmos y Estructuras de Datos II. Departamento de Computación FCEyN UBA
Ejemplo de Diseño Algoritmos y Estructuras de Datos II Departamento de Computación FCEyN UBA Qué significa elegir estructuras de datos? En la etapa de especificación nos ocupamos de describir 'qué' queremos
Más detallesNÚMEROS COMPLEJOS: C
NÚMEROS COMPLEJOS: C Alejandro Lugon 21 de mayo de 2010 Resumen Este es un pequeño estudio de los números complejos con el objetivo de poder usar las técnicas de solución de ecuaciones y sistemas diferenciales
Más detallesObjetivo: Construir un programa integrando sentencias de decisión MARCO TEÓRICO
Pagina 1 de 6 Objetivo: Construir un programa integrando sentencias de decisión MARCO TEÓRICO Objetos y Propiedades Los formularios y los distintos tipos de controles son entidades genéricas de las que
Más detallesMacros en Lisp. 4.1. Cómo funcionan las macros?
Capítulo 4 Macros en Lisp Resumen Las macros en Lisp permiten al programador definir operadores que están implementados por transformación. La definición de una macro es esencialmente una función que genera
Más detalles8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Más detalles2 INTRODUCCIÓN A LISP
2 INTRODUCCIÓN A LISP El objetivo de este capítulo es que puedan programar en Lisp tan pronto como sea posible Al final de la misma, conocerán lo suficiente de Lisp como para comenzar a escribir sus propios
Más detallesEspacios Vectoriales
Espacios Vectoriales Espacios Vectoriales Verónica Briceño V. noviembre 2013 Verónica Briceño V. () Espacios Vectoriales noviembre 2013 1 / 47 En esta Presentación... En esta Presentación veremos: Espacios
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 detallesAnexo I. Profesorado en Matemática/Profesorado en Computación (Plan 1998) Prácticos: 4 horas semanales Teórico-prácticos:
1 Corresponde al Anexo I de la Resolución N 182/05 Anexo I DEPARTAMENTO: Matemática CARRERA/S - PLAN/ES: Profesorado en Matemática/Profesorado en Computación (Plan 1998) CURSO: Primero REGIMEN: Cuatrimestral
Más detallesEJERCICIOS del TEMA 3: Lenguajes independientes del contexto
EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )
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 detallesTipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S
Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,
Más detallesElección de estructuras
Elección de estructuras Algoritmos y Estructuras de Datos 2 Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 2 de mayo de 2016 Repaso: Qué significa elegir
Más detallesCompiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
Más detalles$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Más detallesReceptor de Correlación. Sistemas de Comunicación
Receptor de Correlación Sistemas de Comunicación Facundo Mémoli * -Versión 2.- mayo, 22 * memoli@iie.edu.uy Índice. Introducción 3 2. Hipótesis y Planteo del Problema 3 3. Procedimiento 4 3.. Hipótesis
Más detallesAlejandro Díaz-Caro. 16 de diciembre de 2007
(de André van Tonder [vt04]) Departamento de Ciencias de la Computación Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario 16 de diciembre de 2007 Contenido de la presentación
Más detallesPaso 1: Autómata. A 1 sin estados inútiles, que reconoce el lenguaje denotado por a a* b*
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SEGUNDO CURSO, SEGUNDO CUATRIMESTRE TEORÍA DE AUTÓMATAS
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo
INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN Métodos Numéricos 2008 - Carlos Zotelo Introducción a Fortran 77 / 90 1. El lenguaje Fortran 77 / 90 2. Tipos de datos básicos 3. Constantes y variables 4. Entrada
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesVariables aleatorias múltiples
Chapter 4 Variables aleatorias múltiples 4.. Distribución conjunta y marginal Definición 4.. Un vector aleatorio n-dimensional es una función que va de un espacio muestral S a un espacio euclediano n-dimensional
Más detallesCiclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL
Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos
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 detallesEl Autómata con Pila: Transiciones
El Autómata con Pila: Transiciones El Espacio de Configuraciones Universidad de Cantabria Esquema Introducción 1 Introducción 2 3 Transiciones Necesitamos ahora definir, paso por paso, como se comporta
Más detallesControl de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Más detallesIntroducción a la Lógica
Tema 0 Introducción a la Lógica En cualquier disciplina científica se necesita distinguir entre argumentos válidos y no válidos. Para ello, se utilizan, a menudo sin saberlo, las reglas de la lógica. Aquí
Más detalles(Quinta clase: Ejemplos de producto. Coproducto) Recordemos que se dijo que el diagrama
22 (Quinta clase: Ejemplos de producto. Coproducto) Recordemos que se dijo que el diarama π 1 π 2 es un producto de los objetos y si para todo diarama de la orma existe una única lecha h tal que el diarama
Más detallesELEMENTOS DE GEOMETRÍA ANALÍTICA
Capítulo 3 ELEMENTOS DE GEOMETRÍA ANALÍTICA 3.1. Introducción: La Geometría Analítica es el estudio de figuras o cuerpos geométricos mediante técnicas básicas de análisis matemático y del álgebra en un
Más detallesTema 6: Teoría Semántica
Tema 6: Teoría Semántica Sintáxis Lenguaje de de las las proposiciones Lenguaje de de los los predicados Semántica Valores Valores de de verdad verdad Tablas Tablas de de verdad verdad Tautologías Satisfacibilidad
Más detallesInterpretación y Argumentación Jurídica
Interpretación y Argumentación Jurídica INTERPRETACIÓN Y ARGUMENTACIÓN JURÍDICA 1 Sesión No. 10 Nombre: La Argumentación Jurídica Contextualización Como ya se ha visto, un argumento es una afirmación que
Más detallesGuía 2: Funciones, listas, recursión e inducción
Introducción a los Algoritmos - 2do cuatrimestre 2016 Guía 2: Funciones, listas, recursión e inducción El objetivo de los siguientes ejercicios es continuar aprendiendo programación funcional, es decir,
Más detallesTeoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014
Teoría de Lenguajes Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014 aterial compilado por el Profesor Julio Jacobo, a lo largo de distintas ediciones
Más detallesLógica Matemática, Sistemas Formales, Cláusulas de Horn
Lógica Matemática, Sistemas Formales, Cláusulas de Horn Lic. José Manuel Alvarado La lógica se ocupa de las argumentaciones válidas. Las argumentaciones ocurren cuando se quiere justificar una proposición
Más detallesMatrices, determinantes y sistemas lineales
UNIVERSIDAD DE MURCIA Departamento de Matemáticas Óptica y Optometría Relación de Problemas n o 5 Curso 006-007 Matrices, determinantes y sistemas lineales 8. Dadas las matrices A y B siguientes, calcule
Más detallesTeoría de colas I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12
Teoría de colas I Prof. José Niño Mora Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Esquema Teoría de colas Ejemplo: un centro de atención telefónica (call center) Tasa de llegada y
Más detallesÍNDICE PRIMERA PARTE METODOLOGÍA JURÍDICA
ÍNDICE INTRODUCCIÓN... 15 PRIMERA PARTE METODOLOGÍA JURÍDICA INTRODUCCIÓN... 21 CAPÍTULO I. LA APLICACIÓN DEL DERECHO. CASOS FÁCILES, CASOS DIFÍCILES Y JUSTIFICACIÓN DE LA RESPUESTA... 25 1. INTRODUCCIÓN...
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 detallesRepaso de Lógica de Primer Orden
Repaso de Lógica de Primer Orden IIC3260 IIC3260 Repaso de Lógica de Primer Orden 1 / 29 Lógica de primer orden: Vocabulario Una fórmula en lógica de primer orden está definida sobre algunas constantes
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 detallesTaller: Introducción a las Relaciones de Recurrencia.
Taller: Introducción a las Relaciones de Recurrencia. Déboli Alberto. Departamento de Matemática. F.C.E. y N. Universidad de Buenos Aires. Semana de la Enseñanza de la Ciencia. Buenos Aires 15 de julio
Más detallesMay 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN
May 4, 2012 1. Optimización Sin Restricciones En toda esta sección D denota un subconjunto abierto de R n. 1.1. Condiciones Necesarias de Primer Orden. Proposición 1.1. Sea f : D R diferenciable. Si p
Más detallesGrupos libres. Presentaciones.
S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad
Más detallesIntroducción a los códigos compresores
Introducción a los códigos compresores Parte I de la Lección 2, Compresores sin pérdidas, de CTI Ramiro Moreno Chiral Dpt. Matemàtica (UdL) Febrero de 2010 Ramiro Moreno (Matemàtica, UdL) Introducción
Más detallesNano Taller de Python
Charla 5: Programación Funcional Royal Institute of Technology (KTH), Estocolmo, Suecia Grupo de Nanomateriales (GNM), Santiago, Chile 13 de enero 2009, de 13:00 a 14:00 Parte I Programación
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 detallesALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.
ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es
Más detallesProcesadores de Lenguaje
Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales
Más detallesUNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programació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 detallesTodo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Más detallesPROGRAMACIÓN LÓGICA INTRODUCCIÓN. Juan Juárez Fuentes
PROGRAMACIÓN LÓGICA INTRODUCCIÓN Juan Juárez Fuentes 1 Trabajo propuesto en 1970 Cómo programar un sistema como el siguiente? Usuario> Los gatos matan ratones. Usuario> Tom es un gato al que no le gustan
Más detallesÍndice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción
Curso 0: Matemáticas y sus Aplicaciones Tema 5. Lógica y Formalismo Matemático Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Proposiciones y Conectores Lógicos 2 Tablas de Verdad
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 detallesSeries. Capítulo Introducción. Definición 4.1 Sea (x n ) n=1 una sucesión de números reales. Para cada n N. S n = x k = x 1 + x x n.
Capítulo 4 Series 4 Introducción Definición 4 Sea (x n ) n= una sucesión de números reales Para cada n N definimos n S n = x k = x + x 2 + + x n k= La sucesión (S n ) n se conoce como la serie infinita
Más detallesÓrdenes de la convergencia de sucesiones. Condiciones de la convergencia lineal y cuadrática del método de iteración simple
Órdenes de la convergencia de sucesiones. Condiciones de la convergencia lineal y cuadrática del método de iteración simple Estos apuntes están redactados por Maria de los Angeles Isidro Pérez y Egor Maximenko.
Más detallesAPUNTES PARA LENGUAJES Y COMPILADORES
APUNTES PARA LENGUAJES Y COMPILADORES Cuando se define un lenguaje de programación, se determina su sintaxis y su semántica La sintaxis se refiere a las notaciones necesarias para escribir programas, y
Más detallesOPTIMIZACIÓN VECTORIAL
OPTIMIZACIÓN VECTORIAL Métodos de Búsqueda Directa Utilizan sólo valores de la función Métodos del Gradiente Métodos de Segundo Orden Requieren valores aproimados de la primera derivada de f) Además de
Más detallesAlgoritmos glotones. mat-151
Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente
Más detallesIntroduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science
Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias Emma Rollón Departament of Computer Science Ejemplo 1: recorrido con recorrido Input: La entrada consiste en un número
Más detallesEjercicios de Lógica Proposicional *
Ejercicios de Lógica Proposicional * FernandoRVelazquezQ@gmail.com Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos
Más detallesUNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia
Más detallesA1.- Determina a y b sabiendo que el sistema de ecuaciones. x + 3y +z = 1 -x + y +2z = -1 ax + by + z = 4 tiene, al menos, dos soluciones distintas.
A1.- Determina a y b sabiendo que el sistema de ecuaciones x + 3y +z = 1 -x + y +z = -1 ax + by + z = 4 tiene, al menos, dos soluciones distintas. Para que el sistema tenga, al menos, dos soluciones distintas
Más detallesEquivalencia Entre PDA y CFL
Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede
Más detallesdt Podemos verificar que la velocidad definida de esta forma no transforma como un vector bajo una T.L. En clases mostramos que el intervalo
1 Cuadrivectores Hasta ahora hemos hablado de las transformaciones de Lorentz, y cómo estas afectan tanto a las coordenadas espaciales como al tiempo. El vector que define un punto en el espacio-tiempo
Más detallesEscenas de episodios anteriores
Clase 16/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Escenas de episodios anteriores objetivo: estudiar formalmente el concepto de demostración matemática. caso de estudio: lenguaje
Más detallesEl programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detalles