Sintaxis y Semántica del Lenguaje. Gramáticas

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

Download "Sintaxis y Semántica del Lenguaje. Gramáticas"

Transcripción

1 Gramáticas La tarea de proveer una descripción bien concisa y entendible de un lenguaje de programación es difícil pero esencial para el éxito de un lenguaje. Uno de los problemas en describir un lenguaje es la diversidad de gente que debe comprender esas descripciones. Las personas que implementan obviamente deben ser capaces de determinar cómo se forman las expresiones, sentencias y unidades de programas y también el orden de ejecución de los mismos. La dificultad del trabajo que tiene esta gente (los implementadores) está determinado en parte por la claridad y complejidad de las descripciones del lenguaje. La sintaxis de un lenguaje de programación describe la forma correcta en la cual las sentencias, expresiones y unidades de programa se deben escribir, mientras que la semántica denota el significado de esas sentencias, expresiones y unidades de programa. Por ejemplo la sintaxis de una sentencia Pascal if then es: if <condición> then <sentencia> La semántica de esta sentencia es que si el valor actual de la condición es verdadero, se ejecutará <sentencia>. Describir sintaxis es más fácil que describir semántica, ya que existen notaciones aceptadas universalmente para la descripción de sintaxis y no así de semánticas. En la definición de un lenguaje de programación la sintaxis usualmente se expresa en BNF (Backus- Naur Form) y la semántica está expresada en lenguaje natural (español, inglés, etc). BNF es un ejemplo de un metalenguaje, es decir, un lenguaje usado para definir otros lenguajes. Algol 60 fue el primer lenguaje que utilizó BNF para su descripción sintáctica. Una gramática consiste de un conjunto de no-terminales, terminales y una serie de reglas de producción. Un no-terminal está definido en una regla de producción, mientras que un terminal es un símbolo del lenguaje que se está definiendo. En una regla de producción el no-terminal (que aparece en la parte izquierda) está definido en términos de una secuencia de no-terminales y terminales (que se encuentran en la parte derecha ) Ejemplo: <dígito>::= <letra>::= abc xyz <identificador>::=<letra><identificador><dígito><identificador> <letra> En BNF, un no-terminal se escribe entre < >, el símbolo ::= significa se define como y el símbolo significa o. Estas reglas definen <dígitos> como uno de los símbolos 0, 1 al 9; <letra> como una letra minúscula e <identificador> se define como una única letra, un identificador seguido de una letra o un identificador seguido de un dígito. Así, el identificador ab1 puede ser derivado de <identificador>como sigue: 1

2 <identificador> <identificador><dígito> <identificador> <letra>><dígito> <letra><letra><dígito> a <letra><dígito> a b <dígito> a b 1 En cada etapa, el no-terminal de más a la izquierda es reemplazado por la parte derecha de una de sus reglas de producción, la secuencia de terminales y no-terminales producidos en cada etapa en una derivación se conoce como formas sentenciales. La forma sentencia final (que ya no contiene símbolos no-terminales) se conoce como una sentencia. La estructura de una derivación se muestra mejor en un árbol de derivación. El árbol de derivación que muestra cómo ab1 de <identificador> es: <identificador> <identificador> <dígito> <identificador> <letra> 1 <letra> b a Un lenguaje de programación completo se define comenzando con un símbolo noterminal tal como <programa>, conocido como start symbol (símbolo inicial) y desde el cual todos los posibles programas pueden ser derivados. En la práctica, los árboles de derivación se crean de dos formas posibles. En un esquema top-down, la sentencia requerida se deriva del símbolo inicial tal cual como hicimos en el ejemplo (ab1). En un esquema bottom-up, el punto de partida es la sentencia requerida, la cual es reducida al símbolo inicial reemplazando las partes derechas por sus correspondientes partes izquierdas de las reglas de producción. Ambos esquemas se utilizan en la fase de análisis sintáctico de muchos compiladores. Una gramática que define un lenguaje de programación tiene un número finito de reglas de producción, pero como las reglas de producción contienen recursión, es posible generar infinitos programas posibles. Ejemplo: <ident>::=<ident><dígito> Cuando se incluye recursión en las reglas de producción hay que tener cuidado. Hay que asegurarse que la recursión termine. Una regla de producción tal como la anterior se dice que es recursiva a izquierda. Existen definiciones similares pero recursivas a derecha. 2

