Sie sind auf Seite 1von 26

TECNOLOGICO NACIONAL DE MEXICO

INSTITUTO TECNOLOGICO DE PACHUCA

LENGUAJES Y AUTÓMATAS I
“INTRODUCCIÓN A LA TEORÍA DE LENGUAJES FORMALES”
ACTIVIDAD 01-U1

Profesor: M.c. Carlos Ignacio Rivas Palacios

Integrantes:

• Galván Mendieta Julián Saúl


• Martínez Paredes Cesar Augusto
• Melo Morales Johana Alejandra
I. Leer a manera de comprensión los documentos proporcionados por el profesor, HOPCROFT, J.E.
Introducción a la Teoría de autómatas, lenguajes y computación y Casa del Tiempo(Revista) Vol. V, época IV
núm. 56 Cien años de Alan Turing UAM, e investigar en diferentes fuentes bibliográficas los conceptos
siguientes:

1. ¿Qué es y que estudia la Teoría de la


Computación?
La teoría de la computación es un conjunto de
conocimientos racionales, sistematizados y
funcionales que se centran en el estudio de la
abstracción de los procesos que ocurren en la
realidad con el fin de reproducirlos con ayuda de
sistemas formales.
2. ¿Qué son los autómatas?
Se conoce como teoría de autómatas al estudio de las maquinas o
dispositivos abstractos con capacidad de computación.
Un autómata es un modelo matemático para una maquina en estado finito.
3. ¿Para qué sirven los autómatas?

Un autómata programable procesa y controla


cualquier sistema, se necesita que este previamente
programado para la tarea que se va a realizar.

Es un modelo matemático, consiste en un autómata que es capaz de


implementar cualquier problema matemático expresado atreves de un
algoritmo .
Es un dispositivo que manipula símbolos sobre una tira de cinta de
acuerdo a una tabla de reglas.
4. ¿Qué es la Máquina de Turing?
Es un modelo matemático, consiste en un autómata que es capaz de
implementar cualquier problema matemático expresado atreves de un
algoritmo .
Es un dispositivo que manipula símbolos sobre una tira de cinta de
acuerdo a 4.-¿Qué
una tabla deesreglas.
la Máquina de Turing?
5. ¿Qué problemas NO puede resolver una
computadora?
Intratables o NP-difíciles aunque en principio pueden ser resueltos,
en la práctica llevaría tanto tiempo que los computadores no
tendrían ninguna utilidad.
4.-¿Qué es la Máquina de Turing?
6. ¿Qué es decibilidad?
Son denominados decidibles los problemas
que se pueden resolver un computador.
7.-¿Qué es intratabilidad y problemas
tratables?
La teoría de los problemas intratables permite
deducir si va hacer posible abordar un problema
y escribir un programa capaz de resolverlo.
Problemas tratables son los problemas que un
computador puede resolver en un tiempo
proporcional a alguna función que crezca
lentamente con el tamaño de la entrada.
II. Investigar que son:
a) Los lenguajes naturales y escribir 4 ejemplos de ellos
b) Los lenguajes artificiales y escribir 5 ejemplos de ellos

Un lenguaje es un conjunto (posiblemente infinito) de


cadenas, donde los símbolos de todas ellas se han
seleccionado de un determinado alfabeto.
a. Lenguajes naturales

El lenguaje natural es la lengua o idioma hablado o


escrito por humanos para propósitos generales de
comunicación.

Ejemplos

Las distintas lenguas utilizadas por las


distintas comunidades de hablantes
hacer afirmaciones sobre lo que ocurre
Extracción de información
Análisis del lenguaje
b. Lenguajes artificiales
es cualquier lengua cuyo léxico y gramática han sido desarrollados
desde una fuente individual, ya sea un creador o un grupo
seleccionado de creadores.

Ejemplos

• El conjunto de todos los programas sintácticamente


válidos en un determinado lenguaje de
programación.
• Las matemáticas
• El conjunto de las formulas en la lógica de primer
orden
• Código Morse
III. Realizar lo que se pide a continuación:
a. Investigar en diferentes fuentes bibliográficas cuales
son los traductores que se utilizan con más frecuencia
b. Hacer un cuadro sinóptico lo más completo posible
de los diferentes tipos de traductores que existen
actualmente
c. Busque y consiga a manera de evidencia de aprendiz
uno o más diagramas que muestren la estructura de
los traductores, incluya la de diferentes tipos de
traductores
d. Investigue la definición de COMPILADOR, sus
funciones y muestre un esquema completo de este
dónde se visualicen sus 6 fases que lo integran
b. Hacer un cuadro sinóptico lo más completo posible de los
diferentes tipos de traductores que existen actualmente

Es un programa que procesa instrucciones


en un lenguaje de alto nivel y las convierte a
lenguaje máquina. El compilador es la parte
Compiladores central de dicho lenguaje, porque define y
traduce las instrucciones recibidas.

Es un programa que ejecuta línea a línea las


instrucciones cargando el código fuente y
Tipos de traduciendo las instrucciones a un lenguaje
Interpretes
traductores intermedio que puede luego ser ejecutado y
genera un código binario.

Programa que forma parte del compilador,


que es invocado antes que comience la
Preprocesadores traducción real. Puede ser requerido por el
lenguaje o ser agregados después para
agregar facilidades adicionales.
Es un programa informático que tiene la capacidad
de traducir las órdenes que introducen los
Intérpretes de usuarios, mediante un conjunto de instrucciones
facilitadas por él mismo directamente al núcleo y
comandos al conjunto de herramientas que forman el
sistema operativo.

Es un tipo de programa, informático que se encarga de


