Você está na página 1de 23

ENUNCIADOS DE PROBLEMAS.

Asignatura: Teora de Autmatas y Lenguajes Formales

Escuela Universitaria de Inform tica !UPM"

#EMA $ !Len%ua&es formales ' %ram ticas"


E&ercicio $
Dados los siguientes lenguajes formales definidos sobre el alfabeto = {a, b}: L0={} L ={!} L"={a} L#={a,b} L$={%ab&n ' 0(= n ( " } L)={ambl ' m,l *= 0 } L+={anbn ' n*=0 } L, ={lenguaje formado -or las -alabras .ue tienen un n/mero im-ar de aes}

Determinar -ara 0ada uno de ellos L0, L# y L1

E&ercicio (
2ean las siguientes o-era0iones 0on los anteriores lenguajes formales: L0n L n, L0n' L n, L 0n 'L0n, L#n L n, L#n ' L n, L#n L0n, L#n' L0n, L,n L)n, L,n' L)n 3 Determinar .u4 lenguajes definen su-oniendo .ue n = 03 "3 Determinar .u4 lenguajes definen su-oniendo .ue n = # #3 Determinar .u4 lenguajes definen su-oniendo .ue n = 1

E&ercicio )
2ea un alfabeto 0ual.uiera y L un lenguaje 0ual.uiera definido sobre el alfabeto anterior3 5ara 0ada una de las siguientes igualdades, justifi0ar si siem-re son 0iertas o no3 L1=L6 1=L6 =L
6 6

L =17 L = L17L L 7L" = L : L" = L L" %L1&1=%L6&1=%L1&6=L1=%L6&6 %L1&;=%L;&1 L 7%817L &=L L 7817L = 9

L6=L17! 6=817 ! 81=%81& 91= !=96

P %$

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

E&ercicio *
>btener una gramLti0a -ara 0ada uno de los siguientes lenguajes: 3 = {a, b, c}, L = {an bm cn ' n, m *= } "3 = {a, b, c}, L = {an bm cn6"m ' n *=0, m *= } #3 = {a, b, c}, L = {an bn6m cm ' n *= , m *= 0} $3 = {a, b}, L = {an bm ' n *= m *= } )3 = {a, b}, L = {an bm ' n * m *= 0} +3 = {a, b, c}, L = {am bn cM ' m * n 6 M N n, M *=0} ,3 = {a, b}, L = { anbm | m (= n (= "m N n, m *=0} I3 = {a, b}, L = { anbm | n (*m N n, m *0}