3 Ambigüedad Un problema surge cuando se definen gramáticas ambiguas. Esto es, una gramática que permite diferentes interpretaciones para la misma sentencia. Ejemplo: Veamos la siguiente definición para la sentencia condicional if ::= if <condición> then <sent> if <condición> then <sent> else <sent> <sent>::= begin <sent> end La siguiente sentencia condicional tiene dos diferentes árboles de derivación: if <cond> then if <cond> then <sent> else <sent> árbol 1! if <cond> then <sent> if <cond> then <sent> else <sent> árbol 2 if <cond> then <sent> else <sent> if <cond> then <sent> Como hay dos interpretaciones, la gramática es ambigua. Una solución podría ser que la sentencia anterior se escriba: if <cond> then begin if <cond> then <sent> else <sent> end ó if <cond> then begin if <cond> then <sent> end else <sent> Dependiendo de la interpretación que se desee. Otra solución sería agregando un cierre del if (ya sea con un ; o con un endif) 3

4 Ejemplo: Gramática para una sentencia de asignación <asig>::= <id>:=<exp> <id>::= A B C D (también podría ser la definición de identificador anterior) <exp>::= <exp> + <exp> <exp> * <exp> <id> Qué pasa con esta gramática? Es correcta? Veamos el árbol de derivación de la siguiente sentencia. A:= B + C * D árbol 1 árbol 2 <asig> <id> := <exp> A <exp> + <exp> <id> <exp> * <exp> B <id> <id> C D <asig> <id> := <exp> A <exp> * <exp> <exp> + <exp> <id> <id> <id> D B C En general la ambiguedad sintáctica de las estructuras de un lenguaje es un problema, debido a que los compiladores basan la semántica de esas estructuras en su estructura sintáctica. Si una estructura del lenguaje tiene más de un árbol de derivación, entonces, el significado de la estructura no podría determinarse unívocamente. Cómo desambiguamos la gramática anterior? <asig>::= <id> := <exp> <id>::= A B C D <exp>::= <exp> + <término> <término> <término>::= <término> * <factor> <factor> 4

5 Ejercicio: Hacer el árbol de derivación para la expresión anterior para ver que es único. Pensar: Cómo se modificaría esta gramática para incluir paréntesis en las expresiones? Otras notaciones: Existen otras formas de describir gramáticas (otras notaciones). Por ejemplo, la siguiente sentencia: <exp>::= <exp> + <término> Se escribiría: exp exp + término Además, existe otra forma más gráfica de representar gramáticas que son diagramas sintácticos. Son utilizados por los lenguajes Pascal y Ada. La simbología es la siguiente: No-terminales Ejemplo: terminales El diagrama sintáctico para una expresión sería: exp término término + - término factor factor * factor identificador / 5

6 Ejercicio: Escribir una gramática para verificar la declaración de variables de un programa Pascal. Resolución: Básicamente la sentencia es: var a:integer; b,c:real; d:alumno; en gral puede ser una declaración o un conjunto separados por ;. Y una declaración puede ser un identificador o un conjunto separados por, : <declaración>::= var <lista-de-dcls> <lista-de-dcls>::= <unadeclaración> <unadeclaración>; <lista de-dcls> <unadeclaración>::= <lista-de-ident> : <tipo> <lista-de-ident>::= <ident> <ident>, <lista-de-ident> <ident>::= Se definió en la teoría!!! <tipo>::=..no hacerlo, en este caso para acá Las anteriores son sólo reglas de producción de la gramática. La gramática se compone además de reglas de: G={ N, T, P, S} donde: T = {var,,, ;, :, etc } N = { <declaración>, <lista de-dcls>, <unadeclaración>, <lista-de-ident>, <tipo>, <ident>} P = { <declaración>::= var <lista-de-dcls> <lista-de-dcls>::= <unadeclaración> <unadeclaración>; <lista-de-dcls> <unadeclaración>::= <lista-de-ident> : <tipo> <lista-de-ident>::= <ident> <ident>, <lista-de-ident> <ident>::= Se definió en la teoría!!! <tipo>::=..no hacerlo, en este caso para acá } S = {<declaración>} 6

Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación

Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación Arquitectura de Computadoras Conceptos básicos de programación 1. Introducción: Programación es el conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones

Más detalles

Proposiciones Condicionales

Proposiciones Condicionales SENTENCIAS CONDICIONALES SIMPLES: if- Anteriormente se discutió que una de las estructuras utilizadas en la programación estructurada es la Estructura Selectiva o Condicional. Se explican aquí las sentencias

