Contenido del curso Fundamentos de Lenguajes de Programación

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

Download "Contenido del curso Fundamentos de Lenguajes de Programación"

Transcripción

1 Contenido del curso Fundamentos de Lenguajes de Programación MC Mireya Tovar Vidal FCC- BUAP Cubículo 5 mtovar@cs.buap.mx Horario de atención: martes 11:00-12:00 Cálculo lambda sin tipos Cálculo lambda con tipos PFC Lenguaje de programación funcional Bibliografía Lambda Calculi with types Henk Barendregt. Handbook of Logic in Computer Science, Volume II. Oxford University Press. Foundations for Programming Languages, J. C. Mitchell, MIT Press, 1996 Evaluación 3 exámenes parciales 60% Tareas y ejercicios 20% Programas y proyecto final 20%

2 Introducción Un lenguaje de programación es un medio para comunicarse con una computadora que proporciona las facilidades necesarias para la programación Imperativos Orientados a objetos Funcional Lógicos Definición de un lenguaje Sintaxis Descripción del conjunto de secuencias de símbolos considerados como programas válidos. Teoría de lenguajes formales bien desarrolladas (Chomsky) Notación BNF Sistema de tipos Propósito: prevenir errores en tiempo de ejecución Análisis de tipos en tiempo de compilación Análisis de tipos en tiempo de ejecución Semántica Descripción del significado de instrucciones y expresiones Formal: axiomática, operacional o denotacional. Introducción En 1936 se introdujeron dos modelos computacionales: Alan Turing inventó la máquina de Turing y la noción de función computable en sus máquinas. Alonzo Church inventó un sistema formal llamado Cálculo-λ y la noción de función computable en su sistema. Los lenguajes imperativos como Pascal, C, etc., así como el lenguaje ensamblador están basados en la máquina de Turing. Los lenguajes funcionales como ML, Miranda, Haskell etc., están basados en el cálculo- λ. Programación funcional Proporcionan muchos recursos expresivos ausentes en otros LP: 1. Funciones como ciudadanos de 1ª clase 2. Sistema de tipos 3. Ausencia de efectos laterales, sin variables globales 4. Evaluación perezosa Los programas funcionales son pequeños y fáciles de mantener Los programas funcionales permiten utilizar técnicas de razonamiento formal La capacidad computacional de los lenguajes funcionales es equivalente a la de la máquina de Turing

3 Calculo lambda Objetivo Introducir el cálculo- λ y mostrar como este sistema captura todas las funciones computables. Sintaxis Un término e se define como: e ::= x (identificador) e 0 e 1 (aplicación) λx. e (abstracción) En una abstracción: x es el argumento e es el cuerpo de la función Ejemplo Función identidad: λx. x El nombre después de λ es el identificador del argumento de esta función. La expresión después del punto es el cuerpo de la definición. Término válido, correspondiente en Java public int id(int x){return x;} Término válido, correspondiente en C: int id(int x){return x;} Asociaciones LMN Se asocia hacía la izquierda ((LM)N) λx. λy. M Se asocia hacia la derecha (λx. (λy. M)) λx. λy. xyz Si M, N son las expresiones M λx.x N y Respectivamente entonces MN = (λx.x) y Y no λx. ( x y ) Una aplicación tiene precedencia sobre una abstracción λx. λy.(( x y) z)

4 Ejercicios Decidir si son términos bien formados y asociar λx.λy. xyλz.z λx.λy.λz.xzyz λx.λy.λz.xz(yz) λx.λy.λz.x(zy)z Más reglas Para simplificar la notación los siguientes términos se tomarán como equivalentes: λx 1.(λx 2.( (λx n.m) )) es lo mismo que λx 1 x 2 x n.m Simplificar: λx.λy. xyλz.z λx.λy.λz.xzyz λx.λy.λz.xz(yz) λx.λy.λz.x(zy)z Expresiones y funciones Expresiones x + y x + 2*y + z Funciones λx. (x+y) λz. (x + 2*y + z) Aplicación (λx. (x+y)) 3 = 3 + y (λz. (x + 2*y + z)) 5 = x + 2*y + 5 Parsing: λx. f (f x) = λx.( f (f (x)) ) Alcance En calculo-λtodos los nombres son locales a las definiciones λx.t : El alcance de x es el término t Una ocurrencia de la variable x se dice que esta acotada cuando está ocurre en el cuerpo t de una abstracción λx.t (λx. y x)(λy. x y) libre acotada libre acotada

