LENGUAJES FORMALES

Track and organize your meetings within your company

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
LENGUAJES FORMALES por Mind Map: LENGUAJES FORMALES

1. COMPILADOR

1.1. FACES

1.1.1. ANÁLISIS

1.1.1.1. ANÁLISIS LEXICOGRÁFICO

1.1.1.1.1. En la fase de análisis léxico se leen los caracteres del programa fuente y se agrupan en cadenas que representan los componentes léxicos

1.1.1.1.2. Cada componente léxico es una secuencia lógicamente coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un carácter de puntuación

1.1.1.1.3. A la secuencia de caracteres que representa un componente léxico se le llama lexema

1.1.1.2. ANÁLISIS SINTÁCTICO

1.1.1.2.1. Comprueba que la estructura de los componentes básicos sea correcta según ciertas reglas gramaticales.

1.1.1.3. ANÁLISIS SEMÁNTICO

1.1.1.3.1. Comprueba todo lo relacionado con el significado, chequeo de tipos, rangos de valores, existencia de variables, etc

1.1.2. SÍNTESIS

1.1.2.1. FASE DE OPTIMIZACIÓN

1.1.2.1.1. La optimización puede realizarse durante las fases de generación de código intermedio y/o generación de código máquina y puede ser una fase aislada de éstas, o estar integrada con ellas. La optimización del código intermedio debe ser independiente de la máquina

1.1.2.2. GENERACIÓN DE CÓDIGO INTERMEDIO

1.1.2.2.1. Genera un código independiente de la máquina. Las ventajas, es que es fácil hacer pseudocompiladores y además facilita la optimización de código

1.1.2.3. GENERACIÓN DEL CÓDIGO MÁQUINA

1.1.2.3.1. Crea un fichero ‘.exe’ directamente o un fichero ‘.obj’. Aquí también se puede hacer optimización propia del microprocesador

1.1.3. TABLA DE SÍMBOLOS

1.1.3.1. Posee información sobre los identificadores definidos por el usuario, ya sean constantes, variables o tipos. Hace funciones de diccionario de datos y su estructura puede ser una tabla hash, un árbol binario de búsqueda,etc.

2. CADENAS

2.1. Cadena = secuencia finita de símbolos elegidos de un alfabeto

2.1.1. 01101-

2.1.2. La cadena vacía se denota como: ɛ

3. REFERENCIAS

3.1. John E. Hopcroft, Rajeev Motwani and Jeffrely d. Ullman(2001). automata Theory,Languaje and Computation. Addison-wesley Publishing

3.2. Michael Sipser(1997). Introduction to the Theory of Computation. PWS publishing company.

3.3. COMPILADORES. PRINCIPIOS, TÉCNICAS Y HERRAMIENTAS. Autores: Alfred V. Aho, Ravi Sethi y Jeffrey D. Ullman.

4. INTEGRANTES

4.1. Abad Silva Garcia

4.2. Salomon Ramirez Martinez

4.3. Jesus Feria Ortiz

5. SUBCADENAS

5.1. Palabras

5.1.1. Sea un alfabeto Σ. Una palabra sobre Σ es una secuencia finita de las letras de ese alfabeto

5.1.1.1. sobre Σ5 ={a,b,c,d}: ɛ, a, b, c, d, abc, aab, dcba, ...

5.1.1.2. sobre Σ1 ={0,...,9}: ɛ, 0, 0000, 010, 9980, ...

5.2. Operaciones con palabras

5.2.1. Concatenación

5.2.2. Potencia

6. ALFABETOS

6.1. Alfabeto = conjunto finito de símbolos (Σ)

6.1.1. Σ = {0, 1}, alfabeto binario.

6.1.2. Σ = {a, b, c, d, . . . , z}, alfabeto del abecedario en min´usculas.

6.1.3. Conjunto de los caracteres ASCII.

7. LENGUAJES

7.1. Lenguaje = conjunto de cadenas elegidas de algún alfabeto

7.1.1. El lenguaje puede ser infinito, pero existe algún conjunto finito de símbolos de los cuales se componen todas sus cadenas.

7.1.2. El conjunto de todas las cadenas binarias esto es: {ǫ, 01, 0011, 000111, . . .}

7.1.3. Español

7.2. Operaciones con lenguajes

7.2.1. Unión de lenguajes

7.2.2. Concatenación de lenguajes

7.2.3. Potencia de un lenguaje

7.3. Clausulas

7.3.1. Clausura positiva

7.3.2. Clausura, Iteración o cierre

8. TRADUCTORES

8.1. DEFINICIÓN

8.1.1. Un traductor es un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino produciendo, si cabe, mensajes de error

8.2. TIPOS DE TRADUCTORES

8.2.1. TRADUCTORES DEL IDIOMA

8.2.1.1. Traducen de un idioma dado a otro, por ejemplo, un traductor de Inglés a Españo

8.2.2. COMPILADORES

8.2.2.1. Es aquel traductor que tiene como entrada una sentencia en lenguaje formal y como salida tiene un fichero ejecutable, es decir, hace una traducción de alto nivel a código máquina.

8.2.3. INTÉRPRETES

8.2.3.1. Es como un compilador, solo que la salida es una ejecución. El programa entrada se interpreta y ejecuta a la vez.

8.2.4. PREPROCESADORES

8.2.4.1. Permite modificar el programa fuente antes de la verdadera compilacion. Hacen uso de macroinstrucciones y directivas

8.2.5. INTÉRPRETES DE COMANDOS

8.2.5.1. Lo que hace es traducir sentencias simples a llamadas a programas de una biblioteca. Son especialmente utilizados por Sistemas Operativos.

8.2.6. ENSAMBLADORES Y MACROENSAMBLADORES

8.2.6.1. Ensamblador: Es un compilador sencillo, en el que el lenguaje fuente tiene unaestructura simple que permite una traducción de una sentencia fuente a una instrucción en código máquina. El lenguaje que utiliza se llama lenguaje ensamblador y tiene una correspondencia uno a uno entre sus instrucciones y el código máquina

8.2.6.2. Macroensamblador: Hay nsambladores que tienen macroinstrucciones que se suelen traducir a varias instrucciones máquinas, pues bien, un acroensamblador es un ensamblador con un preprocesador delante.

8.2.7. CONVERSORES FUENTE - FUENTE

8.2.7.1. Pasan un lenguaje de alto nivel a otro lenguaje de alto nivel, para conseguir mayor portabilidad.

8.2.8. COMPILADOR CRUZADO

8.2.8.1. Es un compilador que obtiene código para ejecutar en otra máquina. Se utilizan en la fase de desarrollo de nuevos ordenadores.