Más detalles

APUNTES PARA LENGUAJES Y COMPILADORES

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

Repaso. Lenguajes formales

Repaso. Lenguajes formales Repaso. Lenguajes formales Profesor Federico Peinado Elaboración del material José Luis Sierra Federico Peinado Ingeniería en Informática Facultad de Informática Universidad Complutense de Madrid Curso

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 1) 1 Aspectos Formales Los compiladores traducen lenguajes que están formalmente definidos a través de reglas que permiten escribir

Más detalles

Diagramas de Flujo Programación Estructurada. Diagramas de Flujo y Pseudocódigo

Diagramas de Flujo Programación Estructurada. Diagramas de Flujo y Pseudocódigo . y Es la representación gráfica de los pasos que deben seguirse para resolver un problema. El traducir una descripción narrada a diagrama de flujo agrega claridad y precisión a la descripción de una tarea.

Más detalles

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 } TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO DEFINICIÓN Y NOTACIÓN DE CONJUNTOS El término conjunto juega un papel fundamental en el desarrollo de las matemáticas modernas; Además de proporcionar

Más detalles

Algoritmos y Diagramas de flujo

Algoritmos y Diagramas de flujo Algoritmos y Diagramas de flujo En los pasos a seguir para el desarrollo de un problema, existen básicamente dos tipos de elementos con los cuales es posible especificar un problema en forma esquemática

Más detalles

Tema 3: Análisis sintáctico descendente. Cómo funciona el analizador sintáctico?

Tema 3: Análisis sintáctico descendente. Cómo funciona el analizador sintáctico? Tema 3: Análisis sintáctico descendente Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 3: Análisis sintáctico descendente

Más detalles

Teoría de Conjuntos y Conjuntos Numéricos

Teoría de Conjuntos y Conjuntos Numéricos Teoría de Conjuntos y Conjuntos Numéricos U N I V E R S I D A D D E P U E R T O R I C O E N A R E C I B O D E P A R T A M E N T O DE M A T E M Á T I C A S P R O F A. Y U I T Z A T. H U M A R Á N M A R

Más detalles

descripción del argumento identificador tipo longitud condición restricción

descripción del argumento identificador tipo longitud condición restricción Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía PROGRAMACIÓN 0 Prof. Dolores Cuiñas H. recomendada APUNTES Nº. METODOLOGÍA PARA LA CONSTRUCCIÓN DE PROGRAMAS. Presentaremos

Más detalles

Conceptos fundamentales de Algoritmos

Conceptos fundamentales de Algoritmos Conceptos fundamentales de Algoritmos Es una secuencia de acciones para la realización de una tarea determinada. Conjunto de reglas o instrucciones que indican una secuencia lógica de operaciones que proporciona

Más detalles

UNIDAD I. ALGORITMOS

UNIDAD I. ALGORITMOS UNIDAD I. ALGORITMOS 1.1 Definición Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. 1.2 Tipos Cualitativos: Son aquellos

Más detalles

Operando1 operador de relación Operando2

Operando1 operador de relación Operando2 PROGRAMACIÓN 10 Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 5 ESTRUCTURAS DE CONTROL SELECTIAS O ESTRUCTURAS

Más detalles

Compiladores: Parsing ascendente

Compiladores: Parsing ascendente Compiladores: Parsing ascendente Francisco J Ballesteros LSUB, URJC Page 1 of 64 Parsing ascendente Normalmente utilizaremos parsers descendentes para problemas pequeños cuando podemos escribir uno predictivo

Más detalles

Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de la Teoría de Gramáticas Formales Departamento de Tecnologías de la Información Tema 3: Fundamentos de la Teoría de Gramáticas Formales Ciencias de la Computación e Inteligencia Artificial Índice 3.1. Concepto básico de Gramática. Ejemplos

Más detalles

Tema 1.1. Un lenguaje mínimo y su procesador: Introducción

Tema 1.1. Un lenguaje mínimo y su procesador: Introducción Tema 1.1. Un lenguaje mínimo y su procesador: Introducción Profesor Federico Peinado Elaboración del material José Luis Sierra Federico Peinado Facultad de Informática Universidad Complutense de Madrid

Más detalles

Etapas para la solución de un problema por medio del computador

Etapas para la solución de un problema por medio del computador Algoritmos. Definición Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones

Más detalles

f n = 0 si n = 0 (ER)