5 Variables libres y acotadas En la función λx.x se dice que x esta acotada si sus ocurrencias en el cuerpo de la definición es precedida por λx. Si no es precedida por un λ se llama variable libre. (λx. y x)(λy. x y) libre Variables El conjunto de variables libres se define de manera inductiva como: FV(x)={x} FV(λx.M)= FV(M) -{x} FV(M 1 M 2 )=F V(M 1 ) FV(M 2 ) El conjunto de variables acotadas se define de manera inductiva como: BV(x)= ϕ BV(λx.M)=BV(M) {x} BV(M 1 M 2 )= B V(M 1 ) BV(M 2 ) Ejemplos FV(λx. x (λy.x y z)) = {z} FV(λx. ((λy. y+2) x) + y ) = {y} BV(λx. x (λy.x y z)) = {x, y} BV(λx. ((λy. y+2) x) + y ) = {x, y} Términos cerrados Un término M se llama cerrado si FV(M)= ϕ. En caso contrario el término se conoce como abierto. Note que los conjuntos de variables acotadas y libres no son necesariamente disjuntas; por ejemplo: x (λxy. x)

6 Subtérminos Subtérmino de un término Un subtérmino de un término- es alguna parte del término que esta bien formada de acuerdo a la gramática. El conjunto de subtérminos se puede define de manera inductiva como: Sub:: T P( T) Sub(x)={x} Sub(λx.M)=Sub(M) {(λ x.m)} Sub(M 1 M 2 )=Sub(M 1 ) Sub(M 2 ) {M 1 M 2 } Ejercicios Calcular el conjunto de variables libres, acotadas y subtérminos de las siguientes expresiones λ λx. x(λy.xyz) λx.λy. xyλz.z λx.λy.λz.xzyz λx.λy.λz.xz(yz) λx.λy.λz.x(zy)z

Tema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)

