You are on page 1of 15

Tecnolgico de Estudios Superiores de

Ecatepec
Programacin de Sistemas
Grupo: 5551
Analizador Sintctico
Integrantes:
Arteaga Islas Esmeralda
Bravo Aguilar Josu Benjamn
Garca Contreras Eunice Sina
Islas Lpez Sand !aulina
"artnez #iosdado Carlos Adol$o
Profesora Xchitl Raquel Wong Cohen
Periodo 2013-2
Introduccin al trabajo
En este documento se conocern las caractersticas y principales funciones de un
analizador sintctico.
Analizaremos e interpretaremos como un compilador realiza el anlisis sintctico de un
programa.
ndice
Introduccin al trabajo........................................................................................................ 2
ndice................................................................................................................................. 2
Introduccin al tema........................................................................................................... 3
Anlisis sintctico............................................................................................................... 4
Desarrollo........................................................................................................................... 5
Cdigo............................................................................................................................ 5
Captura de pantallas..................................................................................................... 12
Conclusiones Indiiduales................................................................................................ 13
Arteaga Islas !smeralda............................................................................................... 13
"rao Aguilar #osu$ "enjam%n......................................................................................13
&arc%a Contreras !unice 'ina%..................................................................................... 13
Islas (pe) 'and* +aulina............................................................................................ 13
,art%ne) Diosdado Carlos Adol-o.................................................................................13
Conclusiones &eneral...................................................................................................... 14
.e-erencias...................................................................................................................... 14
Introduccin al tema
Todo lenguaje de programacin tiene reglas que describen la estructura sintctica de
programas bien formados. En Pascal, por ejemplo, un programa se compone de bloques,
un bloque de proposiciones, una proposicin de epresiones, una epresin de
componentes l!icos, y as sucesi"amente. #e puede describir la sintais de las
construcciones de los lenguajes de programacin por medio de gramticas de conteto
libre o notacin $%& ' $ac(us)%aur &orm*.
+as gramticas ofrecen "entajas significati"as a los dise,adores de lenguajes y a
los desarrolladores de compiladores.
+as gramticas son especificaciones sintcticas y precisas de lenguajes de
programacin.
A partir de una gramtica se puede generar automticamente un analizador
sintctico.
El proceso de construccin puede lle"ar a descubrir ambig-edades.
.na gramtica proporciona una estructura a un lenguaje de programacin, siendo
ms fcil generar cdigo y detectar errores.
Es ms fcil ampliar/modificar el lenguaje si est descrito con una gramtica.
+a mayor parte de este tema est dedicada a los m!todos de anlisis sintctico de uso
tpico en compiladores. Primero se introducen los conceptos bsicos, despu!s las
t!cnicas adecuadas para la aplicacin manual. Adems como los programas pueden
contener errores sintcticos, los m!todos de anlisis sintctico se pueden ampliar para
que se recuperen de los errores sintcticos ms frecuentes.
Anlisis sintctico
El anlisis sintctico es un anlisis a ni"el de sentencias, y es muc0o ms complejo que
el anlisis l!ico. #u funcin es tomar el programa fuente en forma de to(ens, que recibe
del analizador l!ico, y determinar la estructura de las sentencias del programa. Este
proceso es similar a determinar la estructura de una frase en 1astellano, determinando
quien es el sujeto, predicado, el "erbo y los complementos.
El anlisis sintctico agrupa a los to(ens en clases sintcticas 'denominadas no
terminales en la definicin de la gramtica*, tales como epresiones, procedimientos, etc.
El analizador sintctico o parser obtiene un rbol sintctico 'u otra estructura equi"alente*
en la cual las 0ojas son los to(ens, y cualquier nodo que no sea una 0oja, representa un
tipo de clase sintctica 'operaciones*. Por ejemplo el anlisis sintctico de la siguiente
epresin2
'A3$*4'135*
1on las reglas de la gramtica que se presenta a continuacin dar lugar al rbol
sintctico de la figura 62
o 7epresin8 229 7t!rmino8 7ms t!rminos8
o 7ms t!rminos8229 37t!rmino8 7ms t!rminos8: ) 7t!rmino8 7ms t!rminos8 :
7"aco8
o 7t!rmino8 229 7factor8 7ms factores8
o 7ms factores8229 4 7factor8 7ms factores8:/ 7factor8 7ms factores8 : 7"aco8
o 7factor8 229 ' 7epresin8 * : 7"ariable8 : 7constante8
+a estructura de la gramtica anterior refleja la prioridad de los operadores, as los
operadores ;3< y ;)< tienen la prioridad ms baja, mientras que ;4< y ;/< tienen una
prioridad superior. #e e"aluaran en primer lugar las constantes, "ariables y epresiones
entre par!ntesis.
+os rboles sintcticos se construyen con un conjunto de reglas conocidas como
gramtica, y que definen con total precisin el lenguaje fuente.
Al proceso de reconocer la estructura del lenguaje fuente se conoce con el nombre de
anlisis sintctico 'parsing*. =ay distintas clases de analizadores o reconocedores
sintcticos, pero en general se clasifican en > grandes grupos2 A.#.
Ascendentes y A.#. 5escendentes.
+a principal tarea del analizador sintctico no es comprobar que la sintais del programa
fuente sea correcta, sino construir una representacin interna de ese programa y en el
caso en que sea un programa incorrecto, dar un mensaje de error.
Para ello, el analizador sintctico 'A.#.* comprueba que el orden en que el analizador
l!ico le "a entregando los to(ens es "lido. #i esto es as significar que la sucesin de
smbolos que representan dic0os to(ens puede ser generada por la gramtica
correspondiente al lenguaje del cdigo fuente.
Desarrollo
Cdigo
pac/age cadenas0
import jaa1.s2ing.#3ption+ane0
public class ,ain 4
public static oid main5'tring67 args8 4
9
9
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
import jaa.io."u--ered.eader0
import jaa.io.;ile0
import jaa.io.;ile<ot;ound!1ception0
import jaa.io.;ile.eader0
import jaa.io.;ile=riter0
import jaa.io.I3!1ception0
import jaa.io.+rint=riter0
import jaa.net.,al-ormed>.(!1ception0
import jaa1.s2ing.?0
import jaa1.s2ing.#3ption+ane0
import jaa1.s2ing.#;ileC@ooser0
import jaa1.s2ing.-ilec@ooser.;ile<ame!1tension;ilter0
public class Cadenas e1tends jaa1.s2ing.#;rame 4
'tring cadenaABB0 C?Declaracion de cadenas?C
'tring cadenasABB0C?Declaracion de cadenas?C
public Cadenas58 4C?declaracion de la clase?C
initComponents580
pontab580
9
3bject67 ro2s A ne2 3bject6270C? creacion de objeto ro2s?C
jaa1.s2ing.table.De-aultDable,odel tablass
A ne2 jaa1.s2ing.table.De-aultDable,odel580CCcreacion de tablas
priate oid pontab58 4 CC creacion de clase pontab
tablass.addColumn5null80CC agrega columnas
tablass.addColumn5null80
9
E'uppress=arnings5Bunc@ec/edB8
CC Feditor:-old de-aultstateABcollapsedB descAB&enerated CodeBG
priate oid initComponents58 4
j+anel2 A ne2 jaa1.s2ing.#+anel580
j(abel2 A ne2 jaa1.s2ing.#(abel580
j'croll+ane1 A ne2 jaa1.s2ing.#'croll+ane580
jDe1tArea1 A ne2 jaa1.s2ing.#De1tArea580
j"utton2 A ne2 jaa1.s2ing.#"utton580
j"utton3 A ne2 jaa1.s2ing.#"utton580
j(abel3 A ne2 jaa1.s2ing.#(abel580
j'croll+ane3 A ne2 jaa1.s2ing.#'croll+ane580
tabla A ne2 jaa1.s2ing.#Dable580
setDe-aultClose3peration5jaa1.s2ing.=indo2Constants.!HIDI3<IC(3'!80
j+anel2.set"order5jaa1.s2ing."order;actor*.createDitled"order5BD1tB880
j(abel2.setDe1t5B3riginalB80
jDe1tArea1.setColumns52J80
jDe1tArea1.set.o2s5580
j'croll+ane1.setKie2portKie25jDe1tArea180
j"utton2.setDe1t5B...B80
j"utton2.addAction(istener5ne2 jaa.a2t.eent.Action(istener58 4
public oid action+er-ormed5jaa.a2t.eent.Action!ent et8 4
j"utton2Action+er-ormed5et80
9
980
j"utton3.setDe1t5B!aluarB80
j"utton3.addAction(istener5ne2 jaa.a2t.eent.Action(istener58 4
public oid action+er-ormed5jaa.a2t.eent.Action!ent et8 4
j"utton3Action+er-ormed5et80
9
980
j(abel3.setDe1t5B'eparadaB80
tabla.set,odel5ne2 jaa1.s2ing.table.De-aultDable,odel5
ne2 3bject 6767 4
9L
ne2 'tring 67 4
B1BL B2B
9
880
j'croll+ane3.setKie2portKie25tabla80
jaa1.s2ing.&roup(a*out j+anel2(a*out A ne2 jaa1.s2ing.&roup(a*out5j+anel280
j+anel2.set(a*out5j+anel2(a*out80
j+anel2(a*out.setMori)ontal&roup5
j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5j+anel2(a*out.create'eNuential&roup58
.addContainer&ap58
.add&roup5j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.addComponent5j(abel28
.add&roup5j+anel2(a*out.create'eNuential&roup58
.addComponent5j'croll+ane1L jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!L
jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!8
.add+re-erred&ap5jaa1.s2ing.(a*out't*le.Component+lacement..!(AD!D8
.add&roup5j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&L -alse8
.addComponent5j"utton3L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L P2L '@ort.,AHIKA(>!8
.addComponent5j"utton2L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L
jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L '@ort.,AHIKA(>!88
.add&ap51PL 1PL 1P8
.add&roup5j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5j+anel2(a*out.create'eNuential&roup58
.addComponent5j(abel38
.add&ap5JL JL '@ort.,AHIKA(>!88
.addComponent5j'croll+ane3L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L QR4L '@ort.,AHIKA(>!8888
.addContainer&ap588
80
j+anel2(a*out.setKertical&roup5
j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5j+anel2(a*out.create'eNuential&roup58
.addContainer&ap58
.add&roup5j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment."A'!(I<!8
.addComponent5j(abel28
.addComponent5j(abel388
.add+re-erred&ap5jaa1.s2ing.(a*out't*le.Component+lacement.><.!(AD!D8
.add&roup5j+anel2(a*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5j+anel2(a*out.create'eNuential&roup58
.add&ap5R1L R1L R18
.addComponent5j"utton28
.add&ap52SL 2SL 2S8
.addComponent5j"utton388
.addComponent5j'croll+ane1L jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!L 25JL
jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!8
.addComponent5j'croll+ane3L jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!L 252L
jaa1.s2ing.&roup(a*out.+.!;!..!DI'IO!88
.addContainer&ap524L '@ort.,AHIKA(>!88
80
jaa1.s2ing.&roup(a*out la*out A ne2 jaa1.s2ing.&roup(a*out5getContent+ane5880
getContent+ane58.set(a*out5la*out80
la*out.setMori)ontal&roup5
la*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5la*out.create'eNuential&roup58
.addContainer&ap58
.addComponent5j+anel2L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L
'@ort.,AHIKA(>!8
.addContainer&ap588
80
la*out.setKertical&roup5
la*out.create+arallel&roup5jaa1.s2ing.&roup(a*out.Alignment.(!ADI<&8
.add&roup5la*out.create'eNuential&roup58
.addContainer&ap58
.addComponent5j+anel2L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L jaa1.s2ing.&roup(a*out.D!;A>(DI'IO!L
'@ort.,AHIKA(>!8
.addContainer&ap588
80
pac/580
9CC FCeditor:-oldG
priate oid j"utton2Action+er-ormed5jaa.a2t.eent.Action!ent et8 4
#;ileC@ooser -ileC@ooser A ne2 #;ileC@ooser580
int ariable A -ileC@ooser.s@o23penDialog5null80
tr* 4
;ile.eader captura A ne2 ;ile.eader5-ileC@ooser.get'elected;ile5880
"u--ered.eader contenido A ne2 "u--ered.eader5captura80
2@ile 55cadenas A contenido.read(ine588 TA null8 4
cadena UA cadenas U BVnB0
9
jDe1tArea1.setDe1t5cadena80
9 catc@ 5!1ception g@u8 4
9

9
priate oid j"utton3Action+er-ormed5jaa.a2t.eent.Action!ent et8 4
tr* 4
;ile arc@i A ne2 ;ile5B.t1tB80CCseleccion de arc@ios
+rint=riter arc@ionueo
A ne2 +rint=riter5ne2 ;ile=riter5arc@i880
c@ar caa0
'tring junta A BB0
'tring numjunta A BB0
'tring 67 relacional A 4BFBLBGBLBAABLBATB90 CCarreglo para operadores relacionales
c@ar 67 numeros A 4WJWLW1WLW2WLW3WLW4WLW5WLWQWLWRWLWPWLWSW90CCarreglo para numeros
c@ar 67 arit A 4WUWLW:WLW?WLWCW90CCoperadores aritmeticos
'tring letras A Babcde-g@ij/lmnXopNrstu21*)A"CD!;&MI#Y(,<Z3+[.'D>K=H\OB0
'tring 67 reseradas A 4Bi-BL B'tringBLB-orBLBcatc@BLBelseBLBdoBLB2@ileBLBs2itc@BL
BpriateBLBoidBLBarra*BLBc@arBLB'*stemBLBlengt@BLBpublicBLBtr*BL
BoutBLBprintBLBne2BLBtrueBLB-alseBLBis(etterBLBisDigitBLBprintlnBLBtoC@arArra*B90
c@ar 67 especial A 4W5WLW8WLW6WLW7WLW4WLW9WLW]WLW0WLW^WLW_WLW`WLWBWLWLWLW.WLWaWLWbWLWVVWLWcWLWdWLWeW90CCcaracteres especiales
c@ar 67 log A 4WfWLWgW90CCoperadores logicos
c@ar 67 asignacion A 4WAW90
-or 5 int ii A J0 ii F cadena.lengt@580 iiUU 8 4 CCciclo Nue recorre las cadenas
caa A cadena.c@arAt5ii80
i- 5caa TA W W8 4 CCcondicion Nue separa los espacios
int 1 A J0CCdeclaracion de ariables de tipo entero
int 2 A J0
int 3 A J0
2@ile51 F especial.lengt@84CCciclo Nue recorre los arreglos empe)ando por especial
i-5caaAAespecial61784 CCcondicion

i-53AAJ84 CC condicion anidada
i-5BB.eNuals5junta884
ro2s6J7 A caa0 CC acomoda en las columnas
ro2s617 A BCaracter !specialB0
tablass.add.o25ro2s80 CC lo imprime en las columnas
tabla.set,odel5tablass80
arc@ionueo.println5caaUB Caracter !specialB80
arc@ionueo.-lus@580CC no se para Nue es el -lus@ ]s
9 else 4
-or5int 4 A J0 4 F reseradas.lengt@0 4UU84 CC este ciclo recorre el arreglo de las palabras reseradas
i-5reseradas647.eNuals5junta884CCcondicion de reseradas
ro2s6J7 A junta0
ro2s617 A B+alabra .eseradaB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB +alabra .eseradaB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A BCaracter !specialB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB Caracter !specialB80
arc@ionueo.-lus@580
2UU0
9
9
i-52AAJ84 CC condicion de ariables
ro2s6J7 A junta0
ro2s617 A B<ombre de ariableB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB <ombre de ariableB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A BCaracter !specialB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB Caracter !specialB80
arc@ionueo.-lus@580
9
9
9
9
1UU0
9
int 5 A J0
int R A J0
2@ile55 F arit.lengt@84 CC ciclo Nue recorre el arreglo de operadores aritmeticos
i-5caaAAarit65784 CC condicion de compara
i-5BB.eNuals5junta884
ro2s6J7 A caa0
ro2s617 A B3perador AritmeticoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador AritmeticoB80
arc@ionueo.-lus@580
9 else 4
-or5int Q A J0 Q F reseradas.lengt@0 QUU84 CCciclo Nue recorre el arreglo de palabras reseradas
i-5reseradas6Q7.eNuals5junta884 CC condicion de el arreglo
ro2s6J7 A junta0 CC aNui se manda a las columnas de la tabla
ro2s617 A B+alabra .eseradaB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB +alabra .eseradaB80CC con su respectio mensaje
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B 3perador aritmeticoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador AritmeticoB80
arc@ionueo.-lus@580
RUU0
9
9
i-5RAAJ84CC aNui no @a* ciclo por Nue lo Nue Nueda es las ariables
ro2s6J7 A junta0CC manda a imprimir a las columnas
ro2s617 A B <ombre de ariableB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB <ombre de ariableB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B 3perador AritmeticoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador AritmeticoB80
arc@ionueo.-lus@580
9
9
9
5UU0
9
int P A J0
int S A J0
2@ile5P F log.lengt@84
i-5caaAAlog6P784
i-5BB.eNuals5junta884
ro2s6J7 A caa0
ro2s617 A B 3perador (ogicoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador (ogicoB80
arc@ionueo.-lus@580
9 else 4
-or5int s A J0 s F reseradas.lengt@0 sUU84
i-5reseradas6s7.eNuals5junta884
ro2s6J7 A junta0
ro2s617 A B+alabra .eseradaB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB +alabra .eseradaB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B3perador (ogicoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador logicoB80
arc@ionueo.-lus@580
SUU0
9
9
i-5SAAJ84
ro2s6J7 A junta0
ro2s617 A B <ombre de ariableB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB <ombre de ariabeB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B 3perador (ogicoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador logicoB80
arc@ionueo.-lus@580
9
9
9
PUU0
9
int 11 A J0
int 12 A J0
2@ile511 F asignacion.lengt@84
i-5caaAAasignacion611784
i-5BB.eNuals5junta884
ro2s6J7 A caa0
ro2s617 A B 3perador de AsignacionB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador de AsignacionB80
arc@ionueo.-lus@580
9 else 4
-or5int 13 A J0 13 F reseradas.lengt@0 13UU84
i-5reseradas6137.eNuals5junta884
ro2s6J7 A junta0
ro2s617 A B +alabra .eseradaB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB +alabra .eseradaB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B3perador de AsignacionB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador de AsignacionB80
arc@ionueo.-lus@580
12UU0
9
9
i-512AAJ84
ro2s6J7 A junta0
ro2s617 A B<ombre de ariabeB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB <ombre de ariabeB80
arc@ionueo.-lus@580
junta A BB0
ro2s6J7 A caa0
ro2s617 A B3perador de AsignacionB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5caaUB 3perador de AsignacionB80
arc@ionueo.-lus@580
9
9
9
11UU0
9
int 15 A J0
2@ile515 F letras.lengt@5884
i-5caaAAletras.c@arAt515884
junta A juntaUcaa0
9
15UU0
9
int 1R A J0
int u1 A J0
2@ile51R F numeros.lengt@84
i-5caaAAnumeros61R784
i-5BB.eNuals5junta884
9 else 4
junta A juntaUcaa0
u1UU0
9
i-5u1AAJ84
numjunta A numjuntaUcaa0
9
9
1RUU0
9
9 else 4
i-5BB.eNuals5junta884
9 else 4
int 1P A J0
-or5int 1S A J0 1S F reseradas.lengt@0 1SUU84
i-5reseradas61S7.eNuals5junta884
ro2s6J7 A junta0
ro2s617 A B+alabra .eseradaB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB +alabra .eseradaB80
arc@ionueo.-lus@580
junta A BB0
1PUU0
9
9
i-51PAAJ84
ro2s6J7 A junta0
ro2s617 A B<ombre de ariableB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB <ombre de ariabeB80
arc@ionueo.-lus@580
junta A BB0
9
9
i-5numjuntaAABB84
9else4
ro2s6J7 A numjunta0
ro2s617 A BDigitoB0
tablass.add.o25ro2s80
tabla.set,odel5tablass80
arc@ionueo.println5juntaUB DigitoB80
arc@ionueo.-lus@580
numjunta A BB0
9
9
9
arc@ionueo.close580
9 catc@ 5I3!1ception e18 4
9
9
public static oid main5'tring args678 4
jaa.a2t.!ent[ueue.ino/e(ater5ne2 .unnable58 4
public oid run58 4
ne2 Cadenas58.setKisible5true80
9
980
9
CC Kariables declaration : do not modi-*
priate jaa1.s2ing.#"utton j"utton20
priate jaa1.s2ing.#"utton j"utton30
priate jaa1.s2ing.#(abel j(abel20
priate jaa1.s2ing.#(abel j(abel30
priate jaa1.s2ing.#+anel j+anel20
priate jaa1.s2ing.#'croll+ane j'croll+ane10
priate jaa1.s2ing.#'croll+ane j'croll+ane30
priate jaa1.s2ing.#De1tArea jDe1tArea10
priate jaa1.s2ing.#Dable tabla0
CC !nd o- ariables declaration
9
Captura de pantallas
Conclusiones Individuales
Arteaga Islas Esmeralda
+os analizadores sintcticos son ?tiles en la programacin de sistemas ya que dan un
amplio conocimiento de lo que genera un cdigo, as mismo como responder este
peque,o programa, aprend que este es una base de entrada que recibe datos los re"isa
y puede 0acer que sean acomodados, as mismo es capaz de reconocer en donde "a un
smbolo o letra.
Bravo Aguilar Josu Benjamn
#e supone que la salida del analizador sintctico es alguna representacin del rbol
sintctico que reconoce la secuencia de to(ens suministrada por el analizador l!ico. Al
concluir esta prctica tu"e un amplio conocimiento del analizador pues este reconoce
letras, n?meros y caracteres especiales que "a acomodando en tablas.
Garca Contreras Eunice Sina
En este tema aprendimos los recursos que utiliza un analizador sintctico, aprend que es
la fase de entra que re"isa los datos de entrada en una base gramatical. As mismo "i
que este puede tener diferentes entradas, puede entrar a errores, tablas entre otras
cosas.
Islas !"ez Sand# $aulina
@racias a este trabajo aprend sobre algunas de las reglas que nos describe la estructura
de los programas, tambi!n me di cuenta de que el anlisis sintctico es muc0o ms
complejo que el anlisis l!ico. Este determina la estructura de las sentencias del
programa.
%artnez &iosdado Carlos Adol'o
1on este trabajo me quedo de una forma ms clara que los lenguajes de programacin
tienen un conjunto de reglas que describen la estructura sintctica de los programas
correctos. +a sintais de las construcciones de los lenguajes de programacin puede
describirse mediante gramticas y ofrecen significati"as "entajas tanto para los
dise,adores del lenguaje como para los escritores de compiladores.
Conclusiones eneral
Atre"es del presente trabajo pudimos aprender un poco ms sobre el anlisis sintctico
para una cadena de componentes l!icos, que tenga el aioma de la gramtica,
mediante la aplicacin de sus reglas as como los tipos de anlisis y la aplicacin en un
cdigo de Programacin.
Re!erencias"
A0o, A.A., #et0i, B., .llman, C.5. 'DEEF*, 1ompiladores2 principios, t!cnicas y
0erramientas, Tema G, pag.2 DH6)DIH.
+ouden, J.1. 'DEEK*, 1ompiler 1onstruction2 Principles and Practice, Tema 6, pginas2
E6)DGF.
0ttp2//LLL.lcc.uma.es/Mgal"ez/ftp/tci/tictema6.pdf etrado el D de Nctubre del >FD6
0ttp2//LLL.udb.edu.s"/udb/arc0i"o/guia/informatica)ingenieria/compiladores/>FD6/ii/guia)
6.pdf etrado el D de Nctubre del >FD6

You might also like