f n = 0 si n = 0 (ER) 1. El significado de la recursión La recursión (en particular la iteración) es una componente fundamental de los lenguajes de programación. Vamos aquí a mostrar cuales son las dificultades que surgen al

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

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS PROGRAMACIÓN ALGORITMOS y DIAGRAMAS ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA ESTABLECIENDOSE UNA SECUENCIA DE

Más detalles

INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177

INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177 INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177 Instrucción condicional if else Uso de la estructura condicional Ejemplos con diagramas de flujo y codificación wdcarnero@gmail.com LA INSTRUCCIÓN CONDICIONAL

Más detalles

Tema 3.- Gramáticas formales

Tema 3.- Gramáticas formales 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 detalles

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Gramáticas libres de contexto Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Clase adicional 2. Estructuras básicas de control. Temas

Clase adicional 2. Estructuras básicas de control. Temas Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado

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

Á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

www.matesxronda.net José A. Jiménez Nieto

www.matesxronda.net José A. Jiménez Nieto NÚMEROS REALES 1. NÚMEROS IRRACIONALES: CARACTERIZACIÓN. En el tema correspondiente a números racionales hemos visto que estos números tienen una característica esencial: su expresión decimal es exacta

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria. 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria. Sistema complejo se estudia

Más detalles

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS. TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS. TEORÍA DE CONJUNTOS. Definiciones. Se define un conjunto como una colección de objetos o cosas, se nombran con letras mayúsculas (A, B...). Cada uno de

Más detalles

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática Programa de la asignatura: SIS-202 LENGUAJE DE PROGRAMACIÓN I Total de Créditos: 4 Teórico:

Más detalles

Capítulo 1. Algoritmos, diagramas de flujo y programas.

Capítulo 1. Algoritmos, diagramas de flujo y programas. Capítulo 1. Algoritmos, diagramas de flujo y programas. 1.1 Problemas y algoritmos 1.2 Diagramas de flujo 1.2.1 Reglas para la construcción de diagramas de flujo 1.3 Conceptos fundamentales 1.3.1 Tipos

Más detalles

Expresión, Operador, Operando, Asignación, Prioridad

Expresión, Operador, Operando, Asignación, Prioridad 4. EXPRESIONES Y OPERADORES Conceptos: Resumen: Expresión, Operador, Operando, Asignación, Prioridad En este tema se presentan los siguientes elementos de la programación: las expresiones y los operadores.

Más detalles

La Jerarquía de Chomsky

La Jerarquía de Chomsky La Apuntes sobre la Complejidad Universidad de Cantabria Esquema Motivación 1 Motivación 2 Ideas y Nociones Motivación Como se ha mencionado anteriormente, los lenguajes son conjuntos de palabras definidos

Más detalles

1. El sistema de los números reales

1. El sistema de los números reales 1. El sistema de los números reales Se iniciará definiendo el conjunto de números que conforman a los números reales, en la siguiente figura se muestra la forma en la que están contenidos estos conjuntos

Más detalles

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como: VALOR ABSOLUTO Cualquier número a tiene su representación en la recta real. El valor absoluto de un número representa la distancia del punto a al origen. Observe en el dibujo que la distancia del al origen

Más detalles

Programación y matemática

Programación y matemática Programación y matemática Los objetos matemáticos se describen usando un lenguaje al que llamamos lenguaje matemático. Como este lenguaje tiene pautas claras que indican cuáles descripciones tienen sentido

Más detalles

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de programación y cómo se utiliza. 1 Por sí sólo, un equipo

Más detalles

FUNCIONES. Definición de función. Ejemplos.

FUNCIONES. Definición de función. Ejemplos. FUNCIONES. Definición de función. Una función es una relación entre un conjunto de salida llamado dominio y un conjunto de llegada llamado codominio, tal relación debe cumplir que cada elemento del dominio

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

CONJUNTOS NUMÉRICOS Y APLICACIONES

CONJUNTOS NUMÉRICOS Y APLICACIONES INSTITUCION EDUCATIVA LA PRESENTACION NOMBRE ALUMNA: AREA : MATEMÁTICAS ASIGNATURA: MATEMÁTICAS DOCENTE: JOSÉ IGNACIO DE JESÚS FRANCO RESTREPO TIPO DE GUIA: CONCEPTUAL - EJERCITACION PERIODO GRADO FECHA

Más detalles

Profesor: Rafa González Jiménez. Instituto Santa Eulalia ÍNDICE

