teoria de lenguajes - curso completo

Upload: r-marvyn-verde-allauca

Post on 06-Jul-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    1/15

    TEORIA DE LENGUAJES

    CAPITULO 11. Elementos básicos de la teo!a de len"#a$es % con$#ntos.

    1.1. CONCEPTOEs una rama de la informática  que se encarga del diseño,implementación análisis, caracterización y clasificación de lenguajes de programación y su características. Es un campo multidisciplinar,dependiendo tanto de (y en algunos casos afectando) a las matemáticas,ingeniería del software, lingüística, e incluso ciencias cognitivas. Es unarama bien reconocida de la informática, y un área activa de investigación,con resultados publicados en un gran número de revistas dedicadas a la

    !", así como en general en publicaciones de informática e ingeniería.

    #n símbolo no oficial de la teoría de lengua$es de programación es la letragriega lambda en minúsculas. Este uso deriva del cálculo lambda, unmodelo computacional ampliamente usado por investigadores delengua$es de programación. %uc&os te'tos y artículos sobreprogramación y lengua$es de programación utilian lambda de una u otramanera.

    1.&. 'ISTORIA DE LA TEOR(A DE LENGUAJES!a &istoria de la teoría de lengua$es de programación precede incluso aldesarrollo de los propios lengua$es de programación. El cálculo lambda,desarrollado por Alonzo Church, Max HL. Solis Villareal Stephen Cole

    !leene en la d"cada de #$%& , es considerado como uno de los primeroslengua$es de programación del mundo, incluso pese a ue tenía intenciónde modelar la computación más ue ser un medio para ue losprogramadores describan algoritmos para un sistema informático. %uc&oslengua$es de programación funcional se &an caracteriado por proveer una *fina apariencia* al cálculo lambda, y muc&os se describen en sust+rminos.

    En la d+cada de -/, Noam Chomsky   desarrolló la 'erar(u)a deChoms* en el campo de la lingüística0 un descubrimiento ueimpactó directamente a la teoría de lengua$es de programación yotras ramas de la informática.

    El primer lengua$e de programación (como tal) ue se propuso fuePlan)al)*l+ ue fue dise1ado por 2onrad 3use en los a1os 4/, perofue conocido públicamente en -56 (y no implementado &asta 6///,cinco a1os despu+s de la muerte de 3use).

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    2/15

    El primer lengua$e de programación ampliamente conocido y e'itosofue 7ortran, desarrollado entre -4 y -5 por un euipo deinvestigadores en 89% liderados por :o&n 9ac;us. El +'ito de7=B encabeado por  >lan 2ay elaboran Dmalltal;, un lengua$e orientado a ob$etos muyconocido por su novedoso (&asta ese momento desconocido)entorno de desarrollo.

    • Dussman y Dteele desarrollan el lengua$e de programaciónDc&eme, un dialecto de !isp ue incorpora Imbitos l+'icos, unespacio de nombres unificado.

    • 9ac;us, en la conferencia del remio "uring de -55, asedió elestado actual de los lengua$es industriales y propuso una nuevaclase de lengua$es de programación a&ora conocidos comolengua$es de programación funcional.

    • !a aparición del process calculi, como el cálculo de sistemascomunicantes de =obin %ilner, y el modelo de Bomunicaciónsecuencial de procesos de B. >. =. Joare.

    • !a aplicación de la teoría de tipos como una disciplina a loslengua$es de programación, liderada por %ilner0 esta aplicación &aconducido a un tremendo avance en la teoría de tipos en cuestiónde a1os.

    osteriormente &ilip Kadler introdu$o el uso de %onads paraestructurar programas en lengua$es de programación funcional.

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    3/15

    1.,. SU- DISCIPLINAS DE LA TEOR(A DE LENGUAJESE'isten varios campos de estudio ue o bien caen dentro de la teoría delengua$es de programación o bien tienen una profunda influencia en ella.Entre estos tenemosG

    1.,.1. La Teo!a de los comiladoes /Res#men0Es la base formal sobre la escritura de compiladores (o másgeneralmente traductores)0 programas ue traducen un programaescrito en un lengua$e a otra forma. !as acciones de un compilador se dividen tradicionalmente en análisis sintáctico, análisissemántico, optimiación y generación de código.

    1.,.&. La Teo!a de tios /Res#men0Es el estudio de sistemas de tipos, ue son *m+todos sintácticostratables para proveer la ausencia de ciertos comportamientos de

    programa mediante la clasificación de frases según los tipos devalores ue computan.* ("ypes and rogramming !anguages, %8"ress, 6//6). uchos lenguajes de programación se distinguen por lascaracterísticas de sus sistemas de tipos. uede referirse al dise1o,análisis y estudio de los sistemas de tipos, aunue algunoscientíficos de la computación limitan el significado del t+rmino alestudio de formalismos abstractos como el cálculo lambda tipado.9ertrand =ussell inventó la primera teoría de tipos en respuesta asu descubrimiento donde la versión de @ottlob 7rege de la teoríade con$untos nativa es afectada por la parado$a de =ussell. Estetipo de la teoría de tipos aparece primariamente en el rincipia

    %at&ematica de K&ite&ead y =ussell.

    Esta teoría evita la parado$a de =ussell creando una $eraruía detipos, luego asignando cada entidad matemática a un tipo.

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    4/15

    1.,.2. La Tansomaci3n de o"amas /Res#men0Es el proceso de transformar un programa de una forma (lengua$e)a otra forma0 el análisis de programas es problema general dee'aminar un programa mediante la determinación de suscaracterísticas clave (como la ausencia de clases de errores de

    programa). #n componente importante para implementar estast+cnicas viene dada por la información *flu$o de datos* ue puedeobtenerse por t+cnicas de análisis estático. !as t+cnicas deplegadodesplegado (*foldingunfolding*) son las me$or estudiadasen el conte'to de la transformación de programas. Estas t+cnicasfueron formuladas originalmente en el caso de programasfuncionales por 9urtall y Farlington y posteriormente introducidasen la programación lógica por 2omorows;i. osteriormente, se &anrealiado numerosos esfueros para la construcción de sistemasautomáticos basados en esta metodología, ue &a sido tambi+nadaptada a los sistemas de deducción parcial ue producen, a

    partir de un programa y una entrada incompleta (un ob$etivo @parcialmente instanciado), un programa residual más eficiente uees euivalente al original respecto a @ y cualuiera de susinstancias.

    1.,.4. Sistemas en tiemo de e$ec#ci3n /Res#men05De refiere al desarrollo de entornos run time para lengua$es deprogramación y sus componentes, incluyendo máuinas virtuales,recolección de basura, e interfaces para funciones e'ternas. Es unsoftware ue provee servicios para un programa en e$ecución pero

    no es considerado en sí mismo como parte del sistema operativo.Está dise1ado para apoyar la e$ecución de los programas deordenador escrito en algún lengua$e de programación. El tiempode e$ecución del sistema contiene las implementaciones de ba$onivel comandos básicos y puede tambi+n aplicar a nivel decomandos de alto y puede apoyar la comprobación de tipos,depuración, e incluso la generación de código y optimiación. >lgunos de los servicios del sistema en tiempo de e$ecución sonaccesibles para el programador a trav+s de una interfa deprogramación de aplicaciones, pero otros servicios (tales como laprogramación de tareas y gestión de los recursos) pueden ser 

    inaccesibles. >livia los programadores de la carga de la escritura de código paratareas mundanas como el dibu$o de te'to en la pantalla o &acer unacone'ión a 8nternet0 "ambi+n proporciona una capa de abstracciónue oculta la comple$idad o las variaciones en los servicios ueofrece el sistema operativo.En el límite, el sistema en tiempo de e$ecución puede ser un códigode máuina o máuina virtual, ue se esconde incluso elprocesador de sistema de instrucción. Este es el enfoue adoptadopor muc&os lengua$es interpretados como >K2, y algunoslengua$es como :ava ue están destinados a ser compilado en

    algunos pseudoindependiente de la máuina ( código de bytes ).Este sistema simplifica enormemente la tarea de implementación

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    5/15

    del lengua$e y su adaptación a diferentes máuinas, y permite ellengua$e sofisticadas características tales como la refle'ión. KorldKide Keb "ambi+n permite ue el mismo programa a ser e$ecutado en cualuier máuina sin tener ue recompilar, unacaracterística ue se &a vuelto muy importante, ya ue la difusión

    de la Korld Kide Keb.1.,.6. Análisis comaati5o de len"#a$es de o"amaci3n

    /Res#men09usca clasificar los lengua$es de programación en diferentes tiposbasados en sus características0 amplias categorías de diferenteslengua$es de programación se conocen frecuentemente comoparadigmas de computación.

    1.,.7. La 8eta o"amaci3n /Res#men0Es la generación de programas de mayor orden ue, cuando se

    e$ecutan, producen programas (posiblemente en un lengua$ediferente, o en un subcon$unto del lengua$e original) comoresultado. De puede definir cómoG Lprogramar un programa uegenere o modifiue otros programas o a sí mismosM el e$emplo máscomún de la meta programación es un compilador ue te permiteconvertir un programa escrito en un lengua$e de alto nivel en unocon lengua$e de ba$o nivel, lengua$e máuina o ensamblador. erola meta programación tiene otras aplicaciones más potentes,aunue algunos creen ue sólo es útil para los programadoresflo$os ue no uieren escribir programas, es cierto te puede a&orrar muc&o tiempo, un e$emplo sencillo de meta programación esG

    NOPbinPbas&N metaprogramec&o QNOPbinPbas&Q Rprogramfor ((8S0 8TS--60 8UU))0 doec&o *ec&o V8* RRprogramdonec&mod U' program

    Este script genera un nuevo programa ue imprime por pantalla losnúmeros a --6. Esto es sólo una muestra de cómo usar códigopara escribir más código, no la forma más eficiente de imprimir una

    lista de números. En cualuier caso, un buen programador puedeescribir y e$ecutar esta meta programa en apenas un par deminutos, y &abrá generado e'actamente /// líneas de código enesa cantidad de tiempo.

    1.,.9. Len"#a$es dedicados /Res#men0Don lengua$es construidos para resolver problemas en un dominiode problemas en particular de manera eficiente.

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    6/15

    1.2. :UE SON LOS S(8-OLOSEs la representaci+n perceptible de una  idea, con rasgos asociados por una convención socialmente aceptada. Es un signo sin seme$ana nicontigüidad, ue solamente posee un vínculo convencional entre susignificante y su denotado, además de una clase intencional para su

    designado. !os símbolos son pictografías con significado propio. %uc&osgrupos tienen símbolos ue los representan0 e'isten símbolos referentesa diversas asociaciones culturalesG artísticas, religiosas, políticas,comerciales, deportivas, etc.Es una entidad a!stracta, ue no se va a definir. ?ormalmente lossímbolos son letras (a,b,c,W), dígitos (/,,6W-) y otros caracteres(U,X,P,,Y...).

    #n símbolo tambi+n puede estar formado por varias letras o caracteres,como las palabras reservadas de un lengua$e de programación sonsímbolos de dic&o lengua$e.

    E$emploGa,b,c,N,U,,X, t&en, begin, end, else,

    1.2.1. E5ol#ci3n de los s!mbolosEn las muc&as etapas ue componen la evolución, en la forma decomunicación &umana, del desarrollo del lengua$e &ablado a la escritura,los signos visuales representan la transición de la perspectiva visual, atrav+s de las figuras y los pictogramas, a las se1ales abstractas.

    Distemas de notación capaces de transmitir el significado de conceptos,palabras o sonidos simples.!os signos y símbolos transmiten ideas en las culturas pre alfabetiadasy prácticamente analfabetas. ero su utilidad no es menor entre lasverbalmente alfabetiadasG al contrario, es mayor. En la sociedadtecnológicamente desarrollada, con su e'igencia de comprensióninmediata, los signos y símbolos son muy eficaces para producir unarespuesta rápida. Du estricta atención a los elementos visualesprincipales y su simplicidad estructural, proporcionan facilidad depercepción y memoria.

    1.2.&. Est#dio de los s!mbolosEl inter+s por los signos &a dado lugar a un importante campo deestudioG la semiótica. Zsta trata tanto la función de los signos en elproceso de comunicación, como el lugar de los síntomas en eldiagnóstico m+dico. !os símbolos pueden componerse de informaciónrealista, e'traídas del entorno, fácil de reconocer, o tambi+n por formas,tonos, colores, te'turas..., elementos visuales básicos ue no guardanninguna similitud con los ob$etos del entorno natural. ?o poseen ningúnsignificado, e'cepto el ue se les asigna. E'isten muc&as formas declasificar a los símbolos0 pueden ser simples o complicados, obvios u

    oscuros, eficaces o inútiles. Du valor se puede determinar según &astadonde penetran la mente pública en t+rminos de reconocimiento ymemoria.

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    7/15

    1.4. ;OCA-ULARIO O AL,9,B,F,E,7,W..,H,],3^• [6S\a,b,c,d,/,,6,_,4,X,N,U^• [_S\/,^• [4S\if, t&en, begin, end, else, a,b,0,S,R^• "ambi+n se pueden definir las tablas >DB88 y E9BF8B como los

    alfabetos de distintos ordenadores.

    1.6. CADENA#na cadena es una secuencia finita de símbolos de un determinadoalfabeto. E$emplo. "omando en cuenta los alfabetos o vocabulariosdefinidos anteriormente, podemos decir ueG

    • abcb es una cadena del alfabeto [6• aU6Xb es una cadena del alfabeto [6• /// es una cadena del alfabeto [_• 8f aRb t&en bSa0 es una cadena del alfabeto [4

    #na cadena consiste en una secuencia de caracteres ue se encuentrancomprendidos entre unos delimitadores ue pueden serG

    • Bomillas simples Q Q• Bomillas dobles * *• Focumento incrustado TTT RRR

    En caso de ue se desee por e$emplo unas * * dentro de las comillas de lacadena de carácter es necesario realiar la acción ue se denominaescapar un carácter ue consiste en precederlo de una es decirM. !oscaracteres especiales ue pueden aparecer dentro de un documento condelimitación sonG

    1.6.1. LONGITUD DE CADENA!a longitud de una cadena consiste en el número de símbolospertenecientes a la cadena. E$emploG "omando en cuenta lose$emplos de cadena podemos decir ueG

    • `abcb` es de longitud 4• `a U 6Xb` es de longitud •

    `///` es de longitud C• `if aRb t&en aSb0` es de longitud -

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    8/15

    1.6.&. CADENA ;AC(ADe denomina cadena vacía, ue no tiene símbolos y se denota conl, por lo ue su longitud esG

    ¿ l∨¿0

    1.6.,. CONCATENACI=N DE CADENASDean > y 9 dos cadenas cualesuiera, se denomina concatenaciónde > y 9 a una nueva cadena >9 constituida por los símbolos de lacadena > seguidos por los de la cadena 9.

    El elemento neutro de la concatenación es G

     A 1=1  A = A 

    1.6.2. UNI;ERSO DEL DISCURSOEl con$unto de todas las cadenas ue se pueden formar con lossímbolos de un alfabeto, se denomina universo del discurso [ y serepresenta por K([). Evidentemente K([) es un con$unto infinito.!a cadena vacía pertenece a K([).E$emploG

    Dea un alfabeto con una sola letra [S\a^, entonces el universo deldiscurso esG

    K([) S \l, a, aa, aaa, aaaa, W.^ ue contiene infinitas cadenas.

    CAPITULO &&. Cadenas % "amáticas omales.

    &.1. >:U? ES UNA GRA8ATICA@•

    Es un ente formal para especificar de una manera finita, es el con$unto decadenas de símbolos ue constituyen un lengua$e.• Fefine la estructura de las frases y palabras de un lengua$e.• %+todo para generar las palabras de un lengua$e a partir de un alfabeto0

    donde para generar estas palabras se necesitan derivaciones.• Bon$unto finito de reglas para formar cadenas finitas $untando símbolos del

    alfabeto.

    &.&. DE

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    9/15

    CAPITULO ,,. Eesiones Re"#laes

    ,.1. DE

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    10/15

    A. UNION O ALTERNATI;AB-. CONCATENACIONBC. PORTENCIA DE UN LENGUAJEB ?o e'iste pero se toma por ello un caso

    particular de la concatenación.D. CIERRE U OPERACI=N ESTRELLABE. CIERRE POSITI;OB

    +¿={ L }⋃ {¿ }⋃ {¿ }⋃ { LLL }…=¿n=1 L¿∞ L

    n

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    11/15

    ,.,. PRECEDENCIA DE OPERACIONES

    Teoema 

    Fos e'presiones regulares son iguales, si designan al mismo con$unto

    regular.

    ,.2. PROPIEDADES

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    12/15

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    13/15

    =esolucionG

     λ

    aaXbbX S

    aa/bb/iS ab

    aabb/S aab

    aa_bb/S aaaab

    aa/bb_S abbb

    aa/bbSabb

    aa_bb/Saaaab

    Sea la ER 1/10 c#%o 5ocab#laio esB ;F+1

       odemos obtener las siguientes cadenasG

    . (/)/ S

    6. (/)_

     (///) S ///

     >lgunas cadenas de los lengua$es sonG

      !S\,///,WW.^

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    14/15

    Sea la ER / H 10

      c#%o 5ocab#laio esB ;F+1

      Esto es igual a / H 10

    S (/U

    U

    )U

        odemos obtener las siguientes cadenasG

    . (/

    )

     (/)

    S/

    6. (/

    )_(/)

    _ ///

    _. (/U

    U

    )U (/

    6

    )_ (//)

    _ //////

     >lgunas cadenas de los lengua$es sonG

      !S\/,///,//////,WW.^

  • 8/17/2019 Teoria de Lenguajes - Curso Completo

    15/15

     Escriba aquí la ecuación.