Sie sind auf Seite 1von 12

INSTITUTO TECNOLOGICO SUPERIOR

DE ALVARADO

INGENIERA EN SISTEMAS COMPUTACIONALES

Materia:
Lenguajes y Automatas

Producto Acadmico:
Investigacin
Unidad 1

Integrantes del Equipo:


*Lourdes Mozo Hernndez
126Z04
*Gabriela Cruz Ramrez
126Z0471
*Marcial Abisai Len Muoz
126Z04

Docente:
I.S.C Mara Guadalupe Ramrez Garca

06/Febrero/2015
INDICE

Introduccin...1

Objetivo.........2
Contenido..3-9
Conclusiones10
Bibliografa11

INTRODUCCIN

Se pretende observar los conceptos bsicos de Lenguajes y Autmatas as como las herramientas que se utilizan
en su desarrollo las diferentes formas de traduccin e interpretacin lo que son los compiladores y el lenguaje de
computadoras, tambin se hablara de los tipos de lenguajes que existen y como se desarrollan cada uno de ellos.

Los diferentes tipos de cadenas y secuencias las diferentes fases de los compiladores as como de su
funcionamiento y como aplica en las aplicaciones

1
OBJETIVO

Conocer e identificar cada uno de los lenguajes formales como son alfabetas, cadenas y las fases que se
deben llevar a cabo para la compilacin de un programa, as como para su buen uso

Unidad 1 - Introduccin a la Teora de Lenguajes Formales


1.1 ALFABETO
Un alfabeto es un conjunto finito no vaco cuyos elementos se llaman smbolos. Denotamos un alfabeto arbitrario
con la letra .

Smbolos:
Es una entidad abstracta que no se puede definir, ya que se dejara como un axioma. Igual que se define un punto
en la geometra. La cual normalmente los smbolos son letras (a, b, c,. z), dgitos (0,1,9, caracteres (+, -, *,
/,>,< ..). los smbolos pueden estar formados por varias letras o caracteres.

Alfabeto:
El alfabeto o abecedario es un conjunto de letras, con un determinado orden. Podramos 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).

1.2 CADENAS.

Una cadena o palabra sobre un alfabeto . admitimos la existencia de una nica cadena que no tiene smbolos, la
cual se denomina cadena vaca y se denota con . la cadena vaca desempea, en la teora de lenguajes formales,
un papel similar al que desempea el conjunto vaco en la teora de conjuntos.

Longitud de cadena.
La longitud de cadena es el nmero de smbolos que contiene. La notacin empleada es la que es la que se indica
en el ejemplo:
Ejemplos:
I abcb I = 4,
I a + 2*b I = 5
I 000111 I = 6
I if a > b then a = b; I = 9

3
Cadena Vaca.
Una cadena vaca es la nica cadena de caracteres de tamao cero. Y la podemos denotar usualmente con letras
o (Griegas).

Concatenacin de cadenas.
La concatenacin de dos cadenas u y v, escrita uv, es "pegar" las dos cadenas para formar una nueva.

Ejemplo:
Sea u = ab
v = ca
w = bb. Entonces
uv = abca
uw = cabb
(uv) w = abcabb
u(vw) = abcabb
El resultado de la concatenacin de u, v y w es independiente del orden en que las operaciones son ejecutadas.
Matemticamente esta propiedad es conocida como asociatividad.

Universo del discurso.


Es un conjunto de todas las cadenas donde podemos formar con smbolos del alfabeto V le denominamos universo
del discurso de V y la representamos de la siguiente manera W (V). Es evidente que W(V) es un conjunto infinito y
que la cadena vaca pertenece a W(V).

Ejemplo:
Un alfabeto con una sola letra V = { a }, podemos decir que el universo del discurso es: W(V) = { , a, aa, aaa,
aaaa,....} y asi contiene una cadenas infinitas.

4
1.3 LENGUAJES
Es un conjunto de cadenas, de todas las seleccionadas de un *. donde determinado el alfabeto se denomina
lenguaje. Si es un alfabeto y L *, entonces L es un lenguaje de . Observe que un lenguaje de no necesita
incluir cadenas con todos los smbolos de , ya que una vez que hemos esta que L es un lenguaje de , tambin
sabemos que es un lenguaje de cualquier alfabeto que sea un sper conjunto de .
La eleccin del trmino "lenguaje" puede parecer extraa. Sin embargo, los lenguajes habituales pueden
interpretarse como conjuntos de cadenas.
Un ejemplo seria el ingls, donde la coleccin de las palabras correctas inglesas es un conjunto de cadenas del
alfabeto que consta de todas las letras. Otro ejemplo es el lenguaje C.