Profesor: Rafa González Jiménez. Instituto Santa Eulalia ÍNDICE TEMA 5: DERIVADAS. APLICACIONES. ÍNDICE 5..- Derivada de una función en un punto. 5...- Tasa de variación media. Interpretación geométrica. 5..2.- Tasa de variación instantánea. Derivada de una función

Más detalles

Teoría de Autómatas y Lenguajes Formales. Capítulo 1: Introducción. Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica.

Teoría de Autómatas y Lenguajes Formales. Capítulo 1: Introducción. Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica. Teoría de Autómatas y Lenguajes Formales Capítulo 1: Introducción Holger Billhardt holger.billhardt@urjc.es Introducción Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica.

Más detalles

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013 Compiladores Análisis Sintáctico Ascendente Adrian Ulises Mercado Martínez Facultad de Ingeniería, UNAM 5 de septiembre de 2013 Adrian Ulises Mercado Martínez (FI,UNAM) Compiladores 5/07/2013 1 / 34 Índice

Más detalles

Se utilizarán las letras mayúsculas, tales como A, B y C para nombrar conjuntos. Por ejemplo: a i. o e

Se utilizarán las letras mayúsculas, tales como A, B y C para nombrar conjuntos. Por ejemplo: a i. o e Conjuntos Notación de conjuntos Se utilizarán las letras mayúsculas, tales como A, B y C para nombrar conjuntos. Por ejemplo: A 1,2,3 B 2,5,6 C a, e, i, o, u D #,&,*,@ Es bastante corriente dibujar los

Más detalles

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

Teoría de conjuntos. Tema 1: Teoría de Conjuntos. Tema 1: Teoría de Conjuntos. La teoría de Conjuntos es actualmente una de las más importantes dentro de la matemática. Muchos de los problemas que se le han presentado a esta disciplina en los últimos

Más detalles

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES (TALF) BLOQUE II: LENGUAJES REGULARES Tema 2: Autómatas Finitos Parte 2 (de 3). Autómatas Finitos No Deterministas (AFNDs) Grado en Ingeniería Informática URJC

Más detalles

INSTITUTO TECNOLÓGICO DE APIZACO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO

INSTITUTO TECNOLÓGICO DE APIZACO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO DEFINICIÓN Y NOTACIÓN DE CONJUNTOS El término conjunto juega un papel fundamental en el desarrollo de las matemáticas modernas; Además de proporcionar

Más detalles

Los Procesos Evolucionan con el Tiempo

Los Procesos Evolucionan con el Tiempo Los Procesos Evolucionan con el Tiempo Todo trabajo es un proceso. Todos los procesos evolucionan con el tiempo. Al principio, se establece un buen proceso. Las necesidades del negocio cambian gradualmente

Más detalles

Definición formal de autómatas finitos deterministas AFD

Definición formal de autómatas finitos deterministas AFD inicial. Ejemplo, supóngase que tenemos el autómata de la figura 2.4 y la palabra de entrada bb. El autómata inicia su operación en el estado q 0 (que es el estado inicial). Al recibir la primera b pasa

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

Construcción de una calculadora con Flex y Bison. Construcción de una calculadora con Flex y Bison. Índice (I)

Construcción de una calculadora con Flex y Bison. Construcción de una calculadora con Flex y Bison. Índice (I) Construcción de una calculadora con Flex y Bison Índice (I) Marina de la Cruz Alfonso Ortega Descripción de la calculadora Reglas de la gramática Los tokens y sus expresiones regulares para Flex Cómo trabajan

Más detalles

µ-c: Manual de referencia del lenguaje Micro-C

µ-c: Manual de referencia del lenguaje Micro-C µ-c: Manual de referencia del lenguaje Micro-C Introducción Este manual de referencia describe en detalle el lenguaje Micro-C, para ser implementado como proyecto de los cursos de Compíladores I y II en

Más detalles

Introducción a las sentencias de control

Introducción a las sentencias de control INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:

Más detalles

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. 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 5 IDENTIFICADORES, VARIABLES Y CONSTANTES 1 OBJETIVOS Saber qué

Más detalles

Programación Digital I

Programación Digital I Programación Digital I Programación Digital I Gilberto Diaz gilberto@ula.ve Universidad de Los Andes Facultad de Ingeniería Escuela de Sistemas Depto de Computación Mérida - Venezuela Repaso Componentes

Más detalles

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2.1 Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como

Más detalles

Lógica Proposicional, Teoremas y Demostraciones

