Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Faltas de Ortografía.
Investigación documental
Asignatura:
Lenguajes y Automatas I
Elaborado por:
Zamudio Franco Luis Jesús
193107070
Docente:
M.T.I Brian Antonio Mejía Díaz
Grupo:
352-M
Tema:
INTRODUCCIÓN A LA TEORÍA DE LOS LENGUAJES FORMALES
Contenido
Introducción............................................................................................................................4
1.1 Alfabeto........................................................................................................................5
1.2 Cadenas.............................................................................................................................6
1.3 Lenguajes, tipos y herramientas........................................................................................7
1.3.1 Tipos de lenguajes..........................................................................................................8
1.3.2 Las Herramientas del lenguaje.......................................................................................8
1.4 Estructura de un traductor...............................................................................................10
1.5 Fases de un compilador...................................................................................................12
CONCLUSION.....................................................................................................................15
Introducción.
En el siguiente reporte de investigación vamos a tomar en cuenta los temas que nos marca
nuestra instrumentación didáctica respecto a la competencia uno. El tema de la competencia
es introducción a la teoría de los lenguajes formales.
Es importante mencionar que se identificaran cada uno de los temas. cada uno con la
mayor de características posibles para que así con ayuda de nuestro conocimiento y con la
retroalimentación que se dará durante este parcial sea cada vez más extenso y a la hora de
llegar al campo práctico, la teoría este bien captada.
1. INTRODUCCION A LA TEORIA DE LOS LENGUAJES FORMALES.
1.1 Alfabeto.
Leyendo sobre varios autores para comprender la definición de alfabeto puedo decir
claramente que Deán Kelly en su libro “Teoría de autómatas y lenguajes formales” nos dice
que un alfabeto “Es un conjunto no vacío y finito de símbolos” por otro lado, Jonh E.
Hpocroft, Rajeev Motwani y Jeffrey D. Ullman en su libro “Introducción a la teoría de
autómatas, Lenguajes y Computación” nos definen que un alfabeto es un conjunto finito no
vacío de símbolos, sin embargo Otros autores como Pedro García, Tomás Pérez, José Ruíz,
Encarna Segarra, José M. Sempere y M. Vázquez de Parga nos dicen en su libro “Teoría de
autómatas y lenguajes formales” que un alfabeto es cualquier conjunto finito y no vacío de
elementos que denominan símbolos y los denotaran con el símbolo Ʃ. Con otro autor como
John Martin en su libro “Lenguajes formales y teoría de la computación” Por tanto puedo
concluir que un alfabeto es un conjunto no vacío y finito de símbolos denotado por el
símbolo Ʃ.
Como definición personal de acuerdo a las definiciones ya consultadas tanto de varios sitios
y de varios autores puedo decir que el alfabeto o abecedario como le solemos llamar es un
conjunto de letras, con un determinado orden. podríamos precisamente decir que el alfabeto
es un conjunto de letras (caracteres o grafemas) de un sistema de escritura, cada una
representa aproximadamente un fonema (consonante o vocal).
Como vino convencionalmente, utilizamos el símbolo ∑ (sumatoria) para designar un
alfabeto. Entre los alfabetos más comunes se incluyen los siguientes:
1.2 Cadenas
La definición de cadena se puede encontrar con varias definiciones como Deán Kelly en su
libro “Teoría de autómatas y lenguajes formales” nos dice que en su libro definirá cadena
como palabra y dice que es una secuencia finita de símbolos de un determinado alfabeto es
conocido como palabra ó cadena.
Otra definición seria que una cadena es una secuencia finita de símbolos que pertenecen a
un alfabeto y comúnmente se denota con la letra.
Ø EJEMPLO: si ∑= {0,1}, entonces ∑1= {0,1}, ∑2= {00, 01, 10, 11}, ∑3= {000, 001,
010, 011, 100, 101, 110, 111}, etc.
LA CADENA VACÍA
La cadena vacía es aquella cadena que presenta cero apariciones de símbolos. Esta cadena,
designada por £, es una cadena que puede construirse en cualquier alfabeto
COMPILADOR:
El compilador es un programa informático que traduce un programa escrito en lenguaje de
programación y lo pasa a lenguaje de programación, podemos decir que este programa nos
permite traducir un código fuente de un programa en lenguaje de nivel alto, y lo pasmos a
otro nivel inferior (lenguaje maquina).
INTERPRETES:
Los interpretes son los que realizan normalmente dos operaciones:
Traducen el código fuente a un formato interno.
Ejecuta o interpretan el programa traducido al formato interno.
Donde la primera pertenece al interprete el cual llama a veces al compilador, así se genera
el código interno, pero no es el lenguaje de máquina, ni lenguaje de símbolos, ni mucho
menos un lenguaje de nivel alto.
ENSAMBLADORES:
El ensamblador es el programa en que se realiza la tracción de un programa escrito en
ensamblador y lo pasa a lenguaje maquina. Directa o no directa la traducción en que las
instrucciones no son mas que instrucciones que ejecuta la computadora.
GRAMATICA:
La gramática es un ente formal para especificar, de una manera finita, el conjunto de
cadenas de símbolos que constituyen un lenguaje.
Es un conjunto finito de reglas que describen toda la secuencia de símbolos pertenecidas a
un lenguaje especifico y dos gramáticas que describen el mismo lenguaje que llaman
gramáticas equivalentes
También lo podemos definir como un programa que traduce o convierte desde un texto o
programa escrito en un lenguaje fuente hasta un texto o programa equivalente escrito en un
lenguaje destino produciendo, si cabe, mensajes de error.
4. Fase de Síntesis
1.5 Fases de un compilador.
Es un programa traductor cuya función es traducir (compilar) un programa fuente escrito en
algún lenguaje de alto nivel a lenguaje máquina. Este programa traducido o programa
objeto, normalmente es guardado en memoria secundaria en forma ejecutable y es cargado
a memoria principal cada vez que requiera ser ejecutado.
1.-Analizador léxico:
Lee la secuencia de caracteres de izquierda a derecha del programa fuente y agrupa las
secuencias de caracteres en unidades con significado propio (componentes léxicos o
“tokens” en ingles).
• Las palabras clave, identificadores, operadores, constantes numéricas, signos de
puntuación como separadores de sentencias, llaves, paréntesis, etc. , son diversas
clasificaciones de componentes léxicos.
2.-Análisis sintáctico:
Determina si la secuencia de componentes léxicos sigue la sintaxis del lenguaje y obtiene la
estructura jerárquica del programa en forma de árbol, donde los nodos son las
construcciones de alto nivel del lenguaje.
• Se determinan las relaciones estructurales entre los componentes léxicos, esto es
semejante a realizar el análisis gramatical sobre una frase en lenguaje natural. La estructura
sintáctica la definiremos mediante las gramáticas independientes del contexto.
3.-Análisis semántico:
Realiza las comprobaciones necesarias sobre el árbol sintáctico para determinar el correcto
significado del programa.
• Las tareas básicas a realizar son: La verificación e inferencia de tipos en asignaciones y
expresiones, la declaración del tipo de variables y funciones antes de su uso, el correcto uso
de operadores, el ámbito de las variables y la correcta llamada a funciones.
• Nos limitaremos al análisis semántico estático (en tiempo de compilación), donde es
necesario hacer uso de la Tabla de símbolos, como estructura de datos para almacenar
información sobre los identificadores que van surgiendo a lo largo del programa. El análisis
semántico suele agregar atributos (como tipos de datos) a la estructura del árbol semántico.
7.-Gestor de errores:
Detecta e informa de errores que se produzcan durante la fase de análisis. Debe generar
mensajes significativos y reanudar la traducción.
Encuentra errores: – En tiempo de compilación: errores léxicos (ortográficos), sintácticos
(construcciones incorrectas) y semánticos (p.ej. errores de tipo) – En tiempo de ejecución:
direccionamiento de vectores fuera de rango, divisiones por cero, etc. – De
especificación/diseño: compilan correctamente pero no realizan lo que el programador
desea.
CONCLUSION.
BIBLIOGRAFIA.
Rivera Diaz, H., 2016. Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría
de …. [online] Es.slideshare.net. Available at:
<https://es.slideshare.net/hugoalbertoriveradiaz/conceptos-unidad-1-lenguajes-automatas-
introduccin-a-la-teora-de-lenguajes-formales> [Accessed 8 September 2021].