SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
I
 La asignatura de Teoría de Autómatas y Lenguajes Formales
supone para el alumno la primera aproximación al estudio
formal de los fundamentos teóricos que subyacen en la
ingeniería interna de los lenguajes de programación y en los
propios fundamentos de la computación. No sólo será capaz
de usar mejor los lenguajes de programación disponibles,
sino que además será capaz de construir y adecuar un
lenguaje de programación en atención a los requerimientos.
Asimismo, el alumno adquirirá un mayor conocimiento de los
tipos de problemas que pueden ser resueltos con los
lenguajes de programación. Dada la relevancia de sus
contenidos, esta asignatura ha sido ampliamente
implementada en los planes de estudios de las diversas
facultades y escuelas de informática con esquemas de
contenidos bastante similares de unas universidades a otras.
Esta asignatura se basa en una serie de contenidos concretos:
 Conocer en profundidad la estructura y función de los sistemas de
descripción y reconocimiento de lenguajes formales.
 Estudiar los conceptos, modelos y técnicas relacionados con estas
cuestiones.
 Conocer las estructuras de datos y los algoritmos usados para
implementar los modelos de reconocimiento de lenguajes formales,
así como sus posibles dominios de aplicación práctica.
 Realizar implementaciones de estos modelos en algún dominio.
 Sintetizar los conceptos estudiados en ideas concretas que
permitan comprender mejor los fundamentos de la computación.
Es una entidad abstracta, que no se va a definir, pues
se dejará como axioma.Al igual que no se define
punto en Geometría. Normalmente los símbolos
son letras (a, b, c, . . . ,z), dígitos (0, 1, . . ., 9), y otros
caracteres (+, -, *, /, ?, . . .). Los símbolos también
pueden estar formados por varias letras o
caracteres, así por ejemplo las palabras reservadas
de un lenguaje de programación son símbolos de
dicho lenguaje.
Ejemplos:
a , b , c , # , 0 , 1 , + , * ,then, begin, end, else
Un alfabeto es un conjunto finito de símbolos que sirven para definir un
lenguaje. Un alfabeto se representa mediante el símbolo:
Una cadena sobre sobre algún alfabeto es una secuencia finita de
símbolos tomados de ese alfabeto. En teoría de lenguajes, los términos
frase y palabra a menudo se utilizan como sinónimos de la palabra
cadena.