Lógica Proposicional, Teoremas y Demostraciones Lógica Proposicional, Teoremas y Demostraciones Manuel Maia 19 de marzo de 2012 1 Proposiciones Una proposición es una oración declarativa o una expresión matemática que es verdadera o es falsa, pero no

Más detalles

Tema 1 Introducción. 1.1 Qué es un lenguaje de programación. 1.2 Abstracciones en los lenguajes de programación. 1.2.1 Abstraccions de datos.

Tema 1 Introducción. 1.1 Qué es un lenguaje de programación. 1.2 Abstracciones en los lenguajes de programación. 1.2.1 Abstraccions de datos. Tema 1 Introducción 1.1 Qué es un lenguaje de programación. El lenguaje ensamblador, con su dependencia respecto a cada máquina, su bajo nivel de abstracción y su dificultad para escribirse y comprenderse,

Más detalles

Sistemas de Ecuaciones Lineales

Sistemas de Ecuaciones Lineales Sistemas de Ecuaciones Lineales 1 Sistemas de ecuaciones y matrices Definición 1 Una ecuación lineal en las variables x 1, x 2,..., x n es una ecuación de la forma con a 1, a 2... y b números reales. a

Más detalles

DEFINICIÓN DE LOS PROBLEMAS; IDENTIFICACIÓN DE LOS FACTORES Y LOS OBJETIVOS. UNIVERSIDAD EL BOSQUE. HÉCTOR IVÁN HURTATIS ESPINOSA.

DEFINICIÓN DE LOS PROBLEMAS; IDENTIFICACIÓN DE LOS FACTORES Y LOS OBJETIVOS. UNIVERSIDAD EL BOSQUE. HÉCTOR IVÁN HURTATIS ESPINOSA. DEFINICIÓN DE LOS PROBLEMAS; IDENTIFICACIÓN DE LOS FACTORES Y LOS OBJETIVOS. UNIVERSIDAD EL BOSQUE. HÉCTOR IVÁN HURTATIS ESPINOSA. METODOLOGÍA DEL ÁRBOL DE PROBLEMAS Instrumento oficial de las entidades

Más detalles

MATEMÁTICAS BÁSICAS UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN CLASE # 5

MATEMÁTICAS BÁSICAS UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN CLASE # 5 MATEMÁTICAS BÁSICAS UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN CLASE # 5 OPERACIONES CON LOS NÚMEROS REALES En R se de nen dos operaciones: Suma o adición y producto o multiplicación: Si a 2 R y

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Libres del Contexto y Lenguajes Libres del Contexto Gramáticas Formales Una gramática formal es una cuadrupla G = (N, T, P, S) N = conjunto finito de símbolos no

Más detalles

Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto:

Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto: I.- Teoría de conjuntos Definición de conjunto Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto: a) Por extensión

Más detalles

POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO.

POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO. 1. LOS NÚMEROS NATURALES POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO. 2. LOS NÚMEROS ENTEROS. VALOR ABSOLUTO DE UN NÚMERO ENTERO. REPRESENTACIÓN GRÁFICA. OPERACIONES.

Más detalles

Colegio Beato Carlos Manuel Rodríguez Departamento de Matemáticas. Mapa curricular Algebra I 8 vo grado

Colegio Beato Carlos Manuel Rodríguez Departamento de Matemáticas. Mapa curricular Algebra I 8 vo grado Colegio Beato Carlos Manuel Rodríguez Departamento de Matemáticas Mapa curricular Algebra I 8 vo grado Colegio Beato Carlos Manuel Rodríguez Mapa curricular Algebra I 8 vo grado periodo 11 al 22 de agosto

Más detalles

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos:

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos: CONJUNTOS En una Teoría Intuitiva de Conjuntos, los conceptos de conjunto y pertenencia son considerados primitivos, es decir, no se definen de un modo formal; se les acepta como existentes de manera axiomática,

Más detalles

3.3 Funciones crecientes y decrecientes y el criterio de la primera derivada

3.3 Funciones crecientes y decrecientes y el criterio de la primera derivada SECCIÓN. Funciones crecientes decrecientes el criterio de la primera derivada 79. Funciones crecientes decrecientes el criterio de la primera derivada Determinar los intervalos sobre los cuales una función

Más detalles

Tema 2: Introducción a los algoritmos

Tema 2: Introducción a los algoritmos Tema 2: Introducción a los algoritmos Objetivos: este tema pretende mostrar al alumno cómo, a partir de unas especificaciones de un problema del mundo real, diseñar una solución para dicho problema (algoritmo)

