Sunteți pe pagina 1din 16

INSTITUTO TECNOLGICO DE JIQUILPAN

ING. SISTEMAS COMPUTACIONALES

Tema:
Ensayo Unidad I: Introduccin a la Teora
de Lenguajes y Autmatas

Alumna:

Mara Magdalena Rodrguez Avalos 14420518

Asesora:

Lic. Odiseo

Asignatura: Lenguaje y Autmatas

JIQUILPAN, MICH., 28/08/2017


Unidad 1: Introduccin a la Teora de Lenguajes y
Autmatas

Introduccin:

En el siguiente ensayo se podr identificar los conceptos tericos y


necesarios, al igual que algunos ejemplos relacionados con los temas
de la unidad 1, de la materia de Lenguajes y autmatas 1, por lo cual
se realizaron las investigaciones necesarias para poder comprender
mejor los conceptos principales de la unidad, ya que son la base para
comenzar con la materia, y nos resulte fcil en el transcurso de las
unidades.
1.1 Alfabeto

Se le llama alfabeto a un conjunto finito no vaco cuyos elementos se


denominan letras o smbolos. Por lo que se denomina palabra a
toda secuencia finita de letras formadas por smbolos de un alfabeto.
Generalmente se utiliza la letra para identificar alfabetos, por lo que
se puede definir por la enumeracin de los smbolos que contiene.

Ejemplos.

1 = {0, 1}

2 = { a, b }

3 = { na, pa, bra, la}

4 = { <HTML>, </HTML>, <BODY>, <BODY>}

5 = { a,ab,aab}

Se utilizan meta-smbolos(tal como { , }, =, y la coma )para escribir


sobre lo que hablamos, as que siempre se tendr claro cuando se
trate de un smbolo del alfabeto, o si se trata de un meta-smbolo.

Se utilizan subndices para distinguir diferentes alfabetos, normalmente


usamos minsculas como alfabeto S= { a,. . . . . . . ,z,}, en los ejemplos,
sea que pueden ser letras desde el principio del alfabeto.

Smbolos:

Un smbolo es una entidad abstracta. Los cuales normalmente estn


formados por varias letras, dgitos, y caracteres como las siguientes:

Letras (a, b, c,...Z)

Dgitos (0,1,....9)
Caracteres (+, - , * , /, <, >....).

Longitud de una palabra

Se llama longitud de una palabra x, y se representa por |x|, al


nmero de smbolos que la componen.

Ejemplos: sobre 5 ={a,b,c,d}: ||=0, |a|=1, |abc|=3

Concatenacin.

Sean dos palabras x e y definidas sobre el alfabeto . La


concatenacin de x e y, denominada xy, es una palabra que
contiene todos los smbolos (de derecha a izquierda) de x seguidos de
los smbolos de y (de derecha a izquierda)

Ejemplos: x =abc, y =da, definidos sobre ={a,b,c,d} xy=abcda ;


|xy|=|x|+|y|=5

Potencia

Sea i un nmero natural, y x una palabra. La potencia i-sima de x,


denominada xi, es la operacin que consiste en concatenarla
consigo misma i veces.

Ejemplos: x =abc

x1=abc x2=abcabc x3=abcabcabc

Palabra inversa

Sea x=A1A2...An con Ai una palabra sobre el alfabeto . Se llama


palabra refleja o inversa de x, y se representa por x-1, a la palabra
AnAn-1...A1. Si x= entonces x-1=.

Ejemplos: x =abc

x-1=cba
1.2 Cadena

Es una cadena o palabra sobre un alfabeto . Donde se admite la


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

Habitualmente, se emplean las letras minsculas del principio del


alfabeto (o dgitos) para designar a los smbolos y las letras minsculas
del final del alfabeto, normalmente w, x , y ,z, para designar cadenas.

Longitud de cadena.
Es el nmero de smbolos que contiene la cadena. La notacin que se
utiliza es la que se mostrara en el siguiente ejemplo:

|abcb|=4

| a+2*b |= 5

| 0001111| =6

| if > ab then a = b; |=9

Cadena Vaca.

Una cadena vaca es la nica cadena de caracteres de tamao


cero, que puede construirse en cualquier alfabeto. Y la podemos
denotar usualmente con letras o (Griegas).
Concatenacin de cadenas.