E&ercicio +
Honstruir una gramLti0a .ue es-e0ifi.ue el siguiente lenguaje: L = { w {0, 1, 2}1 ' w 0ontiene eOa0tamente dos o tres smbolos 0 en 0ual.uier -osi0in}3 P2era -osible obtener una gramLti0a regular o de ti-o #Q

E&ercicio ,
Dado el alfabeto = {a, +, = } y el siguiente lenguaje: L={ an+am=an6m ' n, m * 0}, 0onstruir una gramLti0a de ti-o " .ue defina di0Ro lenguaje3

E&ercicio 5ara el alfabeto = {a, b, 0} 0onstruir una gramLti0a .ue genere el lenguaje L 0uyas -alabras 0um-len las siguientes 0ondi0iones: <m-ieSan y terminan -or a3 <ntre los dos smbolos a slo Ray smbolos b y 0, 0on la -e0uliaridad de .ue deben a-are0er de forma alterna y en 0uanta indeterminada %de 0ero a infinito&3 AdemLs, esta sub0adena de smbolos b y 0 alternos -uede em-eSar -or 0ual.uiera de los dos y -uede tener longitud -ar o im-ar3

E&ercicio .
2ea el lenguaje de sumas de n/meros naturales sobre = { 0, , ", #, $, ), +, ,, I, K, 6 }3 <jem-los de -alabras del lenguaje: "6+,6KI,0 #) <jem-los de -alabras no TLlidas: #$6 #$66"# =e-resentar mediante una gramLti0a de ti-o " en nota0in ?EF los siguientes lenguajes3 3 2ea L el lenguaje de sumas en el .ue los n/meros naturales no -ueden tener 0eros a la iS.uierda3 <l n/mero 0 se re-resentarL -or un /ni0o 0ero, nun0a -or una se0uen0ia de 0eros3 <jem-lo: 060 <jem-lo de -alabra no TLlida: 0#6 " "3 2ea L" el lenguaje de sumas en el .ue los n/meros naturales -ueden em-eSar -or 0, aun.ue no sea el n/mero 0, -ero en 0ada suma se 0um-le siem-re la 0ondi0in de .ue el -rimer y el /ltimo n/mero tienen siem-re la misma longitud %al menos RabrL dos n/meros&3 <jem-lo: 06 60

P %(

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

<jem-los de -alabras no TLlidas: 0#6 "K , #3 2ea L# el lenguaje de sumas en el .ue los n/meros naturales -ueden em-eSar -or 0, aun.ue no sea el n/mero 0, -ero en el .ue se 0um-le la 0ondi0in de .ue al menos dos n/meros tienen la misma longitud3 <jem-lo: 0)0#6)/6$)06.06"0#60#

E&ercicio 0
5ara las gramLti0as .ue se -ro-onen a 0ontinua0in, determinar el ti-o de las mismas y el lenguaje generado3 3 S 0S | A A 0B | 0 B 1A S abA | bbB A bC Ba C cS | S 0A A 0A ' 1S ' 0

"3

#3

E&ercicio $/
Dada la siguiente gramLti0a: S 777* aAa Aa 777* bAa ' ba Determinar de forma justifi0ada el ti-o de la misma y el ti-o del lenguaje generado3

E&ercicio $$
2ea la siguiente gramLti0a definida sobre el alfabeto = {a, +, = } S BSa ' aSa ' a+a=aa Ba aB B+ +a >btener el lenguaje generado -or la misma

E&ercicio $(
2ea la siguiente gramLti0a: S aSc ' A A bBA ' Bb bB Bc Determinar el lenguaje generado -or la misma, eO-resLndolo en nota0in matemLti0a o de -oten0ias3

E&ercicio $)
La siguiente gramLti0a genera el lenguaje L = { an bn cn | n*= } S aASc | abc Aa aA Ab bb 3 @odifi0arla -ara .ue genere el lenguaje L = { an bn cn | n*=0}3
P %)

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

"3 @odifi0arla -ara .ue genere el lenguaje L = { an b"n cn | n*= }3

#EMA ( !Len%ua&es Re%ulares. L12ico"


E&ercicio $
3 =aSonar si son e.uiTalentes o no las siguientes dos eO-resiones regulares: %a ' & %ba6&1 "3 %ba ' a&1 %aa1&1b %aa1&%%aa1&1b& ' b =aSonar si son e.uiTalentes o no las siguientes eO-resiones regulares:

5ara demostrar .ue no son e.uiTalentes RabrL .ue obtener al menos una -alabra .ue .uede denotada en una y no en la otra3 5ara demostrar .ue son e.uiTalentes RabrL .ue Ra0erlo obligatoriamente mediante las -ro-iedades de las eO-resiones regulares3 De forma .ue -artiendo de ambas y realiSando los -asos seg/n di0Ras -ro-iedades, se al0an0e la misma eO-resin regular3

E&ercicio (
3 "3 2im-lifi0ar, detallando todos los -asos, la siguiente eO-resin regular: %% a1 ' &6 aa & ' % % aa6a&& Gustifi0ar de forma raSonada si 0ada uno de los -asos .ue se realiSan a 0ontinua0in -ara sim-lifi0ar la eO-resin regular a % a1 ' a &1 son 0orre0tos o no3 a % a1 ' a &1 = % a6 ' aa &1 = % a6 & 1 = a6

E&ercicio )
=e-resentar una eO-resin regular -ara 0ada uno de los siguientes lenguajes3 3 = {a, b, _ }3 5alabras .ue 0omo mLOimo -ueden tener dos smbolos de subrayado 0onse0utiTos3 "3 = {a, b, _ }3 5alabras .ue no finaliSan en la sub-alabra a_ #3 = {a, b, c }3 5alabras en las .ue el n/mero de smbolos b mLs el n/mero de smbolos c es #3 $3 = {a, b}3 <l lenguaje uniTersal menos dos -alabras: y a3 )3 = {a, b}3 5alabras .ue finaliSan -or el smbolo b y tienen un n/mero -ar de smbolos b en total3 +3 = {a, b}3 5alabras .ue no 0ontienen la sub-alabra aa ni bb3

E&ercicio *
Honstruir un AFD -ara 0ada uno de los siguientes lenguajes formales: 3 "3 Dado el alfabeto ={ ,",#}, sea el lenguaje L={U{ ,",#}6 ' la suma de las 0ifras de U es m/lti-lo de $ }3 5or ejem-lo, seran TLlidas #, # , """", et03 2ea el lenguaje L= {U{0, }1 ' en U, la sub0adena V00W a-are0e 0omo mu0Ro dos Te0es }3 5or ejem-lo, la -alabra 000 -ertene0e al lenguaje -or tener dos sub0adenas V00W, -ero no la -alabra V0000W, ya .ue 0ontiene tres sub0adenas V00W3 >tros ejem-los de -alabras TLlidas son: 0 00 00 , 0 000, 0 3 <jem-los de -alabras E> 0orre0tas: 0 00 00 00, 0 000 00, 0 00003

P %*

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

#3 Dado el alfabeto = {0, }, sea el lenguaje de todas las -alabras .ue, tienen un n/mero im-ar de smbolos , y ademLs 0ontienen la sub0adena 0 3 5or ejem-lo, seran TLlidas las sub0adenas 0 , 0 0 0 , 0 3 5ero no lo seran , , 0 0 0 3 $3 ={a,b,c,d}3 Las -alabras .ue -ertene0en a este lenguaje 0um-len las 0ondi0iones de .ue si a-are0e la sub-alabra db siem-re estL seguida -or el smbolo c, y si a-are0e la sub-alabra ba siem-re estL seguida -or el smbolo d3 5or ejem-lo, las siguientes -alabras: a, dbcb, aabccbadc3 )3 ={a,b,c}3 Las -alabras .ue -ertene0en a este lenguaje 0um-len simultLneamente dos 0ondi0iones: tienen una longitud im-ar y 0ontienen un n/mero -ar de smbolos a %se 0onsidera .ue 0 es un n/mero -ar&3 +3 ={a, b, c}3 5ertene0en a este lenguaje las -alabras .ue tienen un n/mero -ar de Te0es %-osiblemente ninguna& la sub0adena bc3 ,3 ={a, b}3 Las -alabras tienen un n/mero -ar de smbolos a y no 0ontienen la sub-alabra bbb %se 0onsidera .ue el 0 es un n/mero -ar&3

E&ercicio +
Dadas las siguientes eO-resiones regulares, obtener dire0tamente un AFD e.uiTalente sin a-li0ar la 0onstru00in de TRom-son nin ning/n otro algoritmo3 3 "3 #3 $3 )3 a1b1c %a1 ' b& c6 a1 ' %a6 b &6 ' a6 %a ' b ' &1 %ba&1 %b ' & a1 b %c1 a&1 0, 0 >btener una eO-resin regular e.uiTalente de forma raSonada3 Eo se -odrL utiliSar ning/n algoritmo3 "3 Dado el siguiente autmata finito:

E&ercicio ,
3 Dado el AFE siguiente:

>btener una eO-resin regular e.uiTalente sin a-li0ar ning/n algoritmo, /ni0amente Ra0iendo el seguimiento del mismo3 #3 <studiar el siguiente AFE y obtener dire0tamente un AFD mnimo e.uiTalente3 Eo a-li0ar ning/n algoritmo3
a a . a .0 a .# a .$ ."

.)

P %+

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

E&ercicio 3 Dado el siguiente AFD, obtener -or medio de la t40ni0a de e0ua0iones 0ara0tersti0as, una <= .ue denote el mismo lenguaje .ue re0ono0e el autmata

"3

Dadas las siguientes e0ua0iones: X0 = YX 6 HX" 6 >X" X = YX 6 HX" 6 >X" 6 X" = YX" 6 HX" 6 >X" =esolTerlas, obteniendo la eO-resin regular 0orres-ondiente3

E&ercicio .
3 Dado el siguiente autmata finito, .ue re0ono0e el lenguaje L, modifi0arlo -ara .ue re0onoS0a el lenguaje L Z { } %las mismas -alabras eO0e-to &3
a b .
0

"

"3 Dado el siguiente AFD definido sobre el alfabeto [={a,b} .ue re0ono0e el lenguaje L, formado -or las -alabras .ue 0ontienen al menos una TeS la sub-alabra aa:
b a
.
0

a, b a
. .
"

@odifi0arlo, obteniendo un AFD .ue re0onoS0a el lenguaje L {a}3

E&ercicio 0
Determinar el ti-o de los siguientes lenguajes sobre el alfabeto = {0, 1}, en0ontrando ademLs un me0anismo formal del ti-o 0orres-ondiente .ue los defina: 3 <l 0onjunto Ta0o3 "3 La -alabra Ta0a3 #3 Las -alabras 0on dos smbolos 0 y dos smbolos 13 $3 5alabras .ue tienen igual n/mero de smbolos 0 .ue de smbolos 1, 0on la -e0uliaridad de .ue no -ueden darse de forma 0onse0utiTa dos o mLs smbolos 0, ni dos o mLs smbolos 13 )3 L = {0n1m ' en donde n es m/lti-lo de " %-osiblemente 0ero& y m no es de m/lti-lo de "}3 +3 L = { x ' x no tiene # smbolos 0 0onse0utiTos} ,3 L = { x x7 0 0 ' x {0, 1}1 } I3 L = {ww7 ' U{0,1}1 donde w tiene una longitud (=#}

P %,

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

E&ercicio $/
Dados los siguientes lenguajes: = {0, 1}3 5alabras en las .ue 0ada a-ari0in de un 0 Ta inmediatamente -re0edida y seguida de un 1 = {0, 1}3 5alabras w = X101Y donde X no a0aba en 10, Y {0101}1 = {0, 1, 2}3 5alabras .ue se 0onstruyen 0on las siguientes sub-alabras: 0, 01 y 121 %0ada sub-alabra se -uede utiliSar tantas Te0es 0omo se desee&3 5or ejem-lo, -ertene0en a este lenguaje las -alabras: 0000, 0 0 00, " 0 " 0003

3 Dibujar los autmatas finitos, deterministas o no -ero sin transi0iones -ara la 0adena Ta0a, .ue re0onoS0an 0ada lenguaje3 "3 Hrear una eO-resin regular .ue defina 0ada uno de los lenguajes3

E&ercicio $$
Los 0omentarios en el lenguaje de -rograma0in 5as0al se es0riben de la siguiente manera: HomienSan -or los smbolos %1 y terminan -or 1&3 2i llamamos smbolo a 0ual.uier 0arL0ter A2H;; menos \1] y \&], en el interior del 0omentario se -uede es0ribir 0ual.uier 0antidad de smbolos, in0luyendo ninguno3 5ero ademLs, dentro del 0omentario se -ueden usar los 0ara0teres \1] y \&] siem-re y 0uando no Raya un \1] seguido de un \&], en 0uyo 0aso se inter-retara 0omo el final del 0omentario3 5or ejem-lo, son TLlidos los siguientes 0omentarios: %11& %1 Rola 1& %1Ro11 la, .ue 1Ray 1& %1 Ro&la &111& Se pide: 3 Honstruir un AFD .ue re0onoS0a los 0omentarios de 5as0al3 <n di0Ro AFD se utiliSarL smbolo -ara re-resentar a 0ual.uier 0arL0ter menos \1] y \&] "3 @ediante el algoritmo de e0ua0iones, transformar el AFD obtenido en defini0in regular3

