Programa Lex para verificar si el número de entrada es par o impar

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) gcc lex.yy.c -ll ./a.out Veamos … Continue reading «Programa Lex para verificar si el número de entrada es par o impar»

Bloques básicos en el diseño del compilador

El bloque básico es una secuencia de código de línea recta que no tiene bifurcaciones de entrada y salida, excepto en la entrada y al final, respectivamente. Basic Block es un conjunto de sentencias que siempre se ejecutan una detrás de otra, en una secuencia.  La primera tarea es dividir una secuencia de código de … Continue reading «Bloques básicos en el diseño del compilador»

Programa C para verificar la sintaxis del bucle ‘for’

Tal como lo definen los estándares de C, la sintaxis del bucle for es: for (initialisation; condition; increment/decrement) … Sintácticamente, debe haber dos puntos y coma, un paréntesis de apertura, un paréntesis de cierre y la ortografía correcta de «for». Por lo tanto, para verificar solo la sintaxis del bucle for, lo que hace un … Continue reading «Programa C para verificar la sintaxis del bucle ‘for’»

Análisis de vivacidad en el diseño del compilador

El análisis de vivacidad consiste en una técnica específica que se implementa para optimizar la asignación de espacio de registro para un fragmento de código determinado y facilitar el procedimiento de eliminación de código inactivo. Como cualquier máquina tiene un número limitado de registros para contener una variable o datos que se utilizan o manipulan, … Continue reading «Análisis de vivacidad en el diseño del compilador»

Diferencia entre fichas y terminales

Tokens y terminales son palabras similares y, a menudo, se usan indistintamente. Pero hay una diferencia conceptual entre ambos términos, las diferencias se discuten en este artículo.  fichas Los tokens son caracteres alfanuméricos. Es la unidad más pequeña de gramática en los lenguajes de programación. Cuando le damos entrada al analizador léxico , lee los … Continue reading «Diferencia entre fichas y terminales»

Fases de un compilador

Requisito previo: introducción al diseño del compilador  Básicamente tenemos dos fases de compiladores, a saber, la fase de análisis y la fase de síntesis. La fase de análisis crea una representación intermedia del código fuente dado. La fase de síntesis crea un programa objetivo equivalente a partir de la representación intermedia.   Tabla de símbolos: es … Continue reading «Fases de un compilador»

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

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 – Part 1»

Problema en el analizador LR(0)

Requisito previo: LR Parser . El analizador LR es una técnica eficiente de análisis de sintaxis de abajo hacia arriba que se puede utilizar para una gran clase de gramática libre de contexto. Esta técnica también se denomina análisis sintáctico LR(0). L representa el escaneo de izquierda a derecha R representa la derivación más a … Continue reading «Problema en el analizador LR(0)»

Diferencia entre ensamblador e intérprete

1. Ensamblador : un lenguaje ensamblador que es básicamente mnemotécnico como código GO, HALT, JUMP y NOT que se traduce al lenguaje de máquina mediante un traductor de lenguaje de programación, es decir, Ensamblador . Assembler es un programa que toma el lenguaje ensamblador como código fuente y lo convierte al formato de bits, es … Continue reading «Diferencia entre ensamblador e intérprete»

Diferencia entre asignación estática y asignación de pila

Asignación estática : la asignación estática es un procedimiento que se utiliza para la asignación de todos los objetos de datos en tiempo de compilación. La asignación estática solo es posible cuando el compilador conoce el tamaño del objeto de datos en el momento de la compilación. En este tipo de asignación, la formación de … Continue reading «Diferencia entre asignación estática y asignación de pila»