Teoría del compilador | Serie 1

Se han hecho las siguientes preguntas en el examen GATE CS. 1. ¿Cuál de las siguientes derivaciones utiliza un analizador de arriba hacia abajo al analizar una string de entrada? Se supone que la entrada se explora en orden de izquierda a derecha (GATE CS 2000). (a) Derivación más a la izquierda (b) Derivación más … Continue reading «Teoría del compilador | Serie 1»

Traducción dirigida por la sintaxis en el diseño del compilador – Part 1

Parser usa un CFG (Gramática libre de contexto) para validar la string de entrada y generar resultados para la siguiente fase del compilador. La salida podría ser un árbol de análisis o un árbol de sintaxis abstracta. Ahora, para intercalar el análisis semántico con la fase de análisis de sintaxis del compilador, usamos la traducción … Continue reading «Traducción dirigida por la sintaxis en el diseño del compilador – Part 1»

Clasificación de analizadores de arriba hacia abajo – Part 1

El análisis se clasifica en dos categorías, es decir, análisis de arriba hacia abajo y análisis de abajo hacia arriba. El análisis de arriba hacia abajo se basa en la derivación más a la izquierda, mientras que el análisis de abajo hacia arriba depende de la derivación más a la derecha inversa.  El proceso de … Continue reading «Clasificación de analizadores de arriba hacia abajo – Part 1»

Introducción de código objeto en el diseño del compilador

Supongamos que tiene un programa ac, luego le da el programa C al compilador y el compilador producirá la salida en código ensamblador. Ahora, ese código de lenguaje ensamblador le dará al ensamblador y el ensamblador le producirá algo de código. Eso se conoce como código objeto . Pero, cuando compila un programa, entonces no … Continue reading «Introducción de código objeto en el diseño del compilador»

Analizador LALR (con ejemplos)

Analizador LALR: el analizador LALR es un analizador LR anticipado. Es el analizador más poderoso que puede manejar grandes clases de gramática. El tamaño de la tabla de análisis de CLR es bastante grande en comparación con otras tablas de análisis. LALR reduce el tamaño de esta tabla. LALR funciona de manera similar a CLR. … Continue reading «Analizador LALR (con ejemplos)»

Programa Lex para comprobar números perfectos

Lex es un programa de computadora que genera analizadores léxicos y fue escrito por Mike Lesk y Eric Schmidt. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lexer en el lenguaje de programación C. Descripción: Número perfecto , entero positivo que es igual a … Continue reading «Programa Lex para comprobar números perfectos»

DFA en código LEX que acepta un número impar de 0 y un número par de 1

Requisito previo: Diseño de autómatas finitos Problema: Diseñe un código LEX para construir un DFA que acepte el lenguaje: todas las strings con un número impar de 0 y un número par de 1 sobre las entradas ‘0’ y ‘1’. Ejemplos: Input: 10001 Output: Accepted Input: 10011 Output: Not Accepted Input: asdf Output: Invalid Enfoque: … Continue reading «DFA en código LEX que acepta un número impar de 0 y un número par de 1»

Expresiones regulares básicas de Posix

POSIX significa Interfaz de sistema operativo portátil. Define un conjunto de interfaces de sistema operativo estándar basadas en el sistema operativo UNIX. Estos estándares están especificados por la sociedad IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) que mantiene la compatibilidad entre diferentes sistemas operativos. Los sistemas POSIX están teorizados de tal manera que los datos … Continue reading «Expresiones regulares básicas de Posix»

error léxico

Cuando el patrón del token no coincide con el prefijo de la entrada restante, el analizador léxico se atasca y tiene que recuperarse de este estado para analizar la entrada restante. En palabras simples, se produce un error léxico cuando una secuencia de caracteres no coincide con el patrón de ningún token. Suele ocurrir durante … Continue reading «error léxico»

Introducción al diseño del compilador – Part 1

El compilador es un software que convierte un programa escrito en un lenguaje de alto nivel (Lenguaje de origen) a un lenguaje de bajo nivel (Objeto/Objetivo/Lenguaje de máquina/0’s, 1’s).  Compilador cruzado que se ejecuta en una máquina ‘A’ y produce un código para otra máquina ‘B’. Es capaz de crear código para una plataforma diferente … Continue reading «Introducción al diseño del compilador – Part 1»