Glosario de términos Lenguajes y Autómatas
Enviado por Sara • 7 de Diciembre de 2017 • 2.337 Palabras (10 Páginas) • 757 Visitas
...
Concatenación:
Si w y z son cadenas, la concatenación de w con z es la cadena que se obtiene al añadir la cadena w a la cadena z. Por ejemplo, si w = ’banana’ y z = ’rama’, la concatenación de w con z es la cadena ’bananarama’. La concatenación de las palabras w y z se denota como wz. (Kelley, 1995).
Cuando escribimos varias palabras o caracteres uno a continuación de otro, se supone que forman una sola palabra (se concatenan). La notación usada para denotar la concatenación de dos cadenas a y b es ab. (Brena, 2003).
Cerradura de Kleene:
Si A es un lenguaje sobre algún alfabeto Σ, se define la cerradura de Kleene o cerradura de estrella de un lenguaje A como:
(Kelley, 1995).
Si L es un lenguaje, L*, llamado cerradura de Kleene de L, es el más pequeño conjunto que contiene:
La palabra vacía
El conjunto L
Todas las palabras formadas por la concatenación de miembros de L*
(Brena, 2003).
Cerradura positiva:
Definimos Cerradura positiva de A como A+ como:
(Kelley, 1995).
Si L es un lenguaje, L+, llamado cerradura positiva de L, es el conjunto que contiene:
El conjunto L
Todas las palabras formadas por la concatenación de miembros de L+.
(Brena, 2003).
Compilador:
Un compilador es un programa que lee un programa escrito en un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente. ( Sethi et al, 1990).
Los compiladores son fundamentales para la computación moderna. Ellos actúan como traductores, transformando los lenguajes de programación orientados a humanos a lenguajes máquina orientados a computadoras. Los compiladores actúan como una caja negra, donde entra un lenguaje de programación y sale un lenguaje máquina. (Fischer et al, 1988).
Macroprocesador:
Producen la entrada para un compilador, y pueden realizar las funciones siguientes:
Procesamiento de macros.
Inclusión de archivos.
Preprocesamiento racional.
Extensiones a lenguajes.
(Sethi et al, 1990).
Recolecta el programa de origen. También expande algunos fragmentos de código abreviados de uso frecuente, llamados macros, en instrucciones del lenguaje fuente. (Sethi et al, 2008).
Ensamblador:
Se encarga del procesamiento del código ensamblador generado por el compilador. (Sethi et al, 1990).
Se encarga de procesar el lenguaje ensamblador, el cual produce código máquina relocalizable como salida. (Sethi et al, 2008).
Cargador/ligador:
El proceso de cargar consiste en tomar el código de máquina relocalizable, modificar las direcciones relocalizables y ubicar las instrucciones y los datos modificados en las posiciones apropiadas de la memoria.
El ligador permite formar un solo programa a partir de varios archivos de código de máquina relocalizable. (Sethi et al, 1990).
Se encarga de enlazar el código máquina relocalizable con otros archivos objeto relocalizables y archivos de biblioteca para producir el código que se ejecute en realidad en la máquina. El ligador resuelve las direcciones de memoria externas, en donde el código en un archivo puede hacer referencia a una ubicación en otro archivo. Entonces, el cargador reúne todos los archivos objeto ejecutables en la memoria para su ejecución. (Sethi et al, 2008).
Intérprete:
Es otro tipo común de procesador de lenguaje. En vez de producir un programa destino como una traducción, el intérprete nos da la apariencia de ejecutar directamente las operaciones especificadas en el programa origen con las entradas proporcionadas por el usuario. (Sethi et al, 2008).
Programa que analiza y ejecuta simultáneamente un programa escrito en un lenguaje fuente. (Labra et al, 2004).
Etapa de análisis:
Divide al programa fuente en sus elementos componentes y crea una representación intermedia del programa fuente. (Sethi et al, 1990).
Analiza el programa fuente que está siendo compilado creando una Representación Intermedia (IR) de dicho programa fuente. (Fischer et al, 1988).
Etapa de síntesis:
Construye el programa objeto deseado a partir de la representación intermedia. (Sethi et al, 1990).
A partir de una Representación Intermedia (IR) genera un programa en lenguaje máquina que, cuando es ejecutado, realizará correctamente las actividades descritas por el programa fuente. (Fischer et al, 1988).
Análisis léxico:
En el que la cadena de caracteres que constituye el programa fuente se lee de izquierda a derecha y se agrupa en componentes léxicos, que son secuencias de caracteres que tienen un significado colectivo. (Sethi et al, 1990).
Lee el flujo de caracteres que componen el programa fuente y los agrupa en secuencias significativas, conocidas como lexemas. (Sethi et al, 2008)
Análisis sintáctico:
En el que los caracteres o los componentes léxicos se agrupan jerárquicamente en colecciones anidadas con un significado colectivo. (Sethi et al, 1990).
También conocido como Parser, utiliza los primeros componentes de los tokens producidos por el analizador de léxico para crear una representación intermedia en forma de árbol que describa la estructura gramatical del flujo de tokens. (Sethi et al, 2008)
Análisis semántico:
La fase de análisis semántico revisa el programa fuente para tratar de encontrar errores semánticos y reúne la información sobre los tipos para la fase posterior
...