Ejemplo:
Alfabeto del lenguaje binario:
 = {0,1}
 2 = { A , B , C , D , E , F , G , H, . . . , X ,Y , Z }
 3 = { a , b , c , d , 0 , 1 , 2 , 3 , 4 , * , # , + }
 4 = { 0 , 1 }
 5 = {if, then, begin, end, else, a, b, ; , =, > }
La definición que mejor encaja con el concepto de la cadena vacía
es que es la ausencia de símbolos. Es común que la cadena vacía se
confunda con el símbolo que representa el espacio en blanco.
En algunos libros de texto, se utiliza el símbolo ᴧ para denotar la
cadena vacía.
La longitud de una cadena es el número de símbolos que contiene. La
notación
empleada es la que se indica en los siguientes ejemplos.
| abcb |→ 4
| a + 2*b |→ 5
| 000111 |→ 6
| if a > b then a = b ; |→ 9
Concatenación
Si m y n son cadenas, entonces la concatenación de m y n, que se
escribe mn , es la cadena que resulta de agregar n a m. A esta operación
también se le puede considerar como un producto.
Operación Identidad:
El operando neutro de la concatenación es la cadena vacía,
ejemplo:
mϵ = ϵm = m
Transitividad:
La operación de concatenación no es transitiva,
mn ≠ nm
Ejemplo:
m = ‘casa’
n = ‘vacía’
mn = ‘casavacía’
nm = ‘vacíacasa’
Exponenciación
Dado que se puede considerar a la concatenación como un
producto, se pueden aplicar propiedades de exponenciación a las
cadenas de la siguiente manera.
Se define S0 como ϵ y para i > 0, se define Si como S i-1 S,
entonces:
S 0 = ϵ
S 1 = S
S 2 = SS
S 3 = SSS
Etcetera
Definición de términos de una cadena
Término Definición
Prefijo de s Una cadena que se obtiene eliminando cero o mas
símbolos desde la derecha de la cadena s; por ejemplo,
BAN es el prefijo de BANDERA.
Sufijo de s Una cadena que se forma suprimiendo cero o más
símbolos desde la izquierda de una cadena s; ERA es un
sufijo de la cadena BANDERA.
Subcadena de s Una cadena que se obtiene suprimiendo un prefijo y un
sufijo de s; por ejemplo,ANDE es una subcadena de
BANDERA.Todo prefijo y sufijo de s es una cadena de s,
pero no toda subcadena de s es un prefijo o sufijo de s
Prefijo, Sufijo o subcadena de s Cualquier cadena no vacía x que sea, respectivamente, un
prefijo, sufijo o subcadena de s tal que s ≠ x.
Subsecuencia de s Cualquier cadena formada mediante la eliminación de
cero o mas símbolos no necesariamente contiguos a s;
por ejemplo BADA es una subsecuencia de BANDERA.
Definición 1
El término lenguaje se refiere a cualquier conjunto de cadenas de un
alfabeto fijo. Esta definición es muy amplia y abarca lenguajes como el
vacío { } o el conjunto que solo tiene la cadena vacía { ϵ } o así como
el conjunto de todas las frases del lenguaje Pascal.
Definición 2
Se denomina lenguaje sobre un alfabeto  a un subconjunto del
universo del discurso. También se puede definir como un conjunto de
palabras de un determinado alfabeto.
Alguien puede pensar que los lenguajes se pueden definir por
enumeración de las cadenas que pertenecen a dicho lenguaje, pero este
método además de ineficiente, es en muchos casos imposible
(habitualmente un lenguaje tiene infinitas cadenas). Así los lenguajes se
definen por las propiedades que cumplen las cadenas del lenguaje.
Ejemplo
El conjunto de palíndromos (cadenas que se leen igual hacia adelante,
que hacia atrás) sobre el alfabeto {0,1}. Evidentemente este lenguaje
tiene infinitas cadenas.
Algunas cadenas de este lenguaje son:
λ
0
1
00
11
010
0110
000000
101101
111111
Operaciones aplicadas a lenguajes
Existen varias operaciones importantes que se pueden aplicar
a lenguajes. Para el análisis lexicográfico interesan principalmente la
unión, la concatenación y las cerraduras.
Operación Definición
Unión de L y M, que se escribe
L U M
L U M = { s | s está en L o s esta en M}
Concatenación de L y M que se escribe LM LM = { st | s esta en L y t esta en M }
Cerradura Kleene de L que se escribe L*
Cerradura positiva de L que se escribe L+
Ejercicio
Definir la positiva en función de la cerradura Kleene.
Solución
Ejemplo
Sea L el conjunto {A,B,C, …,,Z, a,b,c, …z} y D el conjunto
{0,1,…9}. Se pueden considerar L y D de dos maneras: L como el alfabeto
que contiene el conjunto de letras mayúsculas y minúsculas, y D como el
alfabeto que contiene el conjunto de los diez dígitos decimales. Los
siguientes son algunos ejemplos de los nuevos lenguajes creados a partir de
L y D mediante la aplicación de las operaciones con lenguajes.
1. L U D es el conjunto de letras y dígitos
2. LD es el conjunto de cadenas que consta de una letra seguida de un dígito
3. L* es el conjunto de todas las cadenas de letras, incluyendo ϵ, la cadena
vacía
4. L(LUD)* es el conjunto de todas las cadenas de letras y dígitos que
comienzan con una letra y es seguida por letras o números
5. D+ es el conjunto de las cadenas que contienen uno o más dígitos
Existe un lenguaje denominado el lenguaje vacío, que es un conjunto
vacío y que se denota por {∅ }. El lenguaje vacío no debe confundirse
con un lenguaje que contenga una sola cadena, y que ésta sea la cadena
vacía, es decir {λ}, ya que el número de elementos (cardinalidad) de
estos dos conjuntos es diferente.
Cardinal ({ ∅ }) = 0
Cardinal ({ λ }) = 1
La gramática es un ente formal para especificar, de una manera finita,
el conjunto de cadenas de símbolos que constituyen un lenguaje
Un autómata es una construcción lógica que recibe una entrada y
produce una salida en función de todo lo recibido hasta ese instante.
En el caso de los Procesadores de Lenguaje un autómata es una
construcción lógica que recibe como entrada una cadena de símbolos
y produce una salida indicando si dicha cadena pertenece o no a un
determinado lenguaje.
Un traductor es un programa que recibe como entrada un texto
escrito en un lenguaje, llamado fuente, y genera como salida otro texto
equivalente pero escrito en un lenguaje diferente denominado objeto.
En el caso de que el lenguaje fuente sea un lenguaje de programación
de alto nivel y el objeto sea un lenguaje debajo nivel (ensamblador o
código máquina), a dicho traductor se le denomina compilador.
Análogamente, un ensamblador es un traductor cuyo lenguaje fuente
es el lenguaje ensamblador.
A diferencia de los programas mencionados anteriormente, un
intérprete es un traductor que no genera un programa en código
objeto, si no que toma una sentencia del programa fuente en un
lenguaje de alto nivel, la traduce y la ejecuta directamente.
Lenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdf

Weitere ähnliche Inhalte

Ähnlich wie Lenguajes formales y teoría de autómatas I.pdf

Ähnlich wie Lenguajes formales y teoría de autómatas I.pdf (20)

Gramaticas
GramaticasGramaticas
Gramaticas
 
Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Unidad 7 lenguajes gramaticas y automatas
Unidad 7 lenguajes gramaticas y automatasUnidad 7 lenguajes gramaticas y automatas
Unidad 7 lenguajes gramaticas y automatas
 
Tarea111
Tarea111Tarea111
Tarea111
 
Lizbeth...
Lizbeth...Lizbeth...
Lizbeth...
 
Automatas
AutomatasAutomatas
Automatas
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
301405_34-Tarea1-Danilo Coral.pptx
301405_34-Tarea1-Danilo Coral.pptx301405_34-Tarea1-Danilo Coral.pptx
301405_34-Tarea1-Danilo Coral.pptx
 
Compilador2
Compilador2Compilador2
Compilador2
 
lenguajes y_gramaticas
lenguajes y_gramaticaslenguajes y_gramaticas
lenguajes y_gramaticas
 
Unidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formalesUnidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formales
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Introduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacionIntroduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacion
 

Kürzlich hochgeladen

Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOFernando Bravo
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)samuelsan933
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdfGustavoAdolfoDiaz3
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...WeslinDarguinHernand
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheJuan Luis Menares
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxfranklingerardoloma
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potableFabricioMogroMantill
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbantoniolfdez2006
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfElisaLen4
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasIANMIKELMIRANDAGONZA
 