La concatenacin de dos cadenas es la cadena que se forma al


escribir la primera seguida de la segunda, sin que haya espacio entre
ellas. La yuxtaposicin se utiliza como el operador de concatenacin.
Esto es si w y x son cadenas, entonces wx es la concatenacin de
estas dos cadenas. Por lo cual la cadena vaca es la identidad para
el operador de concatenacin, es decir w= w para cada cadena
de w.

Ejemplo:

Sea u=ab
v= ca
w= bb.

Forman las siguientes cadenas


uv= abca
uw = cabb
(uv) w = abcabb
U (vw)= abcabb

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 afabeto con una sola letra V = { a }, podemos decir que el universo


del discurso es:
W(V) = { , a, aa, aaa, aaaa,....} y as contiene una cadenas infinitas.
1.3 Lenguajes

Es un conjunto de cadenas, de todas las seleccionadas de un *, ya


que el conjunto es un determinado alfabeto, que se le llama
lenguaje. Si es un Alfabeto y L *, entonces L es un lenguaje de . Ese
lenguaje de no necesita incluir cadenas con todos los smbolos de
nuestro alfabeto, ya que es un lenguaje que puede ser de cualquier
alfabeto que sea un sper conjunto de .

Ejemplo.
Los siguientes son lenguajes sobre un alfabeto A: L1 = {a, b, }, smbolos
a, b y la cadena vaca L2 = {a ib i | i = 0,1,2,...}, palabras formadas de
una sucesin de smbolos a, seguida de la misma cantidad de
smbolos b.
L3 = {uu1 | u A }, palabras formadas con smbolos del alfabeto A y
que consisten de una palabra, seguida de la misma palabra escrita
en orden inverso.

Lenguajes vacio.
Es un conjunto vaco, que se denota por { }, este lenguaje no debe
de confundir con un lenguajes que contenga una sola cadena, y
que sta sea la cadena vaca, es decir { 1 }, el nmero de
elementos(cardinalidad) de estos dos conjuntos es diferente.
Cardinal ({ }) = 0
Cardinal ({ 1},) = 1
1.4 Tipos de lenguaje.

Podemos encontrar varios tipos de lenguajes como los que describir


enseguida:

Lenguaje Declarativo
Lenguaje de Alto Nivel
Lenguaje de bajo nivel
Lenguaje Ensamblador
Lenguaje Mquina
Lenguaje Regular

Lenguaje Declarativo.
Son lo ms parecidos al castellano o ingles en su potencia expresiva y
funcionalidad, ya que estn en el nivel ms alto respecto a los otros
tipos de lenguaje. Se caracteriza por ser un lenguaje de rdenes,
denominados por sentencias que expresan Lo que hay que hacer
en vez de como hacerlo.

Lenguaje de Alto Nivel.


Son los ms utilizados como lenguaje de programacin.
Aunque no son fundamentalmente declarativos, este lenguaje
permite que los algoritmos se expresen en un nivel y estilo de escritura
fcilmente legible y comprensible por otros programadores, adems
de que se caracterizan de transportabilidad.

Lenguaje de Bajo Nivel.


Es un lenguaje que depende de la mquina, los programas que se
realizan con este tipo de lenguajes no puede migrar o utilizar en otras
mquinas, este tipo de lenguaje est diseado a medida del
hardware, ya que se aprovecha al mximo los caractersticas del
mismo.
Dentro de este grupo de lenguaje se encuentran el lenguaje de
mquina y ensamblador:

Lenguaje Ensamblador.
Es un derivado del lenguaje mquina y est formado por abreviaturas
de letras y nmeros mnemotcnicos. Con la creacin de este
lenguaje se crearn los programas traductores para poder pasar los
programas escritos en lenguaje ensamblador a lenguaje mquina.

Lenguaje Mquina.
Es el que ordena a la mquina las operaciones a realizar esenciales
para que funcione. Suele consistir en la combinacin de 0s Y 1s para
formar las ordenes entendibles por el hardware de la mquina,
adems de que su funcionalidad es ms veloz que los lenguaje de
alto nivel.

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.

Editor de estructuras.

Es el que tomas como entrada una secuencia de rdenes para


construir un programa fuerte. El editor de estructuras no sol realiza las
fuentes de creacin y modificacin de textos de un editor de textos
ordinarios, sino que tambin analiza el texto del programa,
imponiendo el programa fuerte una estructura jerrquica apropiada.