Tema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1) Tema 3: Características de la programación funcional Sesión 5: El paradigma funcional (1) Referencias Capítulo 1.1.5 SICP: [[http://mitpress.mit.edu/sicp/full-text/book/book-z- H-10.html#%_sec_1.1.5][The

Más detalles

Introducción al Cálculo Lambda

Introducción al Cálculo Lambda Introducción al Cálculo Lambda Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Universidad Veracruzana Facultad de Física e Inteligencia Artificial Sebastián Camacho No 5, Xalapa,

Más detalles

1. Computadores y programación

1. 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 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

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS LENGUAJES DE PROGRAMACIÓN

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

Lambda-Cálculo. Mauro Jaskelioff 6/9/2011

Lambda-Cálculo. Mauro Jaskelioff 6/9/2011 Lambda-Cálculo Mauro Jaskelioff 6/9/2011 Origen del λ-cálculo El λ-cálculo fue inventado por Alonzo Church en la década de 1930. Originalmente fue inventado como parte de un sistema formal para modelar

Más detalles

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del

Más detalles

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I Tema 1: Introducción 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 Wesley.

Más detalles

Introducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA

Introducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA Análisis Semántico José M. Castaño Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA Compiladores Análisis Léxico Análisis Sintáctico Análisis Semántico Generación Código Intermedio Optimización

Más detalles

PARADIGMAS DE PROGRAMACIÓN CALCULO LAMBDA CALCULO LAMBDA

PARADIGMAS DE PROGRAMACIÓN CALCULO LAMBDA CALCULO LAMBDA PARADIGMAS DE PROGRAMACIÓN 2006 CALCULO LAMBDA CALCULO LAMBDA El cálculo lambda fue desarrollado por Alonso Church en la década del 30 con el objeto de dar una teoría general de las funciones. El cálculo

Más detalles

Procesadores de Lenguaje

Procesadores 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 detalles

Lambda Cálculo Tipado (1/3)

Lambda Cálculo Tipado (1/3) Lambda Cálculo Tipado (1/3) Eduardo Bonelli Departamento de Computación FCEyN UBA There may, indeed, be other applications of the system other than its use as a logic Alonzo Church, 1932 3 de abril, 2007

Más detalles

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012 Coordinación de Ciencias Computacionales INAOE Teoría de Autómatas y Lenguajes Formales Temario detallado para examen de ingreso 2012 1. Autómatas 1.1. Por qué estudiar la teoría de autómatas? 1.1.1. Introducción

Más detalles

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

Más detalles

Profs. Carlos Pérez y Ricardo Monascal

Profs. Carlos Pérez y Ricardo Monascal TRADUCTORES E INTERPRETADORES Clase 0: Introducción al Curso Quiénes somos? Prof. Carlos Pérez caperez@ldc.usb.ve Prof. Ricardo Monascal rmonascal@ldc.usb.ve Oficina: MYS-228A (Sí, es la misma) Recursos

Más detalles

Nociones Básicas de Sémantica: Semántica Denotacional

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 detalles

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo

Más detalles

Procesadores de lenguaje Tema 1 Introducción a los compiladores

Procesadores de lenguaje Tema 1 Introducción a los compiladores Procesadores de lenguaje Tema 1 Introducción a los compiladores Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen del tema Traductores Estructura

Más detalles

Tema 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 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 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

El λ cálculo (sin tipos y con tipos)

El λ cálculo (sin tipos y con tipos) El λ cálculo (sin tipos y con tipos) Blas Carlos Ruiz Jiménez Pablo Guerrero García Dpto. de Lenguajes y Ciencias de la Computación Dpto. de Matemática Aplicada Universidad de Málaga Pza. El Ejido s/n,

Más detalles

Generación de Código Intermedio

Generació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 detalles

Tema 8: Tipos de datos. Sesión 24: Tipos de datos (1)

Tema 8: Tipos de datos. Sesión 24: Tipos de datos (1) Tema 8: Tipos de datos Sesión 24: Tipos de datos (1) Referencias Programming Languages Pragmatics: Capítulo 7, apartados 7.1 (Type Systems) y 7.2 (Type Checking) Programming in Scala: Capítulo 5 (Basic

Más detalles

1. Cadenas EJERCICIO 1

1. Cadenas EJERCICIO 1 LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada

Más detalles

Tema 1 Programación Funcional

Tema 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 detalles

Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Primer cuatrimestre

Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Primer cuatrimestre Cálculo Lambda - primera parte Paradigmas de Lenguajes de Programación Primer cuatrimestre - 2014 Para qué sirve el cálculo lambda? Provee un modelo de cómputo simple que permite representar todas las

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto 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.

Más detalles

Tema 1: Sintaxis y Semántica de la Lógica Proposicional

Tema 1: Sintaxis y Semántica de la Lógica Proposicional Tema 1: Sintaxis y Semántica de la Lógica Proposicional Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Computabilidad Curso 2010 11 LC, 2010 11 Lógica Proposicional

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

Lenguajes de programación Última modificación 2008/10

Lenguajes de programación Última modificación 2008/10 Lenguajes de programación Última modificación 2008/10 La Torre de Babel (1563) - Pieter Brueghel el Viejo 2008 Güimi (http://guimi.net) Esta obra está bajo una licencia "Reconocimiento-Compartir bajo la

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos 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 detalles

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona

Más detalles

Paradigmas de lenguajes de programación

Paradigmas de lenguajes de programación Departamento de Computación FCEyN UBA A language that doesn t affect the way you think about programming, is not worth knowing Epigrams in Programming, Alan Perlis (primer ganador del Turing Award), ACM

Más detalles

Ejercicios de Lógica Proposicional *

Ejercicios 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 detalles

Fundamentos de lenguajes de programación cuántica

Fundamentos de lenguajes de programación cuántica Fundamentos de lenguajes de programación cuántica Día 1: Introducción a la computación cuántica Alejandro Díaz-Caro Universidad Nacional de Quilmes 22 o Escuela de Verano de Ciencias Informáticas Río Cuarto,

Más detalles

Matemática computable

Matemática computable Conjuntos computables - Combinatoria - Álgebra Antonio Montalbán. U. de Chicago Coloquio Uruguayo de Matemática. Diciembre, 2009 Conjuntos computables - Combinatoria - Álgebra 1 Conjuntos computables 2

Más detalles

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Programación Orientada a Objetos Algoritmos y Programación II Junio, 2004 Las tecnologías de objetos hoy

Más detalles

Tema 1: Sintaxis y semántica de la lógica proposicional

Tema 1: Sintaxis y semántica de la lógica proposicional Lógica informática Curso 2003 04 Tema : Sintaxis y semántica de la lógica proposicional José A. Alonso Jiménez Andrés Cordón Franco Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Alejandro Díaz-Caro. 16 de diciembre de 2007

Alejandro 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 detalles

Tema 4: Definición de funciones

Tema 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 detalles

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco)

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco) Tema 1 Estructuras de datos (Prof. Edgardo A. Franco) Contenido Algoritmia Qué es un algoritmo? Métodos algorítmicos Diagrama de flujo Símbolos utilizados en los diagramas de flujo Reglas para la construcción

Más detalles

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64 Lógica Proposicional IIC1253 IIC1253 Lógica Proposicional 1/64 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos

Más detalles

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado 1. Identificación del curso 1.1 Escuela / Departamento: Ciencias Naturales e Ingeniería 1.3 Programa: 1.2 Código: CN 1.4 Código: FAC-ISI Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas

Más detalles

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

Más detalles

Programación estructurada (Lenguajes de programación)

Programación estructurada (Lenguajes de programación) Programación estructurada (Lenguajes de programación) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I. Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

INICIACIÓN A LA PROGRAMACIÓN 1ª parte TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos Ficha Técnica Titulación: Grado en Ingeniería Informática Plan BOE: BOE número 108 de 6 de mayo de 2015 Asignatura: Módulo: Programación y Estructuras de Datos Curso: 1º Créditos ECTS: 6 Tipo de asignatura:

Más detalles

Algoritmos y Lenguajes de Programación

Algoritmos y Lenguajes de Programación Introducción y horario Algoritmos y Lenguajes de Programación 543242-2 mariomedina@udec.cl Código: 543242-2 Carrera: Ing. Civil Electrónica Clases 7 de Marzo a 28 de Junio Horario clases Martes, 9:10 a

Más detalles

Lenguajes, Gramáticas y Autómatas Conceptos

Lenguajes, Gramáticas y Autómatas Conceptos Lenguajes, Gramáticas y Autómatas Conceptos Departamento de Informática e Ingeniería de Sistemas C.P.S. Universidad de Zaragoza Última revisión: Febrero. 2004 11/02/2004 1 Índice Alfabetos, palabras y

Más detalles

COMPILADORES E INTERPRETES

COMPILADORES E INTERPRETES COMPILADORES E INTERPRETES Análisis semántico: Estudia el significado de la sentencia Procesadores de lenguaje: Convierte un programa fuente hecho en un lenguaje fuente a un programa objeto hecho en un

Más detalles

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55 Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2

Más detalles

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016 Verificación de programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2016 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 14 Verificación automática de programas

Más detalles

CIENCIAS FORMALES CIENCIAS FÁCTICAS

CIENCIAS FORMALES CIENCIAS FÁCTICAS UNA CLASIFICACIÓN DE LAS CIENCIAS CIENCIAS FORMALES CIENCIAS FÁCTICAS CIENCIAS FORMALES MATEMÁTICA LÓGICA CIENCIAS FÁCTICAS FÍSICA BIOLOGÍA QUÍMICA CIENCIAS SOCIALES OTRAS CIENCIAS FORMALES VOCABULARIO

Más detalles

Tema 12: Analizadores sintácticos funcionales

Tema 12: Analizadores sintácticos funcionales Tema 12: Analizadores sintácticos funcionales Informática (2014 15) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 37

Más detalles

Tema 11: Analizadores sintácticos funcionales

Tema 11: Analizadores sintácticos funcionales Tema 11: Analizadores sintácticos funcionales 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

Conceptos de Algoritmos, Datos y Programas

Conceptos de Algoritmos, Datos y Programas Conceptos de Algoritmos, Datos y Programas Año 2015 Carreras: Lic. en Informática P2015 Lic. en Sistemas P2015 APU P2015 Año: 1 Duración: Cuatrimestral Coordinador: Ing. Armando De Giusti Profesores: Esp.

Más detalles

LP - Lenguajes de Programación

LP - Lenguajes de Programación Unidad responsable: 270 - FIB - Facultad de Informática de Barcelona Unidad que imparte: 723 - CS - Departamento de Ciencias de la Computación Curso: Titulación: 2016 GRADO EN INGENIERÍA INFORMÁTICA (Plan

Más detalles

INSTITUTO POLITÉCNICO NACIONAL

INSTITUTO POLITÉCNICO NACIONAL PROGRAMA SINTÉTICO UNIDAD ACADÉMICA: ESCUELA SUPERIOR DE CÓMPUTO PROGRAMA Ingeniero en Sistemas Computacionales ACADÉMICO: UNIDAD DE APRENDIZAJE: Teoría Computacional NIVEL: II OBJETIVO GENERAL: Implementar

Más detalles

CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones

CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones CONTENIDO 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados 3.- Búsqueda de soluciones 4.- Lenguajes de IA e Introducción a Sistemas Expertos 1.- Introducción a la Inteligencia

Más detalles

Examen de Procesadores de Lenguaje

Examen de Procesadores de Lenguaje Apellidos: Nombre: Dni: Examen de Procesadores de Lenguaje Junio de 2007 (2 horas y 45 minutos) Instrucciones Entrega esta hoja, rellenada con tus datos, junto a tu examen cuando lo entregues. Ten en cuenta

Más detalles

PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO

PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO FACULTAD DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE CIENCIAS DE COMPUTADORAS Y MATEMÁTICAS PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO

Más detalles

SYLLABUS de la Asignatura. Programación INF1201

SYLLABUS de la Asignatura. Programación INF1201 Sazie 2325, 3er Piso, Santiago +56 2 661 8256 SYLLABUS de la Asignatura Programación INF1201 1. Descripción de la asignatura El estudiante aprenderá a analizar un problema y plantear una solución racionalmente,

Más detalles

ESCUELA: UNIVERSIDAD DEL ISTMO

ESCUELA: UNIVERSIDAD DEL ISTMO 1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno

Más detalles

Compiladores: 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. 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 detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Semántica: principales usos. Semántica: principales enfoques. Semántica Operacional. Sintaxis abstracta de un lenguaje (sujeto) Semántica Operacional

Semántica: principales usos. Semántica: principales enfoques. Semántica Operacional. Sintaxis abstracta de un lenguaje (sujeto) Semántica Operacional Semántica: principales enfoques Semántica Operacional Se define el significado mediante una máquina abstracta (con estados) y secuencias de cómputos sobre dicha máquina Semántica Denotacional El significado

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software: SOFTWARE Software es un término informático que hace referencia a un programa o conjunto de programas de cómputo que incluye datos, procedimientos y pautas que permiten realizar distintas tareas en un

Más detalles

Fundamentos de lenguajes de programación cuántica

Fundamentos de lenguajes de programación cuántica Fundamentos de lenguajes de programación cuántica Día 5: Control y datos cuánticos Alejandro Díaz-Caro Universidad Nacional de Quilmes 22 o Escuela de Verano de Ciencias Informáticas Río Cuarto, Córdoba

Más detalles

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Teoría de la computación Ingeniería en Sistemas Computacionales SCM - 0434 3-2-8

Más detalles

LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN LENGUAJES DE PROGRAMACIÓN 1.- Preliminares 2.- Paradigmas de Programación. 3.- Lenguajes de Programación Lenguajes de Programación - Preliminares 1 Preliminares Programar = Plantear solución a un problema

Más detalles

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas CÓDIGO ASIGNATURA 1129 DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas ASIGNATURA: Autómatas y Lenguajes Formales Ingeniería en Informática Año: 5 Cuatri: 1 1. OBJETIVOS Dar a los alumnos conocimientos

Más detalles

Curso de Java Introducción a la Programación I

Curso de Java Introducción a la Programación I Curso de Java Introducción a la Programación I Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Sintaxis Java 2 Salida de datos 3 Entrada de datos Índice 1 Sintaxis Java

Más detalles

Cuales son los 6 lenguajes de programacion mas usados actualmente. Cuales son los 6 lenguajes de programación mas usados actualmente.

Cuales son los 6 lenguajes de programacion mas usados actualmente. Cuales son los 6 lenguajes de programación mas usados actualmente. Cuales son los 6 lenguajes de programacion mas usados actualmente Cuales son los 6 lenguajes de programación mas usados actualmente. Java Es un lenguaje de programación con el cual podemos realizar cualquier

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

Curso. Lingüística Aplicada III (Procesamiento inteligente de textos)

Curso. Lingüística Aplicada III (Procesamiento inteligente de textos) Curso Lingüística Aplicada III (Procesamiento inteligente de textos) DURACIÓN: 80 horas AUTOR DEL PROGRAMA: Dr. Alexander Gelbukh, Dr. Grigori Sidorov OBJETIVO GENERAL Describir que tipos de sistemas de

Más detalles

Técnicas de Programación

Técnicas de Programación Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia

Más detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: 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 / 32 IM Tema 3: Tipos y clases

Más detalles

Tema 1: Agentes inteligentes: Representación y razonamiento

Tema 1: Agentes inteligentes: Representación y razonamiento Inteligencia Artificial 2 Curso 2000 0 Tema : Agentes inteligentes: Representación y razonamiento José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Francisco J. Martín Mateos Dpto. de Ciencias de la Computación

Más detalles

Programación para Ingeniería Eléctrica

Programación para Ingeniería Eléctrica Programación para Ingeniería Eléctrica Ignacio Ramírez Instituto de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de la República. Montevideo, Uruguay. Montevideo, 2015 Agenda 1 Introducción

Más detalles

Tema 3: Tipos y clases

Tema 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 detalles

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN:

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN: Tema 3 Expresiones y Lenguajes Regulares Dr Luis A Pineda ISBN: 970-32-2972-7 Sintaxis y Semántica En us uso normal, las expresiones lingüística hacen referencia a objetos individuales, así como a sus

Más detalles

Tema 3: Tipos y clases

Tema 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 detalles

Introducción a la Lógica y la Computación

Introducció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 12 de Noviembre de 2014 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/11 Lenguajes Regulares

Más detalles

Tema 6: Funciones recursivas

Tema 6: Funciones recursivas Tema 6: Funciones recursivas 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 6: Funciones

Más detalles

Tema 1. Introducción

Tema 1. Introducción Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1. Definiciones. 1.3. Lenguajes, Gramáticas y Autómatas 2 Índice 1.1. Definiciones.

Más detalles

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Axiomática

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Axiomática LÓGICA FORMAL TEORIAS DE PRIMER ORDEN Francisco Bueno Pedro López Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Teoría de Primer Orden 1 Formalmente,

Más detalles

Métodos de Inteligencia Artificial

Métodos de Inteligencia Artificial Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) esucar@inaoep.mx ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica

Más detalles

FACULTAD DE INGENIERÍA INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE: ANÁLISIS DE LOS LENGUAJES DE PROGRAMACIÓN.

FACULTAD DE INGENIERÍA INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE: ANÁLISIS DE LOS LENGUAJES DE PROGRAMACIÓN. FACULTAD DE INGENIERÍA INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE: ANÁLISIS DE LOS LENGUAJES DE PROGRAMACIÓN. Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Metodología y Tecnología de la Programación Curso 2008/09 Temario 1.1. Resolución de Problemas y Algoritmos 1.2. Concepto de Programa 1.3. Paradigmas de Programación 1.4. Lenguaje de Especificación en

Más detalles

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1 Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Lógica Proposicional - clase 1 Lenguaje de lógica proposicional, semántica, tautología, consecuencia semántica, conjunto satisfacible,

Más detalles

Lógica proposicional. Ivan Olmos Pineda

Lógica proposicional. Ivan Olmos Pineda Lógica proposicional Ivan Olmos Pineda Introducción Originalmente, la lógica trataba con argumentos en el lenguaje natural es el siguiente argumento válido? Todos los hombres son mortales Sócrates es hombre

Más detalles

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

PROGRAMA 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 detalles