Kürzlich hochgeladen (20)

Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 

Lenguajes formales y teoría de autómatas I.pdf

  • 1. I
  • 2.  La asignatura de Teoría de Autómatas y Lenguajes Formales supone para el alumno la primera aproximación al estudio formal de los fundamentos teóricos que subyacen en la ingeniería interna de los lenguajes de programación y en los propios fundamentos de la computación. No sólo será capaz de usar mejor los lenguajes de programación disponibles, sino que además será capaz de construir y adecuar un lenguaje de programación en atención a los requerimientos. Asimismo, el alumno adquirirá un mayor conocimiento de los tipos de problemas que pueden ser resueltos con los lenguajes de programación. Dada la relevancia de sus contenidos, esta asignatura ha sido ampliamente implementada en los planes de estudios de las diversas facultades y escuelas de informática con esquemas de contenidos bastante similares de unas universidades a otras.
  • 3. Esta asignatura se basa en una serie de contenidos concretos:  Conocer en profundidad la estructura y función de los sistemas de descripción y reconocimiento de lenguajes formales.  Estudiar los conceptos, modelos y técnicas relacionados con estas cuestiones.  Conocer las estructuras de datos y los algoritmos usados para implementar los modelos de reconocimiento de lenguajes formales, así como sus posibles dominios de aplicación práctica.  Realizar implementaciones de estos modelos en algún dominio.  Sintetizar los conceptos estudiados en ideas concretas que permitan comprender mejor los fundamentos de la computación.
  • 4.
  • 5. Es una entidad abstracta, que no se va a definir, pues se dejará como axioma.Al igual que no se define punto en Geometría. Normalmente los símbolos son letras (a, b, c, . . . ,z), dígitos (0, 1, . . ., 9), y otros caracteres (+, -, *, /, ?, . . .). Los símbolos también pueden estar formados por varias letras o caracteres, así por ejemplo las palabras reservadas de un lenguaje de programación son símbolos de dicho lenguaje. Ejemplos: a , b , c , # , 0 , 1 , + , * ,then, begin, end, else
  • 6. Un alfabeto es un conjunto finito de símbolos que sirven para definir un lenguaje. Un alfabeto se representa mediante el símbolo: Una cadena sobre sobre algún alfabeto es una secuencia finita de símbolos tomados de ese alfabeto. En teoría de lenguajes, los términos frase y palabra a menudo se utilizan como sinónimos de la palabra cadena.  Ejemplo: Alfabeto del lenguaje binario:  = {0,1}  2 = { A , B , C , D , E , F , G , H, . . . , X ,Y , Z }  3 = { a , b , c , d , 0 , 1 , 2 , 3 , 4 , * , # , + }  4 = { 0 , 1 }  5 = {if, then, begin, end, else, a, b, ; , =, > }
  • 7. La definición que mejor encaja con el concepto de la cadena vacía es que es la ausencia de símbolos. Es común que la cadena vacía se confunda con el símbolo que representa el espacio en blanco. En algunos libros de texto, se utiliza el símbolo ᴧ para denotar la cadena vacía. La longitud de una cadena es el número de símbolos que contiene. La notación empleada es la que se indica en los siguientes ejemplos. | abcb |→ 4 | a + 2*b |→ 5 | 000111 |→ 6 | if a > b then a = b ; |→ 9
  • 8. Concatenación Si m y n son cadenas, entonces la concatenación de m y n, que se escribe mn , es la cadena que resulta de agregar n a m. A esta operación también se le puede considerar como un producto. Operación Identidad: El operando neutro de la concatenación es la cadena vacía, ejemplo: mϵ = ϵm = m Transitividad: La operación de concatenación no es transitiva, mn ≠ nm Ejemplo: m = ‘casa’ n = ‘vacía’ mn = ‘casavacía’ nm = ‘vacíacasa’
  • 9. Exponenciación Dado que se puede considerar a la concatenación como un producto, se pueden aplicar propiedades de exponenciación a las cadenas de la siguiente manera. Se define S0 como ϵ y para i > 0, se define Si como S i-1 S, entonces: S 0 = ϵ S 1 = S S 2 = SS S 3 = SSS Etcetera
  • 10. Definición de términos de una cadena Término Definición Prefijo de s Una cadena que se obtiene eliminando cero o mas símbolos desde la derecha de la cadena s; por ejemplo, BAN es el prefijo de BANDERA. Sufijo de s Una cadena que se forma suprimiendo cero o más símbolos desde la izquierda de una cadena s; ERA es un sufijo de la cadena BANDERA. Subcadena de s Una cadena que se obtiene suprimiendo un prefijo y un sufijo de s; por ejemplo,ANDE es una subcadena de BANDERA.Todo prefijo y sufijo de s es una cadena de s, pero no toda subcadena de s es un prefijo o sufijo de s Prefijo, Sufijo o subcadena de s Cualquier cadena no vacía x que sea, respectivamente, un prefijo, sufijo o subcadena de s tal que s ≠ x. Subsecuencia de s Cualquier cadena formada mediante la eliminación de cero o mas símbolos no necesariamente contiguos a s; por ejemplo BADA es una subsecuencia de BANDERA.
  • 11. Definición 1 El término lenguaje se refiere a cualquier conjunto de cadenas de un alfabeto fijo. Esta definición es muy amplia y abarca lenguajes como el vacío { } o el conjunto que solo tiene la cadena vacía { ϵ } o así como el conjunto de todas las frases del lenguaje Pascal. Definición 2 Se denomina lenguaje sobre un alfabeto  a un subconjunto del universo del discurso. También se puede definir como un conjunto de palabras de un determinado alfabeto. Alguien puede pensar que los lenguajes se pueden definir por enumeración de las cadenas que pertenecen a dicho lenguaje, pero este método además de ineficiente, es en muchos casos imposible (habitualmente un lenguaje tiene infinitas cadenas). Así los lenguajes se definen por las propiedades que cumplen las cadenas del lenguaje.
  • 12. Ejemplo El conjunto de palíndromos (cadenas que se leen igual hacia adelante, que hacia atrás) sobre el alfabeto {0,1}. Evidentemente este lenguaje tiene infinitas cadenas. Algunas cadenas de este lenguaje son: λ 0 1 00 11 010 0110 000000 101101 111111
  • 13. Operaciones aplicadas a lenguajes Existen varias operaciones importantes que se pueden aplicar a lenguajes. Para el análisis lexicográfico interesan principalmente la unión, la concatenación y las cerraduras. Operación Definición Unión de L y M, que se escribe L U M L U M = { s | s está en L o s esta en M} Concatenación de L y M que se escribe LM LM = { st | s esta en L y t esta en M } Cerradura Kleene de L que se escribe L* Cerradura positiva de L que se escribe L+
  • 14. Ejercicio Definir la positiva en función de la cerradura Kleene. Solución
  • 15. Ejemplo Sea L el conjunto {A,B,C, …,,Z, a,b,c, …z} y D el conjunto {0,1,…9}. Se pueden considerar L y D de dos maneras: L como el alfabeto que contiene el conjunto de letras mayúsculas y minúsculas, y D como el alfabeto que contiene el conjunto de los diez dígitos decimales. Los siguientes son algunos ejemplos de los nuevos lenguajes creados a partir de L y D mediante la aplicación de las operaciones con lenguajes. 1. L U D es el conjunto de letras y dígitos 2. LD es el conjunto de cadenas que consta de una letra seguida de un dígito 3. L* es el conjunto de todas las cadenas de letras, incluyendo ϵ, la cadena vacía 4. L(LUD)* es el conjunto de todas las cadenas de letras y dígitos que comienzan con una letra y es seguida por letras o números 5. D+ es el conjunto de las cadenas que contienen uno o más dígitos
  • 16. Existe un lenguaje denominado el lenguaje vacío, que es un conjunto vacío y que se denota por {∅ }. El lenguaje vacío no debe confundirse con un lenguaje que contenga una sola cadena, y que ésta sea la cadena vacía, es decir {λ}, ya que el número de elementos (cardinalidad) de estos dos conjuntos es diferente. Cardinal ({ ∅ }) = 0 Cardinal ({ λ }) = 1 La gramática es un ente formal para especificar, de una manera finita, el conjunto de cadenas de símbolos que constituyen un lenguaje
  • 17. Un autómata es una construcción lógica que recibe una entrada y produce una salida en función de todo lo recibido hasta ese instante. En el caso de los Procesadores de Lenguaje un autómata es una construcción lógica que recibe como entrada una cadena de símbolos y produce una salida indicando si dicha cadena pertenece o no a un determinado lenguaje.
  • 18. Un traductor es un programa que recibe como entrada un texto escrito en un lenguaje, llamado fuente, y genera como salida otro texto equivalente pero escrito en un lenguaje diferente denominado objeto. En el caso de que el lenguaje fuente sea un lenguaje de programación de alto nivel y el objeto sea un lenguaje debajo nivel (ensamblador o código máquina), a dicho traductor se le denomina compilador. Análogamente, un ensamblador es un traductor cuyo lenguaje fuente es el lenguaje ensamblador. A diferencia de los programas mencionados anteriormente, un intérprete es un traductor que no genera un programa en código objeto, si no que toma una sentencia del programa fuente en un lenguaje de alto nivel, la traduce y la ejecuta directamente.