Sintaxis y Semántica del Lenguaje. Gramáticas
|
|
- Salvador Cabrera Carmona
- hace 7 años
- Vistas:
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
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 detallesProposiciones 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 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 detallesRepaso. 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 detallesLenguajes 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 detallesDiagramas 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 detallesTEORÍ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 detallesAlgoritmos 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 detallesTema 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 detallesTeorí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 detallesdescripció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 detallesConceptos 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 detallesUNIDAD 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 detallesOperando1 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 detallesCompiladores: 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 detallesTema 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 detallesTema 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 detallesEtapas 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 detallesf 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 detallesIntroducció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 detallesPROGRAMACIÓ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 detallesINSTITUTO 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 detallesTema 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 detallesProcesadores 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 detallesClase 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 detallesLenguajes 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 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 detallesÁ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 detalleswww.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 detallesSistema 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 detallesTEMA 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 detallesUniversidad 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 detallesCapí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 detallesExpresió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 detallesLa 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 detalles1. 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 detallesVALOR 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 detallesProgramació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 detallesA 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 detallesFUNCIONES. 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 detallesLENGUAJES 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 detallesCONJUNTOS 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 detallesProfesor: 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 detallesTeorí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 detallesCompiladores. 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 detallesSe 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 detallesTeorí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 detallesTEORÍ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 detallesINSTITUTO 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 detallesLos 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 detallesDefinició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 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 detallesConstrucció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 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 detallesIntroducció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 detallesCapí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 detallesProgramació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 detalles2. 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 detallesLó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 detallesTema 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 detallesSistemas 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 detallesDEFINICIÓ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 detallesMATEMÁ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 detallesCiencias 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 detallesUn 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 detallesPOTENCIAS. 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 detallesColegio 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 detallesCONJUNTOS. 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 detalles3.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 detallesTema 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 detalles2.Teoría de Autómatas
2.Teoría de Autómatas Araceli Sanchis de Miguel Agapito Ledezma Espino José A. Iglesias Mar
Más detallesDefinició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 detallesSus 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 detallesUNIVERSIDAD 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 detalles2. 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 detallesTEMA 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 detallesIntroducció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 detallesCapí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 detallesLó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 detallesIntroducció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 detalles16 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 detallesUna 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 detallesLó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 detallesAutó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 detallesProyecto 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 detallesINTRODUCCIÓ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 detallesUNIDAD #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 detallesAspectos 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 detallesCapí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 detallesTema: 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 detallesMó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 detallesJorge 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 detallesAná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 detalles1. 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 detallesCENTRO 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 detallesLos 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 detallesClase 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 detallesEjemplo 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 detallesProgramació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