traducir un fichero fuente escrito en un lenguaje
ensamblador, a un fichero objeto que contiene código
máquina ejecutable directamente por la máquina para la
Ensambladores
Tipos de que se ha generado, en si la función de un ensamblador es
traducir un programa en lenguaje de ensamblador al código
traductores correspondiente en lenguaje de máquina.

Pasan un lenguaje de alto nivel a otro lenguaje de


Conversores alto nivel, para conseguir mayor portabilidad. Es
un compilador que obtiene código para ejecutar
fuente -fuente en otra máquina. Se utilizan en la fase de
desarrollo de nuevos ordenadores. e la máquina.
•C
Compiladores • C++
• FORTRAN

Tipos de
• Motor Zend
traductores
• cPython
(Ejemplos) Interpretes • Ruby MRI
• YARV

El preprocesador de C hace que el contenido


del archivo <global.h> reemplace a la
Preprocesadores proposición #include <global.h> cuando
procesa un archivo que contenga a esa
proposición.
Intérpretes de • "Bourne shell" y el "C shell"
comandos ambos de UNIX.

• El Microsoft Macro Assembler (MASM) es un


ensamblador para la familia x86 de
Ensambladores microprocesadores
Tipos de
traductores
(Ejemplos)

• Un conversor de JAVA a C, necesitaría


retoques ya que C no tiene recolector
Conversores de basura. Si la traducción no ha sido
fuente -fuente inteligente y el programa destino no es
eficiente.
c. Busque y consiga a manera de evidencia de aprendizaje uno o más diagramas que
muestren la estructura de los traductores, incluya la de diferentes tipos de traductores

Un traductor se define 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. Los traductores engloban tanto a los compiladores (en
los que el lenguaje destino suele ser código máquina) como a los
intérpretes (en los que el lenguaje destino está constituido por las
acciones atómicas que puede ejecutar
el intérprete). La figura muestra el esquema básico que compone a un
compilador/intérprete.
Compiladores Interpretes
Preprocesadores

Ensamblador
c. Investigue la definición de COMPILADOR, sus funciones y muestre un
esquema completo de este dónde se visualicen sus 6 fases que lo
integran

Un compilador es un programa informático que traduce un


programa escrito en un lenguaje de programación a otro
lenguaje de programación, generando un programa
equivalente que la máquina será capaz de interpretar.

Un compilador es un programa que permite traducir el


código fuente de un programa en lenguaje de alto nivel, a
otro lenguaje de nivel inferior (típicamente lenguaje de
máquina). De esta manera un programador puede diseñar
un programa en un lenguaje mucho más cercano a como
piensa un ser humano, para luego compilarlo a un
programa más manejable por una computadora.
Funciones
La función principal que cumple es traducir a un lenguaje mucho mas
sencillo y entendible por la maquina, informa al usuario si existen
errores en el código fuente con el fin de ejecutar la aplicación sin
problema, si existe algún error simplemente se detiene.

También registra los identificadores utilizados en el programa fuente y


toma la información de los atributos de cada identificador.
Fases de
integración
Análisis Léxico
La primera fase de escáner funciona como un texto
escáner. Esta fase busca en el código fuente como
una secuencia de caracteres y la convierte en un
lexema resultante-. Analizador Léxico representa
estos lexema resultante- en forma de fichas.

Sintaxis Análisis
La siguiente fase se denomina la sintaxis análisis o
análisis. Toma el token de análisis léxico como
entrada y genera un árbol analizar (o árbol de
sintaxis). En esta fase, token arreglos se contrastan
con el código fuente gramática, es decir, el
analizador comprueba si la expresión de los tokens
es sintácticamente correcto.
Análisis semántico
Comprueba si el análisis árbol construido sigue las
reglas del idioma. Además, realiza un seguimiento
de los identificadores, sus tipos y expresiones; si
los identificadores se declaran antes de su uso, o
no, etc. El analizador semántico produce un árbol
de sintaxis anotado como una salida.

Generación de código intermedio


Es un programa para algunos la máquina abstracta.
, Está entre el lenguaje de alto nivel y el lenguaje
de máquina. Este código intermedio debe ser
generado de tal manera que hace que sea más fácil
de traducir en la máquina de destino.
Optimización de código
La siguiente fase de optimización de código es el
código intermedio. La optimización puede ser
asumida como algo que elimina código
innecesario, y organiza la secuencia de
declaraciones con el fin de acelerar la ejecución del
programa sin desperdicio de recursos (CPU,
memoria).

Generación de código
El generador de código se traduce el código
intermedio en una secuencia de (generalmente)
reubicables código máquina. Secuencia de
instrucciones de código máquina realiza la tarea
como el código intermedio.
Tabla de símbolos
Es una estructura de datos mantendrá en todas las
fases de un compilador. Todos los nombres de
identificador junto con sus tipos se almacenan
aquí. La tabla de símbolos hace que sea más fácil
para que el compilador pueda buscar con rapidez
el registro de código y recuperarla. La tabla de
símbolos se utiliza también para el campo.
Referencias
• http://ficus.pntic.mec.es/rdis0006/lecciones/logica_proposicional/lecciones/lenguaje%20n
atural.htm
• https://prezi.com/msy0mm332nnz/lenguaje-formal-y-lenguaje-natural/
• https://html.rincondelvago.com/logica_lenguaje-formal.html
• https://www.virtuniversidad.com/greenstone/collect/ingles/index/assoc/HASHdff4.dir/doc
.pdf
• https://prezi.com/4-o-togjlm1k/tipos-de-traductores-y-compiladores/

Das könnte Ihnen auch gefallen