DIRECCIÓN ACADÉMICA Formato de entrega de evidencias FO-205P000-! Divisi"n# $%
IN&ENIER'A EN (I()EMA( COMP*)ACIONA+E(
Asignat,ra# $.%
+EN&*AE( 1 A*)ÓMA)A( I
Nom6re 7 n8mero n8mero de contro9# Fec?a de entrega# $:%
Indicador de a9cance#
$2%
.5-/
M EN DAE( MAR'A AN&É+ICA (AN)I++3N C4OREO &ARCIA &A+/AN &A+/AN /ANE(A !.0:!. !.0: !. 4ERN3NDE; ;ARA)E FA0 Docente#
$!%
2 DE (EP)IEM
$@%
Cometencia No#
$>%
Evidencia de arendiaBe# $0%
$5%
&r,o#
IDEN)IFICA +O( CONCEP)O( DE +EN&*AE( FORMA+E( PARA COMPRENDER +A( FA(E( DE *N COMPI+ADOR 1 )RAD*C)OR (E+ECCIONA INFORMACIÓN ACERCA DE +O( +EN&*AE( FORMA+E( PARA COMPRENDER +A( FA(E( DE *N COMPI+ADOR 1 )RAD*C)OR
Descrici"n# $=%
IN/E()I&ACIÓN )E)*A+
Unidad I Introducción a la Teoría Teoría de Lenguajes Formales 1.1 Alfabeto Las principales ideas matemáticas necesarias para la compresión a la Teoría de Autómatas son conceptos que incluyen grafos, árboles, conjuntos, relaciones, cadenas, lenguajes abstractos e inducción matemática.
Un "símbolo" es una entidad abstracta. Las letras y los dígitos son ejemplos de símbolos usados con frecuencia. frecuencia. Una cadena o palabra! palabra! es una secuencia finita finita de símbolos símbolos yutapuestos yutapuestos.. #or ejemplo ejemplo a, b y c son símbolos y casa es una cadena. La longitud de una cadena $ que se denota como %$%, es el n&mero de símbolos que componen la cadena. #or ejemplo casa tiene una longitud '.
+EN&*AE( 1 A*)ÓMA)A( I IN)ROD*CCIÓN +Aprincipio )EOR'Adel DE +EN&*AE( 2 a (abitualmente, se emplean las letras min&sculasAdel alfabeto o dígitos! para designar los símbolos y las letras min&sculas del final del alfabeto, normalmente $, , y y ), para designar cadenas. La cadena *acía, denotada por + es aquella que presenta cero apariciones de símbolos, es una cadena que puede construirse en cualquier alfabeto. La concatenación de dos cadenas es la cadena que se forma al escribir la primera seguida de la segunda, sin que aya espacio entre ellas, #or ejemplo la concatenación de padre y madre es padre madre. La yutaposición se utili)a como el operador de concatenación. +sto es si $ y son cadenas, entonces $ es la concatenación de estas dos cadenas. La cadena *acía es la identidad para el operador de concatenación, es decir +$ - $+ para cada cadena de $.
Un alfabeto es un conjunto de símbolos finito y no *acío. on*encionalmente se utili)a el símbolo / para designar un alfabeto. Un lenguaje es un conjunto de cadenas, todas ellas seleccionadas de un /0 donde / es un determinado alfabeto
+l conjunto *acío 1 y el conjunto formado por la cadena *acía 2 + 3 son lenguajes.
+l conjunto de palíndromos cadenas que se leen igual de i)quierda a dereca y *ice*ersa! sobre el alfabeto 24,53 es un lenguaje infinito. Algunos elementos de este lenguaje son +,4,5, 44, 45,454, y 5545455. #or consiguiente *emos que el conjunto de todos los palíndromos sobre una colección finita de símbolos no es, t6cnicamente ablando, un lenguaje, porque sus cadenas no se construyen colecti*amente a partir de un alfabeto.
1.2 Cadenas Una cadena o palabra sobre un alfabeto 7. admitimos la eistencia de una &nica cadena que no tiene símbolos, la cual se denomina cadena *acía y se denota con 8. la cadena *acía desempe9a, en la teoría de lenguajes formales, un papel similar al que desempe9a el conjunto *acío 1 en la teoría de conjuntos.
Longitud de cadena: La longitud de cadena es el n&mero de símbolos que contiene. La notación empleada es la que es la que se indica en el ejemplo:
Utili)amos las cadenas de los ejemplos:
&ARCIA - 4ERN3NDE; - I(+A( - MO+INA
; abcb ; - ', ; a < =0b ; - > ; 444555 ; - ? ; if a @ b ten a - b ; - B
adena Cacía: Una cadena *acía es la &nica cadena de caracteres de tama9o cero. D la podemos denotar usualmente con letras 8 o E Friegas!.
1.3 Lenguajes ti!os " #erramientas La definición de lenguajes la encontr6 de diferentes autores y cada uno usa sus t6rminos como Gon +. (pocroft, Hajee* Iot$ani y Geffrey J. Ullman en su libro K;ntroducción a la teoría de autómatas, Lenguajes y omputación nos dice que un lenguaje es un conjunto de cadenas, todas ellas elegidas de alg&n Ʃ 0dondeƩ es un alfabeto, algo que me llamo la atención de este libro es que los autores comentan que la definición de Lenguajes puede parecer etra9a más sin embargo los lenguajes abituales se pueden considerar como conjuntos de cadenas. Mtro autor como Gon Iartin en su libro KLenguajes formales y teoría de la computación define lenguajes como que es simplemente un conjunto de cadenas que incluyen símbolos de un alfabeto. #or tanto Lenguajes: La definición de lenguajes la encontr6 de diferentes autores y cada uno usa sus t6rminos como Gon +. (pocroft, Hajee* Iot$ani y Geffrey J. Ullman en su libro K;ntroducción a la teoría de autómatas, Lenguajes y omputación nos dice que un lenguaje es un conjunto de cadenas, todas ellas elegidas de alg&n Ʃ0donde Ʃ es un alfabeto, algo que me llamo la atención de este libro es que los autores comentan que la definición de Lenguajes puede parecer etra9a más sin embargo los lenguajes abituales se pueden considerar como conjuntos de cadenas. Mtro autor como Gon Iartin en su libro KLenguajes formales y teoría de la computación define lenguajes como que es simplemente un conjunto de cadenas que incluyen símbolos de un alfabeto. #or tanto puedo concluir que un alfabeto es un conjunto no *acío y finito de símbolos denotado por el símbolo
Ʃ.
/in embargo Jeán Nelly nos dice que un lenguaje es un conjunto de palabras o de cadenas y se
puede tener el lenguaje compuesto por ninguna cadena.
Tipos de lenguajes #odemos encontrar *arios tipos de lenguajes: Lenguajes declarati*os
•
&ARCIA - 4ERN3NDE; - I(+A( - MO+INA
Lenguajes de alto ni*el
•
Lenguajes ensambladores
•
Lenguajes máquina
•
Los lenguajes declarati*os son los más parecidos al castellano o ingl6s en su potencia epresi*a y funcionalidad y están en el ni*el más alto respecto a los otros. /on fundamentalmente lenguajes de órdenes, dominados por sentencias que epresan Klo que ay que acer en *e) de Kcómo acerlo. Los lenguajes de alto ni*el son los más utili)ados como lenguajes de programación Aunque no son fundamentalmente declarati*os, estos lenguajes permiten que los algoritmos se epresen en un ni*el y estilo de escritura fácilmente legible y comprensible por otros programadores. Además, los lenguajes de alto ni*el suelen tener la característica de Ktransportabilidad.
(erramientas computacionales ligadas con lenguajes +ditores de estructuras: KUn editor de estructuras toma como entrada una secuencia de órdenes para construir un programa fuente. +l editor de estructuras no sólo reali)a las funciones de creación y modificación de tetos de un editor de tetos ordinario, sino que tambi6n anali)a el teto del programa, imponiendo al programa fuente una estructura jerárquica apropiada. Je esa manera, el editor de estructuras puede reali)ar tareas adicionales &tiles para la preparación de programas oncepto encontrado en el libro de ompiladores de Addison Oesley, a mi punto de *ista estos editores de estructura son los que se encarga de lle*ar el orden de las palabras, *alla el acomodo y comprobar si la entrada está formada correctamente.
;mpresoras est6ticas: KUna impresora est6tica anali)a un programa y lo imprime de forma que la estructura del programa resulte claramente *isible oncepto encontrado en el libro de ompiladores de Addison Oesley.
Cerificadores estáticos: +ste *erificador lee un programa, lo anali)a e intenta descubrir errores potenciales sin correr el programa, algo muy parecido a la corrección de los editores de teto como Oord. KUn *erificador estático puede detectar si ay partes de un programa que nunca se podrán ejecutar o si cierta *ariable se usa antes de ser definida nos dice Addison Oesley.
;nt6rpretes: K+n lugar de producir un programa objeto como resultado de una traducción, un int6rprete reali)a las operaciones que implica el programa fuente. Iucas *eces los interpretes se usan para ejecutar lenguajes de órdenes, pues cada operador que se ejecuta en un lenguaje de ordenes suele ser una in*ocación de una rutina compleja, como un editor o un compilador.
5.? +structura de un traductor
&ARCIA - 4ERN3NDE; - I(+A( - MO+INA
Un traductor es un programa que tiene como entrada un teto escrito en un lenguaje lenguaje fuente! y como salida produce un teto escrito en un lenguaje lenguaje objeto! que preser*a el significado de origen. +jemplos de traductores son los ensambladores y los compiladores
.
1.$ Fases de un com!ilador •
Fase de análisis
•
Pase de /íntesis
%eferencia&
Anonimo=45?!
ttp:QQ$$$.academia.eduQ5>=R>45BQLenguajesSySAutVmatasS5
&ARCIA - 4ERN3NDE; - I(+A( - MO+INA