1.4 TIPOS DE LENGUAJES


Lenguaje natural (castellano)
Nosotros estamos relacionados con el concepto tradicional de gramtica que, de esta forma intuitiva, podemos
considerar un conjunto de reglas el cual nos indican que es correcto y que no lo es del, lenguaje natural. Con este
fin podemos acrcanos a la definicin ms clara y formal de la lengua castellana.

Lenguaje artificial.
En este lenguaje aplicamos el mismo mtodo en el cual definimos un fragmento del lenguaje de programacin.
Donde pretendemos describir las instrucciones el cual nos permite asignar un valor a una expresin a una
variable en un lenguaje C.

Lenguaje regular.
Llamamos as a los lenguajes porque sus palabras contienen "regularidades" o repeticiones de los mismos
componentes, por ejemplo en este lenguaje L1 = { ab, abab, ababab, abababab,...} Este ejemplo podemos apreciar
las palabras de L1 son solo repeticiones de "ab" donde se repiten varias veces. Su regularidad consiste en las
palabras que contienen "ab" varias veces.

1.5 HERRAMIENTAS COMPUTADORAS LIGADAS CON LENGUAJES

Traductor.
Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje (lenguaje fuente) y como
salida produce un texto escrito en un lenguaje (lenguaje objeto) que preserva el significado de origen.
5
Ejemplos de traductores son los ensambladores y los compiladores.

Compilador.
El compilador es un programa informtico que traduce un programa escrito en lenguaje de programacin y lo pasa
a lenguaje de programacin, podemos decir que este programa nos permite traducir un cdigo fuente de un
programa en lenguaje de nivel alto, y lo pasmos a otro nivel inferior (lenguaje maquina).

Ensambladores.
Es el programa en que se realiza la traccin de un programa escrito en ensamblador y lo pasa a lenguaje mquina.
Directa o no directa la traduccin en que las instrucciones no son ms que instrucciones que ejecuta la
computadora.

Interpretes.
Son los que realizan normalmente dos operaciones:
Traducen el cdigo 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 cdigo interno, pero
no es el lenguaje de mquina, ni lenguaje de smbolos, ni mucho menos un lenguaje de nivel alto.

1.6 ESTRUCTURA DE UN TRADUCTOR


Un traductor es un programa que tiene como entrada un texto escrito en un lenguaje (lenguaje fuente) y como
salida produce un texto escrito en un lenguaje (lenguaje objeto) que preserva el significado de origen. Ejemplos de
traductores son los ensambladores y los compiladores.
En el proceso de traduccin se identifican dos fases principales:
* Fase de anlisis
* Fase de Sntesis

Ensambladores.
El programa ensamblador es el programa que realiza la traduccin de un programa escrito en ensamblador a
lenguaje mquina. Esta traduccin es directa e inmediata, ya que las instrucciones en ensamblador no son ms
que nemotcnicos de las instrucciones mquina que ejecuta directamente la CPU.

6
Tipos de ensambladores

Podemos distinguir entre tres tipos de ensambladores:


* Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres simblicos a
las distintas instrucciones.
* Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores bsicos. Hacen todo
lo que puede hacer un ensamblador, y adems proporcionan una serie de directivas para definir e invocar
macroinstrucciones.
* Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una
nueva arquitectura de procesadores de 32 bits, realizan la misma tarea que los anteriores, permitiendo tambin el
uso de macros, permiten utilizar estructuras de programacin ms complejas propias de los lenguajes de alto nivel.

Compiladores.
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro
lenguaje de programacin, es decir programa que permite traducir el cdigo fuente de un programa en lenguaje de
alto nivel, a otro lenguaje de nivel inferior (lenguaje mquina). Generando un programa equivalente a capaz de
interpretar.

Estructura de un Compilador.
Cualquier compilador debe realizar dos tareas principales: anlisis del programa a compilar y sntesis de un
programa en lenguaje mquina. Para el estudio de un compilador, es necesario dividir su trabajo en fases. Cada
fase representa una transformacin al cdigo fuente para obtener el cdigo objeto. En cada una de las fases se
utiliza un administrador de la tabla de smbolos y un manejador de errores.

Componentes en que se divide un compilador:


Anlisis Lxico. En esta fase se lee los caracteres del programa fuente y se agrupan en cadenas que representan
los componentes lxicos. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o
con su nombre en ingls token).
Anlisis Sintctico. Los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para
sintetizar la salida.
Anlisis Semntico. Intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no
tengan significado para la operacin implicada.
Generacin de cdigo Intermedio. Se puede considerar esta operacin intermedia como un subprograma para
una mquina abstracta, a esta representacin debe tener dos propiedades importantes: debe ser fcil de producir y
fcil de traducir al programa objeto.

