¿Qué es la poda de mango?

El identificador es la substring que coincide con el cuerpo de una producción cuya reducción representa un paso junto con el reverso de una derivación más a la derecha. El identificador de la forma secuencial derecha Y es la producción de Y donde la string S se puede encontrar y reemplazar por A para producir … Continue reading «¿Qué es la poda de mango?»

Análisis semántico en el diseño de compiladores

El Análisis Semántico es la tercera fase del Compilador . El análisis semántico se asegura de que las declaraciones y declaraciones del programa sean semánticamente correctas. Es una colección de procedimientos que el analizador llama cuando lo requiere la gramática. Tanto el árbol de sintaxis de la fase anterior como la tabla de símbolos se … Continue reading «Análisis semántico en el diseño de compiladores»

Flex (Generador de analizador léxico rápido)

FLEX (generador de analizador léxico rápido) es una herramienta/programa de computadora para generar analizadores léxicos (escáneres o lexers) escrito por Vern Paxson en C alrededor de 1987. Se usa junto con el generador de analizador Berkeley Yacc o el generador de analizador GNU Bison . Flex y Bison son más flexibles que Lex y Yacc … Continue reading «Flex (Generador de analizador léxico rápido)»

Diferencia entre compilador y ensamblador

Prerrequisito – Procesadores de Lenguaje: Ensamblador, Compilador e Intérprete Compilador: un compilador se usa principalmente para programas que traducen el código fuente de un lenguaje de programación de alto nivel a un lenguaje de nivel de máquina para crear un programa ejecutable. Un compilador considerará todo el programa como un código completo y luego lo … Continue reading «Diferencia entre compilador y ensamblador»

Cargador en C/C++

Loader es el programa del sistema operativo que carga el ejecutable desde el disco a la memoria principal (RAM) para su ejecución . Asigna el espacio de memoria al módulo ejecutable en la memoria principal y luego transfiere el control a la instrucción inicial del programa. Ejemplo: akash @aix(/ u / akash) #cat./ ak1.cpp #include<stdio.h> … Continue reading «Cargador en C/C++»

Introducción al diseño del compilador

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»

FIRST Conjunto en análisis de sintaxis

FIRST(X) para un símbolo gramatical X es el conjunto de terminales que comienzan las strings derivables de X.  Reglas para calcular el PRIMER conjunto:  Si x es un terminal, entonces PRIMERO(x) = { ‘x’ } Si x-> Є, es una regla de producción, agregue Є a FIRST(x). Si X->Y1 Y2 Y3….Yn es una producción,  PRIMERO(X) … Continue reading «FIRST Conjunto en análisis de sintaxis»

Problemas en el diseño de un generador de código

El generador de código convierte la representación intermedia del código fuente en una forma que la máquina puede ejecutar fácilmente. Se espera que un generador de código genere el código correcto. El diseño del generador de código debe hacerse de tal manera que pueda implementarse, probarse y mantenerse fácilmente.  El siguiente problema surge durante la … Continue reading «Problemas en el diseño de un generador de código»

Tipos de analizadores en el diseño del compilador

El analizador es la fase del compilador que toma una string de token como entrada y, con la ayuda de la gramática existente, la convierte en la Representación intermedia (IR) correspondiente. El analizador también se conoce como analizador de sintaxis.  Clasificación del analizador Tipos de analizador:  El analizador se clasifica principalmente en dos categorías, es … Continue reading «Tipos de analizadores en el diseño del compilador»

Programa Lex para implementar una calculadora simple

Lex es un programa informático que genera analizadores léxicos. 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. Los comandos para ejecutar el programa LEX son: lex abc.l (abc is the file name) cc lex.yy.c -efl ./a.out Veamos … Continue reading «Programa Lex para implementar una calculadora simple»