S – atribuido y L – SDT atribuidos en traducción dirigida por sintaxis

Antes de llegar a los SDT con atributos S y L, aquí hay una breve introducción a los atributos sintetizados o heredados. Tipos de atributos: los atributos pueden ser de dos tipos: sintetizados o heredados. Atributos sintetizados: un atributo sintetizado es un atributo del no terminal en el lado izquierdo de una producción. Los atributos … Continue reading «S – atribuido y L – SDT atribuidos en traducción dirigida por sintaxis»

FIRST Conjunto en análisis de sintaxis – Part 1

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

Programa Lex para reconocer expresiones aritméticas válidas e identificar los identificadores y operadores

Problema: Escriba un programa Lex para reconocer expresiones aritméticas válidas e identificar los identificadores y operadores. Explicación: Flex (Fast lexical Analyzer Generator) es una herramienta/programa informático para generar analizadores léxicos (escáneres o lexers) escritos por Vern Paxson en C alrededor de 1987. Lex lee un flujo de entrada que especifica el analizador léxico y genera … Continue reading «Programa Lex para reconocer expresiones aritméticas válidas e identificar los identificadores y operadores»

Diferencia entre tiempo de compilación y enlace de dirección de tiempo de carga

Requisito previo: métodos de vinculación de direcciones La vinculación de direcciones es la asociación de instrucciones y datos del programa a la ubicación de memoria física real. Hay varios tipos de enlaces de direcciones en el sistema operativo. Hay 3 tipos de enlace de dirección: Enlace de dirección de tiempo de compilación Enlace de dirección … Continue reading «Diferencia entre tiempo de compilación y enlace de dirección de tiempo de carga»

Programa Lex para encontrar la longitud de la palabra más larga

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 encontrar la longitud de la palabra más larga»

Programa Lex para aceptar un valor entero y flotante 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 aceptar un valor entero y flotante válido»

Yacc Programa para evaluar una expresión aritmética dada

Prerrequisito – Introducción a YACC  Problema: Escriba un programa YACC para evaluar una expresión aritmética dada que consta de ‘+’, ‘-‘, ‘*’, ‘/’ incluidos corchetes. Ejemplos:   Input: 7*(5-3)/2 Output: 7 Input: 6/((3-2)*(-5+2)) Output: -2 Código fuente del analizador léxico:  C %{     /* Definition section*/     #include «y.tab.h»     extern yylval; }%   %% [0-9]+    {               yylval = … Continue reading «Yacc Programa para evaluar una expresión aritmética dada»

Programa YACC para conversión de binario a decimal

Problema: Escriba el programa YACC para la conversión de binario a decimal. Explicación: Yacc (por «otro compilador compilador más») es el generador de analizador estándar para el sistema operativo Unix. Un programa de código abierto, yacc genera código para el analizador en el lenguaje de programación C. El acrónimo generalmente se representa en minúsculas, pero … Continue reading «Programa YACC para conversión de binario a decimal»

Agrupación de fases en el diseño del compilador

Un compilador es un software que traduce un lenguaje de alto nivel a un formato comprensible por máquina. Por lo general, un compilador se compone de seis estados y el código de entrada en lenguaje de alto nivel, también conocido como código fuente, pasa a través de cada estado uno por uno, cada estado procesa … Continue reading «Agrupación de fases en el diseño del compilador»

Descripción general del modelado de datos en Apache Cassandra

En este artículo aprenderemos sobre estos tres modelos de datos en Cassandra: conceptual, lógico y físico. Objetivo de aprendizaje: Construir base de datos utilizando técnicas de diseño rápido en Cassandra. Para mejorar el modelo existente utilizando una metodología basada en consultas en Cassandra. Para optimizar el modelo existente a través de técnicas de análisis y … Continue reading «Descripción general del modelado de datos en Apache Cassandra»