7
Optimizacin de Cdigo. Se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina
ms rpido de ejecutar.
Generacin de Cdigo. Esta constituye la fase final de un compilador.

Administrador de la tabla de smbolos. Se encarga de manejar los accesos a la tabla de smbolos, en cada una
de las etapas de compilacin de un programa.
Manejador de errores. Es posible encontrar errores. De esta forma podrn controlarse ms eficientemente los
errores encontrados en cada una de las fases de la compilacin de un programa.

INTERPRETES
Los intrpretes realizan normalmente dos operaciones:
* Traducen el cdigo fuente a un formato interno.
* Ejecutan o interpretan el programa traducido al formato interno.
La primera parte del intrprete se llama a veces "el compilador", aunque el cdigo interno que genera no es el
lenguaje de la mquina, ni siquiera lenguaje simblico, ni tampoco un lenguaje de alto nivel.

Estructura
Particularidades de la interpretacin:
* Ahorra memoria.
* Produce un resultado que no se puede almacenar, lo cual hace la ejecucin lenta.
* No demasiado eficiente, cada vez que se entre en un bucle se analizaran sus sentencias.
* Facilita el proceso de depuracin.
* No produce resultados transportables.
La interpretacin es til en:
* Sistemas interactivos.
* Programas de pequea envergadura.
* Programas de prototipo y de enseanza.
8

1.7 FASES DE UN COMPILADOR


Fases de un compilador: El autor Addison Wesley nos dice que un compilador opera en fases, cada una de las
cuales transforma al programa fuente de una representacin en otra y nos propone la siguiente estructura
Analizador lxico: esta fase lee los caracteres en el programa fuente y agrupa en una cadena de componentes
lxicos en los que cada componente representa una secuencia lgicamente coherente de caracteres, como un
identificador, una palabra clave (if, while, etc.)

Analizador sintctico y semntico: por lo general manejan una gran porcin de los errores detectables por el
compilador. Durante el anlisis semntico el compilador intenta detectar construcciones que tengan la estructura
sintctica correcta.
Generacin de cdigo intermedio: Despus de los anlisis sintctico y semntico, algunos compiladores
generan una representacin intermedia explcita del programa fuente.
Optimizacin de cdigo: esta fase trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de
mquina ms rpido de ejecutar.
Generacin de cdigo: Esta es la fase final de un compilador es la generacin de cdigo objeto, que por lo
general consiste en cdigo de mquina re localizable o cdigo ensamblador. Las posiciones de memoria se
seleccionan para cada una de las variables usadas por el programa.

CONCLUSIONES
o

Gabriela Cruz Ramrez

Al investigar los conceptos tericos de los Lenguajes Formales as como cada uno de sus temas y subtemas tuve
la oportunidad para saber ms a detalle sobre dichos conceptos ya que solo tena las ideas bsicas.
o

Ma. De Lourdes Mozo Hernndez

Se puede concluir que para poder desarrollar lo que son los lenguajes y autmatas debemos tener un
conocimiento bsico de lo que es el alfabeto, las cadenas, los lenguajes, etc. Este ltimo es muy importante al
igual que los dems conceptos, ya que van de la mano
Tambin se puede denotar que los tipos de lenguajes son variados y cada uno de ellos son usados para distintos
tipos de trabajos, tambin que un traductor recibe el contenido de un texto con un tipo de lenguaje y lo muestra al
usuario con un lenguaje que pueda ser interpretado por el mismo

Marcial Abisai Len Muoz

De esta manera se vio los conceptos tericos de alfabeto, cadena, smbolo, longitud de cadena, etc. As como
cada uno de sus temas y subtemas.
Los lenguajes son un tipo de reglas o cadenas que nos proporcionan diversos usos hay muchos y diferentes tipos
de lenguaje uno de ello es el que normalmente hablamos pero al igual que nosotros las computadoras tambin
tienen su lenguaje y para ello se necesita de traductores para compilar el cdigo fuente hay varios compiladores e
intrpretes para este lenguaje

10
BIBLIOGRAFIA

G, E. F. (23 de Marzo de 2001). Wikipedia. Obtenido de http://www.lenguajesyautomatas.com

(Galeon, 2005)
Bibliografa
G, E. F. (23 de Marzo de 2001). Wikipedia. Obtenido de http://www.lenguajesyautomatas.com
Galeon, M. (14 de Noviembre de 2005). Wikipedia. Obtenido de http://10380054.galeon.com/u1.html

11

Das könnte Ihnen auch gefallen