Traductor.
Es un programa que tiene como entrada un texto escrito en un
lenguaje (fuente) y como salida produce un texto escrito en un
(lenguaje objeto) que preserva el significado de origen.

Algunos ejemplos de traductores son los ensambladores y los


compiladores.

Compilador cruzado.
Es el que es capaz de crear cdigo ejecutable para otra plataforma,
distinta a aqulla en el que el compilador se ejecuta.

Analizador lxico.
Es la primera fase de un compilador que consiste en un programa
que recibe como entrada el cdigo fuente de otro programa y
produce una salida compuesta de tokens (componentes lxicos) o
smbolos. Su principal funcin es leer una secuencia de caracteres del
programa fuente, carcter a carcter y elaborar como salida la
secuencia de componentes lxicos.

Los componentes lxicos representan:


- Palabras reservadas: IF, WHILE
-Identificadores: VARIABLES, FUNCIONES
- Smbolos especiales: ;, (), {}
- Operadores: =, >,<, +
- Constantes numricas: ENTEROS, FLOTANTES
- Constantes de carcter

1.6 Estructura de un traductor.

Un traductor es un programa que funciona como entra un texto


escrito en un lenguaje fuente y como salida un texto escrito en un
lenguaje objeto, que preserva el significado de origen.
Ejemplo de un traductor son los ensambladores y lo compiladores.

En el proceso de su traduccin puedes identificar dos fases principales


Fase anlisis.
Fase de sntesis.

Fase de anlisis
Fase de Sntesis

1.7 Fases de un compilador.

Un compilador es un programa que opera en fases, cada una de las


cuales transforma al programa fuente de una representacin en otra
y nos propone la siguiente estructura.
Cada una de las fases de un compilador son esenciales para su
funcionamiento, para ello se describir cada uno de ellas enseguida:

Analizador lxico:

Su funcionamiento es agrupar los caracteres que se leen del


programa fuente en cadenas, las cuales representan los
componentes lxicos de una secuencia de caracteres, que se le
llaman lexema (token en ingles).

Anlisis Sintctico.
Los componentes lxicos se agrupan en frases gramaticales que el
compilador utiliza para sintetizar la salida.

Anlisis Semntico.
Se encarga de realizar las comprobaciones necesarias sobre el rbol
sintctico para determinar si el significado del programa es correcto.

Las tareas necesarias que se tiene que realizar son:


La verificacin e inferencia de tipos en asignaciones y
expresiones.
Declaracin del tipo de variables y funciones ante su uso.
El correcto uso de operadores.
mbito de las variables y la el llamado de las funciones.
Generacin de cdigo intermedio.
Se trata de una operacin intermedia en un subprograma para una
mquina abstracta, debe de tener dos propiedades importantes:
debe de ser fcil de traducir al programa objeto.

Optimizacin de Cdigo.
Es una mejora al cdigo intermedio, de modo que haga que el un
cdigo de mquina sea ms rpido de ejecutar.

Generacin de Cdigo.
Es la fase final de un compilador. Administrador de la tabla de
smbolos, ya que se encarga de manejar los accesos a la atabla de
Smbolos, en cada una de las etapas de compilacin de un
programa.

Manejador de Errores.
Suele encontrar errores. De esta manera controlar ms eficientemente
los errores encontrado en cada una de las fases de la compilacin de
un programa.

Cada fase encuentra erres y debe de tratarlos para continuar la


compilacin.
Las fases de Anlisis Sintctico y Semntico manejar la mayora
de errores.
Conclusin

De esta manera se vio los conceptos tericos de alfabeto, cadena,


smbolo, longitud de cadena, etc. Lo ms claro posible para poder
entenderlos de una mejor manera y as, llevar las bases necesarias de
los conceptos en el transcurso de la materia. Por lo que tambin
describimos cada uno de sus temas y subtemas que representan la
unidad 1 de la materia ya antes mencionada.
Paginas consultadas

https://es.slideshare.net/LuyzMeyner/lenguajes-autmatas
http://lenguajesyautomatasitsh.blogspot.mx/
http://10380054.galeon.com/u1.htm
https://prezi.com/58tp7xwl6smt/lenguajes-y-automatas-1/

S-ar putea să vă placă și