Вы находитесь на странице: 1из 16

INSTITUTO TECNOLGICO

DE CIUDAD VICTORIA
Unidad 1:

Introduccin a la Teora de
Lenguajes Formales
Equipo:
Martin Alberto Lara Urbina #13380577
Norberto Clemente Valdez #13380541

1.1 ALFABETO.
Es un conjunto de smbolos finito y no vaco.
Convencionalmente, utilizamos el smbolo para
designar un alfabeto.
1. = {0,1}, el alfabeto binario.
2. 2. = {a,b,...,z}, el conjunto de todas las letras
minsculas.
3. El conjunto de todos los caracteres ASCII o el
conjunto de todos los caracteres ASCII
imprimibles.

1.2 CADENAS.
Es una secuencia finita de
seleccionados de algn alfabeto.

smbolos

Por ejemplo, 01101 es una cadena del


alfabeto binario = {0,1}.

LA CADENA VACA
Es aquella cadena que presenta cero
apariciones de smbolos.
Esta cadena, designada por , es una
cadena que puede construirse en
cualquier alfabeto

LONGITUD DE UNA CADENA


Suele ser til clasificar las cadenas por
su longitud, es decir, el nmero de
posiciones ocupadas por smbolos
dentro de la cadena.
Por ejemplo, 01101 tiene una longitud de
5.

1.3 LENGUAJES.
Un conjunto de cadenas, todas ellas seleccionadas
de un , donde es un determinado 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 establecido que L es un lenguaje de
, tambin sabemos que es un lenguaje de cualquier
alfabeto que sea un superconjunto de .

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 mas 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 o 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 COMPUTACIONALES


LIGADAS CON LENGUAJES
Editores de estructuras:
Un editor de estructuras toma como entrada una secuencia de
rdenes para construir un programa fuente. El editor de estructuras
no slo realiza las funciones de creacin y modificacin de textos
de un editor de textos ordinario, sino que tambin analiza el texto
del programa, imponiendo al programa fuente una estructura
jerrquica apropiada.
De esa manera, el editor de estructuras puede realizar tareas
adicionales tiles para la preparacin de programas.

Impresoras estticas:
Una impresora esttica analiza un programa y lo imprime de forma
que la estructura del programa resulte claramente visible.

Verificadores estticos:
Este verificador lee un programa, lo analiza e intenta descubrir
errores potenciales sin correr el programa, algo muy parecido a la
correccin de los editores de texto como Word. Un verificador
esttico puede detectar si hay partes de un programa que nunca
se podrn ejecutar o si cierta variable se usa antes de ser
definida.

Intrpretes:
En lugar de producir un programa objeto como resultado de
una traduccin, un intrprete realiza las operaciones que
implica el programa fuente. Muchas veces los interpretes se
usan para ejecutar lenguajes de rdenes, pues cada
operador que se ejecuta en un lenguaje de ordenes suele
ser una invocacin de una rutina compleja, como un editor o
un compilador.

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.

Ensamblador:
Se refiere a un tipo de programa informtico que se encarga de
traducir un fichero fuente escrito en un lenguaje ensamblador, a
un fichero
objeto que
contiene cdigo
mquina,
ejecutable
directamente por el microprocesador.

Compilador:
Es un programa informtico que traduce un
programa escrito en un lenguaje de programacin
a otro lenguaje de programacin. Usualmente el
segundo lenguaje es lenguaje de mquina, pero
tambin puede ser un cdigo intermedio
(bytecode), o simplemente texto.

1.7 FASES DE UN COMPILADOR


Anlisis Lxico: Esta fase se encarga de verificar si todas las
cadenas pertenecen o no al lenguaje. Es decir realiza un anlisis
smbolo por smbolo indicando el token por cada uno de los
elementos reconocidos o el error en caso de no reconocer. Este
anlisis no logra detectar muchos errores por su caracterstica.
Ejemplo:
Total = valor*5
Luego del anlisis lxico:
id = id * num

Anlisis Sintctico: En esta fase se analiza la estructura de


las expresiones en base a gramticas. Aqu ya se puede
determinar si una estructura por ejemplo una expresin
matemtica mal formada. El anlisis que se realiza es jerrquico
es decir en base a rboles de derivacin que se obtienen de las
mismas gramticas. Ejemplo: position:=initial + rate*60

Generacin de Cdigo Intermedio: El cdigo intermedio es


una representacin en base a elementos de 3 y 4 direcciones.
Lo que nos permite llegar a la fase de optimizacin de cdigo.
a=b+c
1: + b c T1
2: = a T1

Optimizacin de Cdigo: Consist e en realiz ar una m ej ora en el


cdigo interm edio, para reducir el nm ero de lneas y hacer que la
ej ecucin sea m s rpida

a=b+c
1: + b c a
Generacin de Cdigo: Llegam os a la generacin de cdigo
ensam blador o cdigo m quina del procesador que nos interese por
ej em plo:

a:=b+c
LOAD B
ADD C
STORE A

Вам также может понравиться