Programa Lex para verificar si el número dado es un número armstrong o no

Problema: programa Lex para verificar si el número dado es un número armstrong o no. Explicación: 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 … Continue reading «Programa Lex para verificar si el número dado es un número armstrong o no»

Diferencia entre transpiler y compilador

Un compilador es un software que convierte lenguaje de alto nivel a lenguaje ensamblador de bajo nivel y todos estamos bastante familiarizados con su nombre y trabajo. Un transpiler es otro software, a veces llamado compilador fuente a fuente, que convierte un lenguaje de alto nivel en otro lenguaje de alto nivel. Inmediatamente no está … Continue reading «Diferencia entre transpiler y compilador»

Análisis simbólico en el diseño del compilador

El análisis simbólico ayuda a expresar expresiones de programa como expresiones simbólicas. Durante la ejecución del programa, el comportamiento funcional se deriva de la representación algebraica de sus cálculos. Generalmente, durante la ejecución normal del programa, se calcula el valor numérico del programa pero se pierde la información sobre cómo se logran. Por lo tanto, … Continue reading «Análisis simbólico en el diseño del compilador»

gramática ambigua

 También puede leer nuestro artículo discutido anteriormente sobre Clasificación de gramáticas libres de contexto.  L as gramáticas libres de contexto ( CFG ) se clasifican según: Número de árboles de derivación Número de cuerdas  Según el número de árboles de derivación, los CFG se subdividen en 2 tipos: gramáticas ambiguas Gramáticas inequívocas  Gramática ambigua:  se … Continue reading «gramática ambigua»

Fases de un compilador – Part 1

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

Introducción a YACC

Un generador de analizadores es un programa que toma como entrada una especificación de una sintaxis y produce como salida un procedimiento para reconocer ese lenguaje. Históricamente, también se les llama compiladores-compiladores. YACC (otro compilador-compilador más) es un generador de analizador LALR(1) (LookAhead, Left-to-right, Rightmost derivation product with 1 lookahead token). YACC fue diseñado originalmente … Continue reading «Introducción a YACC»

Tipos de códigos de tres direcciones

El código de tres direcciones es una secuencia de sentencias de la forma general A := B op C , donde A, B, C son nombres definidos por el programador, constantes o nombres temporales generados por el compilador; op representa una operación que se aplica en A, B. En palabras simples, un código que tiene … Continue reading «Tipos de códigos de tres direcciones»

Programa Lex para comprobar el correo electrónico válido

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 comprobar el correo electrónico válido»

Entornos de tiempo de ejecución en el diseño del compilador

Una traducción necesita relacionar el texto fuente estático de un programa con las acciones dinámicas que deben ocurrir en tiempo de ejecución para implementar el programa. El programa consta de nombres para procedimientos, identificadores, etc., que requieren mapeo con la ubicación de memoria real en tiempo de ejecución. El entorno de tiempo de ejecución es … Continue reading «Entornos de tiempo de ejecución en el diseño del compilador»

De abajo hacia arriba o Desplazamiento Reducir analizadores | conjunto 2

En este artículo, estamos discutiendo el analizador Bottom Up. Analizadores Bottom Up / Shift Reduce Parsers Cree el árbol de análisis desde las hojas hasta la raíz. El análisis de abajo hacia arriba se puede definir como un intento de reducir la string de entrada w al símbolo de inicio de la gramática al rastrear … Continue reading «De abajo hacia arriba o Desplazamiento Reducir analizadores | conjunto 2»