E&ercicio $(
<n una fLbri0a se -rodu0en " ti-os de botellas: agua %A& y Tino %^&3 Las res-e0tiTas mL.uinas .ue fabri0an estas botellas 0ometen eO0e-0ionalmente alg/n error, obteniendo una botella defe0tuosa: agua defe0tuosa %X& y Tino defe0tuosa %D&3 <Oiste el -roblema de .ue si una mL.uina se estro-ea y no se -ara a tiem-o -uede 0ausar graTes des-erfe0tos3 Debido a ello se .uiere me0aniSar la -arada de las mL.uinas de una forma muy sen0illa: un -rograma .ue im-lemente un autmata finito, el 0ual re0ibirL 0omo entrada la -rodu00in %A, ^, X, D&3 <n una mL.uina 0on fun0ionamiento 0orre0to se -uede 0onsiderar a0e-table un error en una botella, -ero dos seguidos no3 5or lo .ue el fun0ionamiento del autmata Ta a ser el siguiente: si en un momento dado, las dos /ltimas botellas de Tino .ue Ra re0ibido son defe0tuosas debe -arar todo el sistemaN y lo mismo -ara las de agua3 Etese .ue -or ejem-lo entre dos botellas de agua defe0tuosas -ueden llegar botellas de Tino3 As, si se re0ibe AX^^X, debe -arar el sistema -or.ue las dos /ltimas botellas de agua .ue se Ran Re0Ro son defe0tuosas3 Definir el autmata finito determinista -edido3 5ara ello se 0onsiderarL .ue tiene un /ni0o estado final, .ue 0uando se al0anSa, -ara automLti0amente el sistema de -rodu00in3

E&ercicio $)
2ea el lenguaje L definido sobre el alfabeto [={0, }, formado -or las -alabras .ue tienen al menos una TeS la sub-alabra 00 , sin 0ontener la sub-alabra 000, y .ue estLn a0abadas en 03 <jem-los 0orre0tos de -alabras de L: 00 0, 00 0, 00 00 00, 00 00 <jem-los in0orre0tos de -alabras de L: 00, 00 , 000 0, 0000 0,

P %-

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

Se pide: 3 <n0ontrar un AFD mnimo .ue re0onoS0a el lenguaje L3 5lasmar en 0ual.uier 0aso la a-li0a0in del algoritmo de minimiSa0in3 "3 =e-resentar el lenguaje L -or medio de una eO-resin regular3

E&ercicio $*
Dada la siguiente gramLti0a ?EF: (2ustan0ia* ::= (2ustan0ia* 6 (Hom-onente* ' (Hom-onente* (Hom-onente* ::= (<lemento* (Hom-onente* ' (<lemento* (<lemento* ::= Y ' H ' > Donde Y 0orres-onde a Yidrgeno, H a Harbono y > a >Ogeno3 Se pide: 3 Honstruir un AFD mnimo .ue re0onoS0a el lenguaje definido -or la gramLti0a3 <s obligatorio 0om-robar .ue el AFD es mnimo3 "3 >btener una eO-resin regular .ue denote el mismo lenguaje3 #3 Honstruir un AFD mnimo .ue re0onoS0a el mismo lenguaje, -ero slo a.uellas -alabras .ue tienen al menos dos Yidrgenos seguidos en alg/n -unto de la -alabra3

E&ercicio $+
Dado el alfabeto = {a, b} sea L el lenguaje de todas las -alabras .ue 0ontienen al menos una TeS la sub-alabra aa, -ero .ue no 0ontienen la sub-alabra aaa3 5or ejem-lo, seran 0orre0tas las -alabras aa, aabb y baabaaba, -ero no lo seran a, aba, aaa, aaaa ni aabaaaaaba3 2ea L" el lenguaje sobre el mismo alfabeto 0on todas las -alabras .ue no 0ontienen la sub0adena aaa3 Se pide: 3 =ealiSar un AFD .ue re0onoS0a L 3 "3 <n0ontrar una <= .ue denote L"3 #3 Gustifi0ar de forma raSonada si son 0orre0tas o no las siguientes afirma0iones: L L" = L"
N

L L" = L

L"1 = L"

E&ercicio $,
2ea L un lenguaje definido sobre un alfabeto ={a,b} formado -or las -alabras .ue tienen un n/mero im-ar de smbolos a y 0omo mLOimo dos smbolos b 0onse0utiTos3 <jem-los TLlidos: a, aaba, aaabbaba, babbabbab <jem-los no TLlidos: !, aabbba, bb, abbabbaba 2ea L" un lenguaje definido sobre un alfabeto ={a,b} formado -or las -alabras .ue tienen un n/mero -ar de smbolos a %el 0 se 0onsidera un n/mero -ar& y 0omo mLOimo dos smbolos b 0onse0utiTos3 <jem-los TLlidos: !, aa, aaaba, aaabbaaba, baabbabbab, bb <jem-los no TLlidos: a, aabbbaa, aabbabbaba Se pide 3 <n0ontrar una eO-resin regular .ue denote el lenguaje L 3 "3 Gustifi0ar si se 0um-len o no las siguientes igualdades: L ' L"=1 N L 3L"=L"3L
N

L 1=1 N L =L"

P %.

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

#EMA ) !LEN3UA4ES DE CON#E5#O LIBRE. SIN#A5IS"


E&ercicio $
Dada la siguiente gramLti0a: S 777* AB A 777* aaA B 777* aaaB 3 Demostrar .ue es ambigua -oniendo un ejem-lo de di0Ra ambig_edad3 PHuLles son todas las -alabras ambiguasQ3 "3 2ea L el lenguaje generado -or di0Ra gramLti0a3 >btener un autmata finito %determinista o no, -ero sin transi0iones Ta0as&, .ue re0onoS0a L3 #3 >btener dire0tamente a -artir del autmata del a-artado anterior una gramLti0a de ti-o #3 P2e Ra 0onseguido 0on esta gramLti0a eliminar la ambig_edadQ3 Gustifi0arlo3

E&ercicio (
2ea la siguiente gramLti0a inde-endiente del 0onteOto: 2 ` AA A ` AAA ' a ' bA ' Ab Se pide: 3 Demostrar .ue es ambigua3 "3 <O-li0ar el lenguaje .ue genera di0Ra gramLti0a, determinar el ti-o del mismo defini4ndolo mediante un me0anismo formal de di0Ro ti-o3

E&ercicio )
Hom-robar si la siguiente gramLti0a es ambigua3 <n 0aso de serlo, modifi0arla -ara .ue no lo sea sin alterar la sintaOis .ue define3 (Talor* ::= (signo* (Talor* ' 0tea0ar ' identifi0ador ' 0teaent (2igno* ::= 6 ' 7 '

E&ercicio *
3 Dada la siguiente sintaOis en ?EF estLndar: (Lista* ::= (Listaaelem* (Hlase* (Listaaelem* ::= id , (Listaaelem* ' id (Hlase* ::= long ' BtiliSando /ni0amente una -rodu00in, realiSar la misma es-e0ifi0a0in en ?EF am-liada o eOtendida3 "3 La siguiente sintaOis -retende definir una lista de 0ero a infinitos identifi0adores se-arados -or -unto y 0oma3 Gustifi0ar si es 0orre0ta o no, y en 0aso de no serlo, 0orregirla3 (Lista* ::= identifi0ador N (Lista* ' identifi0ador

P %0

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

' #3 Dada la siguiente es-e0ifi0a0in l4Oi0a en ?EF estLndar: (numero* ::= (2igno* (Taloranumeri0o* (2igno* ::= 7 ' (^aloranum4ri0o* ::= (digito* (Taloranumeri0o* ' (digito* (digito* ::= 0 ' ' " ' # ' $ ' ) ' + ' , ' I ' K =ealiSar la misma es-e0ifi0a0in en ?EF am-liada o eOtendida3 Eo se 0onsiderarL TLlida la solu0in si no se usan ade0uadamente las llaTes y los 0or0Retes de di0Ra nota0in3 $3 Pbu4 -re0eden0ia de o-eradores se Ra definido en la siguiente sintaOis de eO-resionesQ (<O-resin* ::= (<O-resin* 6 (>-erando* ' (<O-resin* 1 (>-erando* ' (>-erando* (>-erando* ::= id ' 0teaent ' 0teareal

E&ercicio +
2ea la siguiente es-e0ifi0a0in sintL0ti0a de autmatas finitos: <n -rimer lugar a-are0e el estado ini0ial -re0edido de la -alabra reserTada ;E;H;AL3 A 0ontinua0in a-are0en las transi0iones agru-adas -or el estado de origen3 As, si desde . 0 0on una \a] se transita a . y 0on una \b] a .", se indi0ara de la siguiente manera: .0 \a] . N \b] ." 3 Homo se -uede Ter, 0uando Ray mLs de un destino se se-aran 0on el smbolo \N]3 AdemLs, -ara indi0ar .ue las transi0iones de ese origen Ran terminado, se utiliSa el smbolo \3]3 5ara indi0ar .ue Ray Tarios smbolos 0on los .ue se -uede transitar de un estado a otro, se utiliSan 0omas y subrangos3 5or ejem-lo: .0 \a] , \b] . indi0a .ue desde .0 0on \a] o \b] se transita a . .0 \a] 33 \d] . indi0a .ue desde .0 0on \a], \b], \0] o \d] se transita a . .0 \b]33]d], \f], \j]33]l] . indi0a .ue desde .0 0on b],\0],]d],]f],]j],]M] o ]l] se transita a . Finalmente, -re0edida de la -alabra reserTada F;EAL<2, a-are0e la lista de estados finales se-arados -or 0omas3 2e su-one .ue un autmata finito tiene al menos una transi0in y al menos un estado final3 AdemLs, los autmatas finitos a.u 0onsiderados no tendrLn transi0iones Ta0as3 5or ejem-lo, el siguiente autmata finito:
. 033K