Más detalles

2.Teoría de Autómatas

2.Teoría de Autómatas 2.Teoría de Autómatas Araceli Sanchis de Miguel Agapito Ledezma Espino José A. Iglesias Mar

Más detalles

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas Sistemas numéricos MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Definición(1) Un sistema de representación numérica es un sistema de lenguaje que consiste en: un conjunto ordenado de símbolos

Más detalles

Sus socios en ISO 9000. Manual de Calidad

Sus socios en ISO 9000. Manual de Calidad Sus socios en ISO 9000 Manual de Calidad ESTRUCTURA DE DOCUMENTACION GERENCIA NIVEL 1: Manual de Calidad - Políticas (Política de la compañía, autorización y alcance del sistema ) NIVEL 2: Procedimientos

Más detalles

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO I. TITULO : LENGUAJE C CODIGO : CMIS3330 CREDITAJE : 3 CREDITOS REQUISITOS : CMIS 2200 II. DESCRIPCION DEL CURSO: Estudio del lenguaje de

Más detalles

2. SISTEMAS DE ECUACIONES LINEALES. Introducción

2. SISTEMAS DE ECUACIONES LINEALES. Introducción 2. SISTEMAS DE ECUACIONES LINEALES Introducción El presente curso trata sobre álgebra lineal. Al buscarla palabra lineal en un diccionario se encuentra, entre otras definiciones la siguiente: lineal, perteneciente

Más detalles

TEMA 5. GRAMÁTICAS REGULARES.

TEMA 5. GRAMÁTICAS REGULARES. TEMA 5. GRAMÁTICAS REGULARES. 5.1. Gramáticas Regulares. 5.2. Autómatas finitos y gramáticas regulares. 5.2.1. Gramática regular asociada a un AFD 5.2.2. AFD asociado a una Gramática regular 5.3. Expresiones

Más detalles

Introducción a la Teoría de Automátas

Introducción a la Teoría de Automátas a la Teoría de Automátas Universidad de Cantabria Primeras Consideraciones Fijar un modelo de cálculo que haga referencia a los fundamentos de la comunicación y el lenguaje. Todo cálculo algorítmico consiste

Más detalles

Capítulo II Límites y Continuidad

Capítulo II Límites y Continuidad (Apuntes en revisión para orientar el aprendizaje) INTRODUCCIÓN Capítulo II Límites y Continuidad El concepto de límite, después del de función, es el fundamento matemático más importante que ha cimentado

Más detalles

Lógica y compuertas (Parte 2): Circuitos Combinacionales y Secuenciales

Lógica y compuertas (Parte 2): Circuitos Combinacionales y Secuenciales Práctica 4 Lógica y compuertas (Parte 2): Circuitos Combinacionales y Secuenciales Objetivos de la práctica: que el alumno domine Circuitos lógicos y diagramas de compuertas Introducción a equivalencias

Más detalles

Introducción. Reglas para dibujar un diagramas de flujo.

Introducción. Reglas para dibujar un diagramas de flujo. Introducción. Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travéz de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciónes y en

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

Una sucesión infinita es una función cuyo dominio es el conjunto de los enteros positivos. Podemos denotar una sucesión como una lista

Una sucesión infinita es una función cuyo dominio es el conjunto de los enteros positivos. Podemos denotar una sucesión como una lista Cap 9 Sec 9.1 9.3 Una sucesión infinita es una función cuyo dominio es el conjunto de los enteros positivos. Podemos denotar una sucesión como una lista a 1, a 2, a 3, a n, Donde cada a k es un término

Más detalles

Lógica de Predicados

Lógica de Predicados Lógica de Predicados En las últimas décadas, ha aumentado considerablemente el interés de la informática por la aplicación de la lógica a la programación. De hecho, ha aparecido un nuevo paradigma de programación,

Más detalles

Autómatas Finitos y Lenguajes Regulares

Autómatas Finitos y Lenguajes Regulares Autómatas Finitos y Lenguajes Regulares Problema: Dado un lenguaje L definido sobre un alfabeto A y una cadena x arbitraria, determinar si x L o x L. Cadena x AUTOMATA FINITO SI NO Lenguaje Regular Autómatas

Más detalles

Proyecto Unico - Parte 1 - Solución

Proyecto Unico - Parte 1 - Solución Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2006 Proyecto Unico - Parte 1 - Solución Revisión Teórico-Práctica 1. Presente