033,, K

O, X

b
"

-odra tener la siguiente es-e0ifi0a0in en este lenguaje: ;E;H;AL .0 .0 \I] ." N \0] 33 \,] , \K] . 3 . \0] 33 \K] . N \O] , \X] .# 3 ." \a] . 3
P % $/

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

.# \b] ." 3 F;EAL<2 .# Honsiderando 0omo l4Oi0o eO0lusiTamente las siguientes -alabras: ;E;H;AL, F;EAL<2, estado, 0tea0ar, \N], \,], \3] y \33], se -ide: 3 Definir la sintaOis anterior mediante la nota0in ?EF estLndar3 "3 A -artir de la gramLti0a anterior, realiSar las transforma0iones .ue se 0onsideren o-ortunas -ara obtener una gramLti0a e.uiTalente .ue 0um-la la 0ondi0in LL% &3 Demostrarlo mediante el 0Ll0ulo detallado de dire0tores3

E&ercicio ,
2ea la siguiente sintaOis de eO-resiones en nota0in ?EF: (<O-resin* ::= (<O-resin* 1 (T4rmino* ' (T4rmino* (T4rmino* ::= (>-erando* J (T4rmino* ' (>-erando* (>-erando* ::= identifi0ador ' 0teaent ' 0teareal ' %(<O-resin*& Se pide: 3 @odifi0ar la gramLti0a -ro-uesta -ara .ue los -ar4ntesis no se -uedan anidar, es de0ir, dentro de una eO-resin entre -ar4ntesis no se -uede TolTer a utiliSar -ar4ntesis, aun.ue s los o-eradores de -rodu0to y diTisin3 "3 @odifi0ar la gramLti0a del enun0iado -ara in0luir los siguientes o-eradores: raS 0uadrada % & y Talor al 0uadrado %&, seg/n las siguientes 0ara0tersti0as:
2on unarios y tienen mayor -re0eden0ia .ue el resto de o-eradores3 La raS 0uadrada % & Ta antes del o-erando, mientras .ue el Talor al 0uadrado % & Ta des-u4s3 Hual.uiera de los dos se -ueden anidar sobre un o-erando3 5or ejem-lo: " re-resentara "I3 2in

embargo, no es -osible utiliSar ambos simultLneamente sobre un mismo o-erando3 5or ejem-lo, " no sera TLlido, ya .ue e.uiTale a ", 0uya re-resenta0in es mLs sen0illa3 >btener una solu0in no ambigua3

E&ercicio 2ea la siguiente sintaOis de eO-resiones -ro-ia de un lenguaje de -rograma0in L3 (<O-resin* ::= (<O-resin* (o- * (Aritmeti0o* ' (Aritmeti0o* (o- * ::= AED ' >= ' * ' ( (Aritmeti0o* ::= (Aritm4ti0o* (o-"*(>-erando* ' (>-erando* (o-"* ::= 6 ' 7 ' 1 ' J (>-erando* ::= identifi0ador ' 0teaent ' % (<O-resin* & Se pide: 3 ;n0or-orar los o-eradores aritm4ti0os D;^ y @>D %diTisin entera y resto de la diTisin entera&, seg/n sus -ro-iedades: @ayor -re0eden0ia .ue el resto de o-eradores3 ?inarios, 0on aso0iatiTidad a la dere0Ra3 "3 Am-liar la sintaOis del a-artado anterior -ara .ue dentro de las eO-resiones -ueda Raber llamadas a fun0in, teniendo en 0uenta .ue una llamada a una fun0in se 0onstruye -oniendo en -rimer lugar el nombre de la

P % $$

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

misma y a 0ontinua0in, siem-re entre -ar4ntesis, los -arLmetros a0tuales o de llamada, 0uyas 0ara0tersti0as sintL0ti0as son las siguientes: 5uede Raber de 0ero a infinito y Tan se-arados -or 0omas3 Hada -arLmetro a0tual -odrL ser /ni0amente un identifi0ador, una 0onstante entera o una llamada a otra fun0in3 2i Ray -arLmetros a0tuales enton0es al menos uno Ra de ser identifi0ador, aun.ue -uede estar en 0ual.uier -osi0in3 5or ejem-lo, eO-resiones TLlidas seran: auO 6 -oten0ia % O, # & Z diferen0ia %#, O& 0ima % & * suma %O, y, S, mejor %-& & 5ero no sera TLlido: auO 6 -oten0ia %#, #& Z mejor %)&

E&ercicio .
La sintaOis de las eO-resiones de un lenguaje de -rograma0in 0onsta de los siguientes elementos: >-erandos : o- , o-" e id >-eradores : 6 y 1 %ambos binarios& La aso0iatiTidad de los o-eradores es -or la iS.uierda, mientras .ue la -re0eden0ia del o-erador 1 es mayor .ue el o-erador 63 Eo eOisten -ar4ntesis en las eO-resiones de este lenguaje Definir la gramLti0a de las eO-resiones -ro-uestas en ?EF, teniendo en 0uenta en di0Ra sintaOis .ue el o-erando o- no se -uede utiliSar en la o-era0in -rodu0to3 <jem-los 0orre0tos de eO-resiones: o-"6o- , o- 6id 1o-"1o-"6o<jem-los in0orre0tos de eO-resiones: o- 1id, o-"6o-"1o-

E&ercicio 0
Dado el alfabeto = {0, , ", #, $, ), +, ,, I, K, 6 ,7 ,1, J }, sea el lenguaje L formado -or todas las eO-resiones aritm4ti0as .ue se -ueden formar 0on los smbolos de este alfabeto, donde 0, , ", #, $, ), +, ,, I, K son o-erandos y , 6 ,7 ,1, J son los o-eradores binarios de suma, resta, -rodu0to y diTisin res-e0tiTamente3 5or ejem-lo, -ertene0en a este lenguaje las -alabras , 60 y )6#1IJ,, y no -ertene0en: , 6 1J"3 Determinar el ti-o del lenguaje L, justifi0Lndolo mediante un me0anismo formal del ti-o 0orres-ondiente3

E&ercicio $/
Dada la siguiente gramLti0a en ?EF estLndar, 0orres-ondiente a las eO-resiones de un lenguaje de -rograma0in, .ue utiliSa tablas de Tarias dimensiones: (<O-resin* ::= (<O-resin* (>-* (>-erando* ' (2igno* (>-erando* (>-* ::= 6 ' 7 ' 1 ' J (2igno* ::= 7 ' (>-erando* ::= id ' 0teaent ' (Tabla* ' (Llamadaafun0* ' % (<O-resin* & (Tabla* ::= (Tabla* c (<O-resin* d ' id (Llamadaafun0* ::= id (5arLmetro* (5arLmetro* ::= % (<O-resin* & '

P % $(

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

<s-e0ifi0arla en nota0in <?EF %?EF eOtendida o am-liada&3 Eo se 0onsiderarL 0orre0ta la solu0in si no se usan ade0uadamente las llaTes y los 0or0Retes de di0Ra nota0in3

E&ercicio $$
2e desea definir la sintaOis de un -e.ueeo lenguaje -ara 0Ll0ulos matemLti0os3 Las 0ara0tersti0as de este lenguaje son la siguientes: fni0amente es -osible de0larar Tariables y realiSar senten0ias de 0Ll0ulo %asigna0iones a Tariables&, 0on la -e0uliaridad de .ue no Ray ninguna ordena0in entre de0lara0iones y senten0ias de 0Ll0ulo, es de0ir, -ueden estar meS0ladas y no Ray ninguna obliga0in de .ue al -rin0i-io o al final del fuente deba Raber una de0lara0in o un 0Ll0ulo3 Dos ejem-los de fuentes en este lenguaje -ueden ser los siguientes: ^A= O: entero O=, ^A= y: real y="1OJ, O=yJO memoria = ,3) ^A= O:entero O = , 1 memoria y=OJ$ ^A= y : real

Bn fuente -uede 0ontener 0ual.uier 0antidad tanto de de0lara0iones 0omo de senten0ias de 0Ll0ulo3 2in embargo, aun.ue de de0lara0iones es TLlido .ue no eOista ninguna, la sintaOis eOige .ue un fuente tenga al menos una senten0ia de 0Ll0ulo3

Se pide: 3 Definir la sintaOis de este lenguaje de -rograma0in en fun0in de los no terminales (De0lara0in* y (2enta0Ll0ulo*, 0uyas sintaOis no deben definirse3 =ealiSar la defin0in -rimero en ?EF estLndar y a 0ontinua0in en ?EF eOtendida o am-liada3 "3 2u-oner aRora .ue la sintaOis del lenguaje anterior se modifi0a en las siguientes 0ara0tersti0as: <n un fuente todas las de0lara0iones deben estar al -rin0i-io del mismo, mientras .ue todas las senten0ias de 0Ll0ulo deben estar al final3 <l n/mero de senten0ias de 0Ll0ulo en un fuente Ra de ser siem-re ma'or .ue el n/mero de de0lara0iones3 Al menos debe Raber una senten0ia de 0Ll0ulo y es TLlido .ue no Raya ninguna de0lara0in3 Todas las senten0ias, ya sean de de0lara0in de Tariables o de 0Ll0ulo, Tan se-aradas -or un -unto y 0oma3 5or tanto, la /ltima senten0ia de 0Ll0ulo no lleTa -unto y 0oma a 0ontinua0in3 Fuentes TLlidos -ueden ser los siguientes: ^A= O: entero N ^A= y: real N O=,N y="1OJ,N O=yJO ^A= y : real N ^A= O:entero N memoria = ,3) N O = , 1 memoria N y=OJ$

Definir la sintaOis de este lenguaje en nota0in ?EF estLndar en fun0in de los no terminales (De0lara0in* y (2enta0Ll0ulo*3 >bTiamente, el -unto y 0oma no se en0uentra dentro de la defini0in de estos no terminales y es ne0esario definir su -osi0in sintL0ti0a en la solu0in de este ejer0i0io3

E&ercicio $(
<n un lenguaje de -rograma0in L, se desea definir una senten0ia de alternatiTa m/lti-le, 0uya estru0tura general es la siguiente : ALT<=EAT;^A %eO-resin& { alternatiTa : gru-o senten0ias breaM

P % $)

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

33333333333333333333333333333333333 alternatiTan : gru-o senten0ias breaM 5>= D<F<HT> : gru-o senten0ias }

5ara 0onstruir la eO-resin se -odrLn utiliSar identifi0adores y 0onstantes 0omo o-erandos, y 0omo o-eradores los smbolos aritm4ti0os binarios: %6, 7, 1 , J&3 Debi4ndose tomar ademLs en 0onsidera0in las siguientes reglas de -re0eden0ia: 0ada o-erador tiene una -re0eden0ia distinta, seg/n el siguiente orden de menor a mayor : 7, 6, J y 13 Tambi4n se -odrLn utiliSar -ar4ntesis de la forma Rabitual -ara alterar la -re0eden0ia3 Los o-eradores 6 y 7 -ueden ser tambi4n o-eradores unarios %0on mayor -re0eden0ia&3 5uede .ue no eOistan alternatiTas en 0uyo 0aso debe eOistir la o-0in 5>= D<F<HT>, .ue 0onsiste en la -alabra reserTada 5>= D<F<HT> seguida de un gru-o de senten0ias3 <n otro 0aso de eOistir alternatiTas, no es obligatorio .ue a-areS0a la o-0in 5>= D<F<HT>3 5ero si a-are0e deberL ser la /ltima y nun0a lleTarL la senten0ia breaM3 Hada alternatiTa estL formada -or una lista de una o mLs 0onstantes se-aradas -or 0omas3 Hada 0onstante -uede ser indistintamente entera o 0arL0ter3 <l gru-o de senten0ias estL formado -or 0ero o mLs senten0ias se-aradas -or el smbolo \N] , la /ltima de las 0uales -odrL ser la senten0ia breaM % no es obligatoria -ero si a-are0e serL la /ltima&3 Se pide: >btener una gramLti0a en nota0in ?EF estLndar y otra en ?EF am-liada % eOtendida& es-e0ifi.ue la anterior sintaOis3 .ue

Eota: Eo es ne0esario la defini0in de las senten0ias, -uesto .ue no se es-e0ifi0a %se dejarL en fun0in del no terminal (senten0ia*&3

E&ercicio $)
3 2ea la siguiente gramLti0a: 2] 777* 2g 2 777* a20 ' bAa ' A 777* 02A ' Gustifi0ar si es 0orre0to o no el siguiente 0Ll0ulo de dire0tores -ara la -rodu00in 2 777* 3 <n 0aso de no serlo, 0orregirlo3 Dir % 2 777* & = 2eg % 2 & = { g } { 0 } ;ni0 %A& = { g } { 0 } { 0 } = { g, 0 } "3 Gustifi0ar la 0orre00in o in0orre00in de la siguiente afirma0in: V2i en una gramLti0a de 0onteOto libre un smbolo no terminal tiene dos -rodu00iones anulables, enton0es la gramLti0a nun0a serL LL% &W #3 2in 0al0ular smbolos dire0tores, indi0ar si la siguiente gramLti0a es LL% &, justifi0ando en detalle el -or .u43 (de0lara0in*::= (de0l* (restoade0l* (restoade0l*::= (de0l* (masade0l* ' (masade0l*::= (de0l* (masade0l* ' (de0l*::= Tariable identifi0ador '

E&ercicio $*
Dada la siguiente gramLti0a: 2 AA ' aAa
P % $*

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

A bA20 ' Des-u4s de eliminar los -refijos 0omunes y la re0ursiTidad inmediata -or la iS.uierda mediante los algoritmos estudiados en la asignatura, realiSar el 0Ll0ulo detallado de dire0tores y determinar si la gramLti0a 0um-le la 0ondi0in LL% &3

E&ercicio $+
Dada la siguiente gramLti0a: 2 777* a2b' 2b ' Se pide: 3 Des-u4s de eliminar los -refijos 0omunes y la re0ursiTidad inmediata -or la iS.uierda mediante los algoritmos estudiados en la asignatura, justifi0ar mediante el 0Ll0ulo detallado de los smbolos dire0tores si la gramLti0a resultante 0um-le la 0ondi0in LL% &3 "3 <n 0aso de .ue no sea LL% &, obtener una gramLti0a e.uiTalente .ue s 0um-la di0Ra 0ondi0in, demostrLndolo igualmente a traT4s de los smbolos dire0tores3

E&ercicio $,
Dada la gramLti0a F siguiente: S 777* Aac A 777* abA ' 3 Gustifi0ar si la gramLti0a F 0um-le la 0ondi0in LL% &3 <n 0aso de no 0um-lirla, obtener una gramLti0a e.uiTalente Fh .ue s 0um-la di0Ra 0ondi0in3 "3 =aSonar si las gramLti0as F y Fh son LL%"&3

E&ercicio $2ea la siguiente gramLti0a .ue define la sintaOis de las llamadas a fun0in en un determinado lenguaje de -rograma0in3 Di0Ra llamada se 0ara0teriSa -or tener uno o dos -arLmetros3 <n 0aso de tener un slo -arLmetro Ra de ser obligatoriamente un identifi0ador3 5ero si tiene dos -arLmetros, 0ada uno de ellos -odrL ser indistintamente un identifi0ador, una llamada a otra fun0in o una 0onstante entera: (Llamafun0in* ::= identifi0ador % (5arLmetros* & (5arLmetros* ::= identifi0ador ' (5aram* , (5aram* (5aram* ::= (Llamafun0in* ' identifi0ador ' 0teaent 2e -uede 0om-robar fL0ilmente .ue la gramLti0a anterior no es LL% &: Las dos -rodu00iones de (5arLmetros* tienen 0omo dire0tor 0om/n el identifi0ador3 Las dos -rimeras -rodu00iones de (5aram* tienen 0omo dire0tor 0om/n el identifi0ador3 Se pide: =ealiSando las transforma0iones .ue se 0onsideren o-ortunas, obtener una gramLti0a e.uiTalente a la anterior .ue 0um-la la 0ondi0in LL% &3 5ara -robarlo se deberL realiSar el 0Ll0ulo de los smbolos dire0tores -ara las -rodu00iones en .ue sea ne0esario3 Eota: <l 0Ll0ulo de dire0tores deberL a-are0er de forma detallada en fun0in de todos los ini0iales y seguidores

E&ercicio $.

P % $+

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

La siguiente gramLti0a es0rita en nota0in ?EF .ue re-resenta la sintaOis de la de0lara0in de tablas o arrays en un lenguaje similar a 5as0al: (Tabla* ::= TA?LA \c\ (;ndi0e* \d] >F (Ti-o* (;ndi0e* ::= (Limite* 33 (Limite* ' identifi0ador (Limite* ::= (2igno* (2inasigno* (2inasigno* ::= identifi0ador ' 0teaent (2igno* ::= 7 ' (Ti-o* ::= identifi0ador Se pide: 3 Hal0ular los smbolos dire0tores -ara las reglas de -rodu00in del no terminal (;ndi0e*3 Hom-robar .ue no 0um-le la 0ondi0in LL% &3 "3 2in alterar la sintaOis del lenguaje, obtener una gramLti0a e.uiTalente .ue 0um-la la 0ondi0in LL% &3 #3 @ediante el 0Ll0ulo de los smbolos dire0tores .ue sean ne0esarios, 0om-robar .ue efe0tiTamente la gramLti0a resultante 0um-le di0Ra 0ondi0in3

E&ercicio $0
3 Gustifi0ar si las siguientes dos transi0iones de un autmata a -ila su-onen no determinismo: % .0, a, b & = % .", ab& % .0, a, & = % . , a& "3 BtiliSando la nota0in matemLti0a o de -oten0ias, determinar el lenguaje re0ono0ido -or el siguiente autmata a -ila 0on re0ono0imiento -or estado final, donde F = { . # }3 % .0, a, i& = % . , ai& % . , a, a& = % . , aa& % . , b, & = % .", b& % .", g, b& = % .#, b& #3 2ea el siguiente autmata a -ila 0on re0ono0imiento -or Ta0iado de -ila: %.0, a, i& = %.0, ai& %.0, a, a& = %.0, aa& %.0, b, a& = { %. , &, %.", & } %. , b, a& = %. , & %. , g, i& = %. , & %.", , a& = %.#, & %.#, b, a& = %.", & %.#, g, i& = %.#, & Determinar el lenguaje re0ono0ido -or el mismo, eO-resLndolo en lenguaje matemLti0o o de -oten0ias3 $3 Dada la siguiente fun0in de transi0iones -ara un autmata a -ila: %.0, a, i& = %.0, ai& %.0, a, a& = %.0, aa& %.0, 0, a& = {%. ,a& %. , b, a& = {%. , &, %.", a& } %.", b, a& = %. , &

P % $,

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

%. , g, i& = %. , & 2abiendo .ue realiSa un re0ono0imiento -or Ta0iado de -ila, determinar el lenguaje re0ono0ido -or el mismo3 <O-resarlo mediante una nota0in matemLti0a o de -oten0ias3

E&ercicio (/
5ara 0ada uno de los siguientes lenguajes de 0onteOto libre: 3 "3 #3 $3 L = { an bm 0M ' m * n 6 M N n, M *= } L = { TjU ' T %ab&6 , 0on U %a ' b&6 y 0on |T| |U| } L = {anbm0M ' n es un n/mero -ar, -osiblemente el 0, M es un n/mero im-ar y m * M6n } 2ea el alfabeto = {a, b} se 0onsidera el lenguaje de las -alabras .ue tienen al menos dos smbolos VbW y .ue 0um-len la -ro-iedad de .ue el n/mero de smbolos VaW .ue Ray antes de la -rimera VbW es estri0tamente mayor .ue el n/mero de smbolos VaW .ue Ray des-u4s de la /ltima VbW3 5or ejem-lo, -ertene0en a este lenguaje: aaabbaa, aabb, abbb, aabababaaba3 <n 0ambio, no -ertene0en: abaabaa, baaba, bab3 L = { vbbw ' v, w {a,b}1 y |v| >= |w| %la longitud de v es mayor o igual .ue la de w& } 5or ejem-lo, -ertene0en a este lenguaje las -alabras abb, ababbaa, abbabba3 +3 Dado el alfabeto [={a,b,0}, sea el lenguaje L = {U 0U" ' U ,U"{a,b}1 N U" U 7 } 5alabras .ue -ertene0en al lenguaje L: ab0ab, a0, 0ba 5alabras .ue no -ertene0en al lenguaje L: a, 0, a0a, ab0ba ,3 Hon el alfabeto 8={a,b,0} se define el lenguaje L = {Uj0 n ' U -ertene0e a {a,b}6, n*0} en el .ue ademLs se 0um-le .ue: si U termina en a, enton0es la longitud de U es mayor o igual .ue n si U termina en b, enton0es la longitud de U es menor o igual .ue n <jem-los de -alabras del lenguaje: abba00, aaa000, ab000, bbbab00000 <jem-los de -alabras .ue no son del lenguaje: abba00000, aaa00000000, ab0, bbbab000 Se pide: 3 <n0ontrar una gramLti0a de 0onteOto libre .ue lo genere3 "3 2in a-li0ar ning/n algoritmo, es de0ir, -artiendo de la defini0in del lenguaje, obtener el diagrama de transi0iones de un autmata a -ila %A5& .ue lo re0onoS0a3

)3 Dado el alfabeto = {a, b} sea el lenguaje

E&ercicio ($
Dado el alfabeto = {a, b}, sea el lenguaje L = { anbm ' n * mN n, m * 0 } Se pide: 3 <n0ontrar una gramLti0a de 0onteOto libre .ue genere el lenguaje L1 %L estrella&3 "3 <n0ontrar un autmata a -ila %A5& .ue re0onoS0a L1 %L estrella&3 5ara ello se in0luirLn los siguientes -untos: <O-li0ar breTemente la lgi0a del A5, es de0ir, de .u4 manera se Ta a determinar .ue una -alabra se Ta a re0ono0er o a re0RaSar3

P % $-

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

;ndi0ar si se Ta a realiSar el re0ono0imiento -or Ta0iado de -ila o -or estado final3 5ara este /ltimo 0aso seealar elJlos estadoJs finalJes3 Gustifi0ar ademLs si el A5 es determinista o no3 Dibujar el diagrama de transi0iones del A53

#EMA * !3ram ticas de atri6utos. Sem ntica"


E&ercicio $
2ea la siguiente gramLti0a de 0onteOto libre sobre el alfabeto = { \%\ , \&] } S 777* % & ' % S & ' % & S ' % S & S .ue genera todas las eO-resiones -osibles de -ar4ntesis e.uilibrados, es de0ir, .ue 0um-len las siguientes 0ondi0iones:

Tienen igual n/mero de smbolos \%\ .ue de smbolos ]&]3 Hual.uier -refijo de la eO-resin tiene un n/mero de smbolos \%\ mayor o igual .ue de smbolos \&]3 <s de0ir, en un -unto de la eO-resin -uede Raber un n/mero indeterminado de -ar4ntesis de 0errar -endientes, -ero no de -ar4ntesis de abrir3

5or ejem-lo, son TLlidas las eO-resiones : % &, % & % &, % % & % & &, % % & % & %% & & &3 A -artir de la gramLti0a -ro-uesta y sin modifi0arla, 0onstruir una gramLti0a de atributos .ue 0al0ule el mLOimo niTel de anidamiento de -ar4ntesis .ue tiene la eO-resin generada3 <n los ejem-los -re0edentes los resultados seran: , , " y #, res-e0tiTamente3

E&ercicio (
Dado el lenguaje L= { n/meros -ositiTos en base $, 0on -arte entera y fra00ionaria, eOistiendo al menos un dgito en 0ada -arte}, se pide definir una gramLti0a de atributos sintetiSados, a-oyLndose en una gramLti0a de ti-o " %0onteOto libre&, .ue 0al0ule el Talor de0imal de di0Ros n/meros3 Antes de es0ribir la gramLti0a de atributos eO-li0ar el uso .ue se Ta a dar a 0ada atributo3 <jem-los: "3" darL 0omo salida -or -antalla +3) %.ue resulta de 1$ 6"1$06"1$7 & #03#" darL 0omo salida -or -antalla "3I,) %.ue resulta de #1$ 6#1$7 6"1$7"& 03 darL 0omo salida -or -antalla 03") %.ue resulta de 1$ 7 &

E&ercicio )
Dada la siguiente gramLti0a ?EF: (<O-resin* ::= (<O-resin* 6 (T4rmino* ' (<O-resin* 7 (T4rmino* ' (T4rmino* (T4rmino* ::= (T4rmino* 1 (Fa0tor* ' (Fa0tor* (Fa0tor* ::= 7 (Hifra* ' (Hifra* (Hifra* ::= 0 ' ' " ' # ' $ ' ) ' + ' , ' I ' K 2e .uiere 0ono0er el n/mero de Te0es en .ue a-are0e el o-erador binario 7 inmediatamente seguido -or el o-erador unario 73 5or ejem-lo: #77$1I6+77I V 2e Ra en0ontrado " Te0es V I1+77)

P % $.

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

V 2e Ra en0ontrado TeS V Se pide: 5artiendo de la gramLti0a anterior y sin modifi0arla, obtener una %ram tica de atri6utos .ue obtenga esta informa0in3 5reTiamente se deberL indi0ar los atributos utiliSados, su fun0ionalidad y si son Reredados o sintetiSados3

E&ercicio *
La siguiente gramLti0a es-e0ifi0a la sintaOis de las eO-resiones en un lenguaje L3 (eO-resin* ::= (eO-rasim-le* (o-arel* (eO-rasim-le* ' (eO-rasim-le* (eO-rasim-le* ::= (eO-rasim-le* (o-aarit* (fa0tor* ' (fa0tor* (fa0tor* ::= E>T (fa0tor* ' identifi0ador ' 0teanumeri0a ' % (eO-resin* & (o-arel* ::= * ' ( ' = (o-aarit* ::= 6 ' 1 2e -retende aeadir la -arte semLnti0a 0orres-ondiente a di0Ro lenguaje: Bni0amente se 0onsideran dos ti-os: num4ri0o y lgi0o3 Las o-era0iones de suma % 6 & y -rodu0to % 1 & deben realiSarse obligatoriamente entre ti-os num4ri0os, dando 0omo resultado un Talor num4ri0o3 Los o-eradores de rela0in 0om-aran dos Talores num4ri0os, obteniendo un Talor lgi0o3 AdemLs, el o-erador igual % = & es -osible utiliSarlo tambi4n entre dos Talores lgi0os, 0onsiguiendo igualmente un resultado lgi0o3 Finalmente, el o-erador unario E>T debe a-li0arse obligatoriamente a un Talor lgi0o3 >btener la gramLti0a de atributos .ue es-e0ifi0a di0Ra semLnti0a sin modifi0ar la gramLti0a -ro-uesta3

E&ercicio +
2ea la siguiente semLnti0a en ?EF, .ue re-resenta la de0lara0in de sub-rogramas en un lenguaje de -rograma0in L: (sub-*::= 5=>H<DB=< identifi0ador %(-arametros*&N (de0laTariables* (-arteaeje0* (-arametros*::= (-aram*N(-arametros* ' (-aram* (-aram*::= (0lasea-ar* identifi0ador : (ti-o* (0lasea-ar*::= ^A= ' (ti-o*::= <ET<=> ' =<AL ' L>F;H> (de0laTariables*::= (listaaTar*N (de0laTariables* ' (listaaTar*::= ^A= (listaaid*: (ti-o* (listaaid*::= identifi0ador, (listaaid* ' identifi0ador (-arteaeje0*::= 333 A la TeS .ue se realiSa el anLlisis de una de0lara0in de sub-rogramas se -retende obtener una informa0in: el tamaeo .ue o0u-arLn los datos durante la eje0u0in del sub-rograma3 <stos datos estLn formados -or -arLmetros y Tariables lo0ales, de aR .ue no interese -ara este -roblema la sintaOis de la -arte eje0utable3 <l tamaeo de 0ada uno de los datos es el siguiente:

P % $0

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

5ara las Tariables Ra de 0onsiderarse /ni0amente el ti-o de las mismas3 As una Tariable entera o0u-a dos -osi0iones, una real 0uatro y una lgi0a una3 5ara los -arLmetros Ray .ue diferen0iar entre -arLmetro -or Talor y -arLmetro -or referen0ia %-or ^A=&3 Los -rimeros tienen una o0u-a0in igual .ue lo eO-uesto -ara las Tariables, mientras .ue los segundos o0u-an siem-re 0uatro -osi0iones, inde-endientemente del ti-o, ya .ue al tratarse de una referen0ia lo .ue Ray .ue guardar en memoria es siem-re una dire00in, no el dato3

5or ejem-lo: 5=>H<DB=< ejem-lo%O:<ET<=>N ^A= y: L>F;H>&N ^A= auO ,auO", auO#: =<ALN ^A= 0ont : L>F;H>N >0u-a0in de Tariables = $ %auO & 6 $ %auO"& 6 $ %auO#& 6 %0ont & = # >0u-a0in de -arLmetros = " %O& 6 $ %y& = + >0u-a0in total de los datos en tiem-o de eje0u0in = K -osi0iones 5artiendo de la gramLti0a -ro-uesta y sin modifi0ar ninguna -rodu00in, obtener una %ram tica de atri6utos .ue 0al0ule el tamaeo total de los datos en memoria3 ;ndi0ar -reTiamente los atributos .ue se Tan a utiliSar, .u4 fun0ionalidad tiene 0ada uno y si son sintetiSados o Reredados3

E&ercicio ,
2ea la siguiente sintaOis de una senten0ia HA2< de un lenguaje de -rograma0in al estilo de 5as0al, eO-resada 0on una gramLti0a en nota0in ?EF estLndar3 (senta0ase*::=HA2< identifi0ador >F (listaaalternatiTas* <ED (listaaalternatiTas*::=(alternatiTa*(restoaalternatiTas* (restoaalternatiTas*::=(alternatiTa*(restoaalternatiTas* '! (alternatiTa*::=(0onstantes*:(senten0ia*N (0onstantes*::= (0te*, (0onstantes* '(0te* (0te*::=0teaent ' 0tea0ar 'identifi0ador Donde (senten0ia* se refiere a 0ual.uier senten0ia del lenguaje de -rograma0in L y no es ne0esario definirla -ara este ejer0i0io3 <jem-lo: HA2< 0ar >F \a]:sent N \b],]0]:sent"N Letra,]S]:sent#N <ED La semLnti0a de la senten0ia HA2< obliga a .ue el ti-o de todas las 0onstantes utiliSadas en las diferentes alternatiTas Ra de ser igual al del identifi0ador sele0tor %el .ue a-are0e a 0ontinua0in de la -alabra reserTada HA2<&3 Se pide: A -artir de la gramLti0a anterior y sin modifi0arla, obtener una gramLti0a de atributos .ue reali0e di0Ras 0om-roba0iones, dando un mensaje de error en la -rodu00in donde se dete0te un error semLnti0o3 <O-li0ar -ara .u4 se utiliSa 0ada uno de los atributos utiliSados y si son Reredados o sintetiSados3

E&ercicio 2e -retende definir la sintaOis de una senten0ia de llamada a -ro0edimiento -ara un lenguaje de -rograma0in L, 0ara0teriSada -or:
P % (/

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

<n -rimer lugar figura el nombre del -ro0edimiento seguido -or los -arLmetros entre -ar4ntesis3 <n 0aso de .ue no Raya -arLmetros slo debe figurar el nombre del -ro0edimiento3 Los -arLmetros son de dos ti-os: de entrada y de salida3 <n -rimer lugar figuran los de entrada, a 0ontinua0in un -unto y 0oma y seguidamente los -arLmetros de salida3 Tanto -arLmetros de entrada 0omo de salida -ueden ser de 0ero a infinito se-arados -or 0oma3 2i bien, Ray .ue tener en 0uenta .ue ambas listas no -ueden ser 0ero simultLneamente, ya .ue en ese 0aso ni si.uiera se deben -oner los -ar4ntesis3 Los -arLmetros de entrada -ueden ser eO-resiones, 0uya sintaOis no debe definirse en este ejer0i0io3 Los -arLmetros de salida deben ser identifi0adores3 Se pide: 3 <s0ribir una gramLti0a en nota0in ?EF .ue defina la sintaOis -ro-uesta %no tiene -or .u4 ser LL% &&3 "3 Hom-robar si la llamada a -ro0edimiento !s"l#ado $x % &' es ambigua en la gramLti0a obtenida en el a-artado anterior3 <n 0aso de serlo, transformar di0Ra gramLti0a -ara .ue no sea ambigua3 #3 <s0ribir la misma sintaOis 0on una gramLti0a en nota0in <?EF %.ue tam-o0o sea ambigua&3 Eota: este a-artado se 0onsiderarL in0orre0to si no se utiliSan ade0uadamente los metasmbolos eO0lusiTos de la nota0in <?EF -ara re-resentar las o-tatiTidades y re-eti0iones3 $3 A la gramLti0a obtenida en el a-artado " %no ambigua& se le desea in0or-orar la restri00in de .ue el n/mero de -arLmetros de entrada sea siem-re mayor o igual .ue el n/mero de -arLmetros de salida3 <sta restri00in deberL in0luirse 0omo com7ro6aci8n sem ntica, aun.ue la %ram tica 7odr ser modificada si se 0ree ne0esario3 5ara .ue la solu0in de este a-artado se 0onsidere 0orre0ta, deberLn figurar todas las re%las de 7roducci8n de la gramLti0a .ue se utili0e, a0om-aeando a 0ada una de ellas las reglas de eTalua0in semLnti0a en 0aso de tenerlas3

E&ercicio .
2e -retende definir la de0lara0in de Tariables de un lenguaje de -rograma0in L, 0ara0teriSada -or lo siguiente: HomienSa -or la -alabra reserTada (A) y a 0ontinua0in -ueden eOistir de 0ero a infinitas listas de Tariables se-aradas -or -unto y 0oma3 Hada lista de Tariables, a su TeS, se 0om-one de uno a infinitos identifi0adores se-arados -or 0oma, a 0ontinua0in la -alabra dos -untos, y finalmente el ti-o de las Tariables, .ue -uede tratarse de uno o dos identifi0adores3 Hada Tariable es re-resentada -or un identifi0ador, 0uya 0onstru00in res-onde a las siguientes reglas: HomienSa -or una letra Hontin/a -or letras, dgitos o 0ara0teres de subrayado en 0uanta indeterminada %de 0ero a infinito& Eo -ueden a-are0er dos 0ara0teres de subrayado 0onse0utiTos3 <jem-lo: (A) x, a"x_1, a"x2_ : !n#! oN * : !n#! o dobl!

Se pide: 3 Determinar el l4Oi0o de la de0lara0in de Tariables de este lenguaje %basta 0on una enumera0in de las -alabras .ue 0om-onen el lenguaje&3 Honstruir una defini0in regular -ara los identifi0adores3 "3 Definir la sintaOis mediante una gramLti0a en nota0in ?EF Am-liada o <?EF3 Eo se 0onsiderarL TLlida la solu0in si no se utiliSan ade0uadamente los metasmbolos .ue indi0an re-eti0in y o-tatiTidad3 #3 Definir la sintaOis utiliSando la nota0in ?EF estLndar3 $3 @odifi0ar la sintaOis ?EF del a-artado # de lo .ue se Ra llamado lista de Tariables -ara .ue -uedan de0lararse simultLneamente Tariables de diferentes ti-os3 5or ejem-lo, en
P % ($

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

a"x1, a"x2, a"x+ : !n#! o, !al dobl!, lo,*co la Tariable a"x1 sera entera, la Tariable a"x2 real doble y la Tariable a"x+ lgi0a3 La gramLti0a debe eOigir .ue el n/mero de Tariables de la -arte iS.uierda sea igual .ue el n/mero de ti-os de la -arte dere0Ra3 AdemLs, 0omo es lgi0o, di0Ro n/mero serL mayor o igual .ue 3 )3 =e-etir el a-artado $ desde el -unto de Tista de la semLnti0a3 5ara ello, se definirL una gramLti0a de atributos de la siguiente manera: La sintaOis se limitarL a es-e0ifi0ar .ue una lista de Tariables se 0om-one de una lista de identifi0adores en la -arte iS.uierda y una lista de ti-os en la -arte dere0Ra3 La semLnti0a 0om-robarL .ue ambas listas tienen la misma 0antidad de elementos3

E&ercicio 0
La siguiente gramLti0a es-e0ifi0a eO-resiones regulares -ara el alfabeto = {a, b}: (<O-resina=egular* ::= (<=* (<=* ::= (<=* k'k (0on0atenado* ' (0on0atenado* (0on0atenado* ::= (0on0atenado* kk (elemento* ' (elemento* (elemento* ::= (o-erando* (unario* (unario* ::= 6 ' 1 ' (o-erando* ::= a ' b ' % (<=* & ' k k 5artiendo de esta gramLti0a -ro-uesta y sin modifi0arla, definir una gramLti0a de atributos .ue determine en la raS del Lrbol %regla de -rodu00in (<O-resina=egular* ::= (<=* & si la -alabra Ta0a -ertene0e al lenguaje .ue define la eO-resin regular es-e0ifi0ada3 ;ndi0ar -reTiamente los atributos .ue se Tan a utiliSar, .u4 fun0ionalidad tiene 0ada uno y si son Reredados o sintetiSados3 5or ejem-lo, ante la eO-resin regular a3b ' a1 deberL obtener .ue s .ue 0ontiene a la -alabra Ta0a, mientras .ue ante la eO-resin regular %a ' b&6 deberL obtener .ue no 0ontiene a la -alabra Ta0a3

E&ercicio $/
Dado el alfabeto = {a, b, 0, 1} sea la siguiente gramLti0a: (=aiS* ::= (Hadena* (Hadena* ::= (Letra* (Hadena* (Letra* ' (Letra* (Digito* (Letra* (Letra* ::= a ' b (Digito* ::= 0 ' .ue define las -alabras 0on la siguiente estru0tura: <n -rimer lugar una sub-alabra 0om-uesta -or letras a y b A 0ontinua0in, en el 0entro de la -alabra, un dgito .ue -uede ser 0 o 13 Finalmente, una segunda sub-alabra 0om-uesta -or letras a y b, y .ue tiene la misma 0antidad de smbolos .ue la -rimera sub-alabra3

2e desea afinar el lenguaje anterior -ara .ue las -alabras 0um-lan ademLs las siguientes restri00iones: 2i el dgito 0entral es 0, la -rimera sub-alabra deberL em-eSar -or a3 5or ejem-lo, seran TLlidas las -alabras aba0bba, a0a y a0b3 5ero no seran TLlidas b0a ni ba0aa3

5ero si el dgito 0entral es 1, enton0es es la segunda sub-alabra .uien deberL em-eSar -or a3 5or ejem-lo, seran TLlidas las -alabras a1a, b1a y abb1abb3 5ero no seran TLlidas a1b ni ba1ba3

Se pide:

P % ((

L;2TA D< 5=>?L<@A2 D< T<>=AA D< ABTC@ATA2 D L<EFBAG<2 F>=@AL<23

HB=2> 0IJ0K

A -artir de la gramLti0a anterior y sin modifi0arla, obtener una gramLti0a de atributos .ue 0om-ruebe di0Ras restri00iones, dando un mensaje indi0atiTo en la raS del Lrbol %re-resentada -or la -rodu00in ()a*-* ::= (Cad!na* &3 Di0Ro mensaje serL sim-lemente k-alabra TLlidak o k-alabra no TLlidak3 5reTiamente se indi0arLn los atributos a utiliSar, justifi0ando su uso, los Talores .ue -odrLn tomar y si se -ro-agan de forma Reredada o sintetiSada3

P % ()

Você também pode gostar