Más detalles

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

UNIDAD #1: CONJUNTOS NUMERICOS

UNIDAD #1: CONJUNTOS NUMERICOS UNIDAD #1: CONJUNTOS NUMERICOS El concepto de conjunto es una de las ideas más útiles del álgebra ya que ayuda extender y a generalizar toda la aritmética, como veremos a través de la enseñanza de este

Más detalles

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015 Aspectos de los LP Diseño de compiladores Lenguajes de Programación Antes de comenzar con la construcción de un compilador, debemos comprender los conceptos basicos del lenguaje de programación con el

Más detalles

Capítulo 5. 5.1. E l ope r ad or r e s id uo. 5.2. E x pr e s ion e s b oole an as

Capítulo 5. 5.1. E l ope r ad or r e s id uo. 5.2. E x pr e s ion e s b oole an as Capítulo 5 Con d ic ion ale s y r e c ur s ión 5.1. E l ope r ad or r e s id uo El ope r ad or r e s id uo tr a b a ja c o n e n te r o s (y e x p r e s io n e s e n te r a s ) c a lc u la n d o e l r

Más detalles

Tema: Compilador Micro C

Tema: Compilador Micro C Compiladores. Guía 13 1 Tema: Compilador Micro C Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En esta guía se modificará el resultado de las guías anteriores para integrar

Más detalles

Módulo 5: Lenguaje Pascal

Módulo 5: Lenguaje Pascal Módulo 5: Lenguaje Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2012: M. Capobianco,

Más detalles

Jorge Bernal Prassanna Ravishankar Gemma Sánchez

Jorge Bernal Prassanna Ravishankar Gemma Sánchez Análisis Semántico Jorge Bernal Prassanna Ravishankar Gemma Sánchez 13 de noviembre de 2013 Capítulo 1 Introducción Este documento sirve de guía para enfocar la segunda práctica de la asignatura Compiladors

Más detalles

Análisis de problemas

Análisis de problemas Análisis de problemas La resolución de problemas implica el desarrollo de habilidades del pensamiento. Nuestra capacidad d de enfrentar problemas aumenta con la práctica. Existen algunos textos con problemas

Más detalles

1. Algoritmo, Pseudocódigo, Diagramas de flujo.

1. Algoritmo, Pseudocódigo, Diagramas de flujo. 1. Algoritmo, Pseudocódigo, Diagramas de flujo. Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. En matemáticas, ciencias de la computación y

Más detalles

CENTRO DE EDUCACIÓN MEDIA CURSO CERO. Departamento: Matemáticas y Física. Área Académica: Matemáticas. Nombre de la materia: Curso Cero

CENTRO DE EDUCACIÓN MEDIA CURSO CERO. Departamento: Matemáticas y Física. Área Académica: Matemáticas. Nombre de la materia: Curso Cero CENTRO DE EDUCACIÓN MEDIA CURSO CERO DATOS DE IDENTIFICACIÓN CENTRO DE EDUCACIÓN MEDIA Departamento: Matemáticas y Física. Área Académica: Matemáticas BACHILLERATO Nombre de la materia: Curso Cero Tipo

Más detalles

Los números enteros. > significa "mayor que". Ejemplo: 58 > 12 < significa "menor que". Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor

Los números enteros. > significa mayor que. Ejemplo: 58 > 12 < significa menor que. Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor Los números enteros Los números enteros Los números enteros son aquellos que permiten contar tanto los objetos que se tienen, como los objetos que se deben. Enteros positivos: precedidos por el signo +

Más detalles

Clase 25/09/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf

Clase 25/09/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Clase 25/09/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf A pesar de haber ejercitado la realización de demostraciones en varias materias, es frecuente que el alumno consulte sobre la validez

Más detalles

Ejemplo 1. Ejemplo introductorio

Ejemplo 1. Ejemplo introductorio . -Jordan. Ejemplo 1. Ejemplo introductorio. -Jordan Dos especies de insectos se crían juntas en un recipiente de laboratorio. Todos los días se les proporcionan dos tipos de alimento A y B. 1 individuo

Más detalles

Programación Matemática. Profesor: Juan Pérez Retamales

Programación Matemática. Profesor: Juan Pérez Retamales Programación Matemática Profesor: Juan Pérez Retamales Capítulo 2: Optimización Lineal en la Práctica Programación Matemática Procesos de Toma de Decisiones Marco de Trabajo: Decisiones Estratégicas Decisiones

Más detalles