• Nie Znaleziono Wyników

Proponowana metoda pozwala uniknąć wielu wad występujących w stosowanych dotychczas rozwiązaniach, powoduje jednakże pew­

ne zawężenie klasy języków wejściowych. Wydaje się jednak, że przy nieznacznej modyfikacji koncepcji ogólnej L-analizatora można by wykonywać analizę leksykalną dla dowolnego języka bez- kontekstowego. Zmiana ta powinna polegać na tym, że S-analiza- tor wywołując L-analizator wskazywałby mu jednocześnie, jaki atom leksykalny powinien pojawić się na wejściu. Pozwoliłoby to uniknąć niejednoznaczności napotykanych podczas analizy leksy­

kalnej, które w opisanej realizacji są usuwane przez ogranicze­

nia wymienione w punkcie 4.4.5.

Taka metoda byłaby optymalna, ponieważ L-analizator byłby generowany całkowicie automatycznie, a jednocześnie można by go było stosować do analizy wszystkich języków bezkontekstowych.

Wymagałoby to jednak zmiany koncepcji również S-analizatora.

57

-Chciałbym podziękować prof. dr hab. W.M. Turskiemu za łi- ozne konsultacje i uwagi dotyczące pracy. Dziękuję również doo. dr.hab. A.W. Mazurkiewiczowi ^którego cenne uwagi po­

mogły poprawić pierwotną wersję pracy. Ponadto dziękuję p.p. J. Konaewioz-Krzemień, J. Borowcowi, A. Łukasiewiczo- wi i J. Witaszkowi za pomoc przy rozwiązywaniu wielu proble­

mów związanych z praoą.

Bibliografia

[1 ] BLIKLE A.x Automaty i gramatyki. Wstęp do lingwistyki matematycz­

nej, PWN, Warszawa '197'!.

[2 ] COCKE J., SCHWARTZ JiT. : Programmi g Languages and Their Compilers.

Preliminary notes. Courant Institute of Mathematical Sciences:

New York University, 1970.

[j] FELDMAN J., GRIES D.: Translator Writing System, CACM, 1968, 2, 77-113.

I4] GRIES D.: Compiler Construction for Digital Computers, John Wiley and Sons, Inc. 1971.

[5 ] HOPCROFT J.: An NlogN Algorithm for Minimising States in a Finite Automaton, STAN-CS-71-19ÇL 1971.

[ć] HOPCROFT J., ULLMAN J.D.: Formal Languages and Their Relation to Automata, Addison-Wesley Publishing Company, Inc. 1969.

[7 ] H0PG00D F.R.A. : Compiling Techniques, American Elsevier Publishing Company, Inc. New York 1969.

[8 ] HOPGOOD F.R.A., BELL A.G. : The ATLAS ALGOL Preprocessor for non Standard Dialects. 1967 CJ, 4, 360-364.

[9] IGLEWSKI M., -KRZEMIEŃ R. : Analiza leksykalna, ETO Nowości 1974-, 3.

[1 0 ] INGERMAN P.Z.: A Syntax-Oriented Translator, Academic Press, 1966.

[11 ]• JOHNSON W.L., PORTER J.H., ACKLEY S.I., ROSS D.T.: Automatic Generation of Efficient Lexical Processors Using Finite State Techniques, CACM, 1968, 12, 805-813.

[12] JOHANSEN P.: Construction of Recognition Devices for Regular Lan­

guages from Their Backus Normal Font Definition, BIT, 1966, 6, 294-309..

[13] KNUTH D.E.: Sorting and Searching: the Art of Computer Program­

ming, Addison-Wesley Publishing Co., Inc. 1970, t. 3.

[14] KONCEWICZ J.: Preliminary Analysis of ALGOL-60 Source Programs for ZAM Computers, Algorytmy, 1969, 10, 77-68,

[1 5 ] LECARME 0.: Un générateur d'analyseurs lexicaux. Doc. de travail:

Université de Montreal, 1973, nr 40,

[16] LYNCH W.C., PIERSON H.L.: A Finite State Transducer Model for Com­

piler Lexical Scanners, IFIP 68, North-Holland Publishing Co., Amsterdam 1969.

[17] KALUSZYiiSKI J.: Podgraraatykj elementarne składni Algolu 60, Algorytmy, 1970. 13. 17-34.

[18] Mc CLURE R.M. : TMS - a Syntax Directed Compiler, Proceedings ACM National Conf., 1965.

[19] NAUR P. ed.: Revised Report on the Algorithmic Language ALG0L-60, CACM, 1962, 1, 1-1?.

¿20] PLASKCV J., SCHUMAN S.: The TRANGEN System on the M460 Computer*

Computer Associates Inc. Report, 1966.

[21] REYNOLDS J.C.: COGENT Programming Manual, ANL-7022 Report, 1965.

[22] ROSEN S.: A Compiler Building System Developed by Brooker and . Morris, 'CACM, .1964, 7, 403-414.

[23] ROSS D.T.: The AED Approach to Generalized Computer-Aided Design, Report ESL-R-3 0 5 , MIT, 19 6 7.

[24] SCHSIDIG H.: ATWS: A Translator Writing System, Bericht nr ?219, TUM, 1971.

[25] SQUIRES B.E.: Lexical Analysis by a Precedence Grammar, Univer­

sity Illinois Dept. Computer Sciende Report, 1966.

[26] TURSKI W.M.: Struktury danych, WNT, Warszawa 1971.

[27] WALIGÓRSKI S,: Algebraiczna teoria automatów, Algorytmy, 1969, 11.

[28] V/IRTH N., WEBER H.: EULER - a Generalization of ALGOL, and its Formal Definition, CACM, 1966, 1, 13-25: CACM, 1966, 2, 89-99.

[29] Zakład Teorii Translatorów IMM: Projekt koncepcyjny metatranslato-ra, Raport wewnętrzny, 1974,

- y~j ~

DODATEK A. Program realizujący moduł analizy leksykalnej

r c f a m f r c c f c u í u c f t i c n s i m j m;

P C F A N : F RCC E C U F E P P T I C N S ( M ) N ) ;

f\J <\J (VI •—I

PCE AS : PPCCECI JRE CRT K ' S S t EA I S ) ;

ESC SIASE;

e a s e : PRCcrruRE;

r e i n F i x r r p i n a f y; CCI Eü C EAP120 ) V A RY I NG;

CCL E2 C E A P ( 2 * ) VARYING:

FUT U S T ( ' E A S E ' » ; E2*VYr- I K . S A7KA;

E4 : E2 = S Y E E T A 8 . S ’» f ' e C L O ‘ l ) ; 1F E2 = E 2 TEES CC TO E i ;

IF E3 = *• TE EN

CC*

s y p p t a e( E l 1 =KYMK? . C-C TC E i ;

e s c: I F E X S TEES

cc:

E1 = E u i ;

CC TC E4 ; ESC;

E L S E GC TC ELAC2;

H5: iCRES = E 1 ; .

ESC EASE ;

S F A C J A : FPCCECURE;

PUT l 1ST ( ’ S F A C J A ' ) ; S i : I F A{ ] ) = • « TE EN

CC *

Ifk EC TEÉN

' cc;

1 = I -» 1 ; GC TC s i ;

ESC;

E L S E

cc;

REAC F I L E I S Y S I N ł I NTC1A1;

FUT CAT A ( A 1 ; 1=15

CC TC S i ; FSC;

ESC S F A C J A ;

SUSEP: FRCCECLRE;

CCL CYFRA CE AR ( l*' ł IS' JT ( ' 12 2 A 5Ć7 ESC ' ) CCI S I F1XEC E ISA FY ;

CCL S 2 F l Y f C P I N A P Y ;

PUT L1ST ('SUPER*);

S1=0;

CALL SFACJA;

N2 : S 2 = I S C E X ( C Y F F A , A ( 1 1 ) ; ] F S2-' = C TEES

CC;

1F S2= 10 TEEN S2=C;

S1 = S 1* 1CEN2;

1= Hi:

CC TC S ? ; ESC;

63

RC.FAN: PP CC ECUP E CTT ICNSERA I M ;

^*jN->>4ï'J'VjJtv»U»U»UJLOrofOr01\>f\>>— ♦— H M l'O H H

P C F A E : F RCC £ CUR E C F I ! t E S (!' A IN ) ;

(Ni <\Í CM

FRCCECUPf c r n c f ' S l f - M M ;

(\)roik>vuu)rorv>/Mrou»OJUJi\iroH-h-'

ror^»oJoJ.\iN:r>j*—►-•rv»rvjroH-*H-*pors1)rvjr\ji\)rorsjf>o

71

PCFAN: PRCCECURE C R T I C N S ( F A I N ) ;

75

-RCFAN: PPCCEOUPfc C PT IC K S ( PA I M i

NES1

• e I. A n 3 5 PUT L I S T ( U i KRC1KA S Y r ' B T A e ' ) S K I P ; CC TC F O ;

e i A M : PUT L I S T P P P A K CE.UKPGPKA PC NLKER7E P P C O L K C J l ' I S K I P ; CC TC F C F ;

P L A C 5 : PUT L I S T C Z L A PPAWA STPCKA PRCCL.KC J I ' ) 5 K I F ; CC TC f c f;

PCAC6: PUT L I S T I ' C F A K S Y " P C L U STAP 1CV ECO ' I S K I P ; CC TC FCK;

/ * Z A M A S T PCP OAC K C M E C FC F Y R Z L C E N I L bYCPLKCV»*/

RQMtENC R C F A M

d o d a t e k :

75

K (H t. :

DODATEK C. Przykład zastosowania modułu analizy leksykalnej do programu

$»»6146.10U63M«C $>»6146.77*6(1 12*1*

lirpitl.lCMitli*1]

C 3t»ei»e.TCKi<2*M*i«i c jMH/t.jY»eei«jłM*f*

t’ lt»MiM(MI}ll*'l'l M !1»ri4E.T(KT(!<M«l'6 i !i'nii.!»*ia(wi«*«' I 3»*6166.S7*6CU3łM»6«

$• i«»n»i.T(Mi«ii<'i'(

r <Y»rK(.SMicii«4>**v(

k' $7*6146.10»M4M*»«ł I1* llirUM(l1IJll>M'I I $7*6146.S»»6ClMł>»«2* !ł»!14M»HCU!«l«‘»'

*• snrui.iCMütM'M'i st»»u6.$7*6cicî<m

ist* $ 1*11 4*.io.imi«*it $>»ri»r.n»rci<(3M*i$K*

i j i * e i » * . j i * e c i f * 3 M * i 5 » ' n » « i « r . i c » i i * i M * i •* $ Y * 6 i* * .$ Y * r c ii6 4

4(48 M l 1- *0*1 . FC4* M ( KMHOi'1'6

.217-*tic*4i.4ccv»cj4 n.211* *5*i 4uir*4i.4«iij«cicn.;si* 3

*iirk*i.kij!ci8(t,777* jo *i<itk*i.*tci«cj*n.2;t**o*e

4HC441.F47tJ2CIMl.731* 0*8 4l1C441.IF7fJSClfO.J4>. 2 40041.njJC 2 1M 1.22 7*4H041.ktJ5CTHl.74l-21

• l1C»41.F(Ct*CJ4(l.?4l**0*l 8t-1C»M.FB2tJSC1IO.a:i- 3 4lirk41.4ij«CIMl.?27* 33 40041.67 CtBC J* O »231-*C«8 411(441. FfItj3CtM1.7«l* ? 4llC*4l.ktJ!CICO.;(l* *4

9*3 4t1C*4T.F*7t JSCH 0.777* 3 U1C*«l.kt J3C1M1.271*

.211 79 .211

huim.mukiiim»* c .nic»4i.*iri«(j*i;,2ii**c*r

H U M t . l f K J S C I E I E t l I l i C f

«lirm «, *l1CP»l.fF7l JSCU O.W )• C «llCP4l.PVJKirta.3Vt«

niCP41.PVjSCIII2.4r,. C •UCkJI.PCCl'CJJO.ici-C'' 4llCMMIIfjSCI(U.<ll> C H1(M1.V1J]C)(I}|4||< t

îi'irm uriTun'l.. «HCPJl.FF7CJStJHJ.4JI. .« âllC»H.klj!CI(IM7H 4UCMl.Ff(l*CJ4l2,42).<l *f ilK»l!.HI|J!Clill,4M< 0 4HC641.H.JC1H?,4J|. 3 U;*C6#1.»»Cl«CJJU.Ûi.»C*f AUCP*1.FF2(JSCIH7.44). e •HCPJ1.P1JSCIH7.44)« f

• • • n ; c m . . . i u s c m i . * ! f t u , c f i i . » j i c i c i > . < » .

4UC*11.FEClPCJ4O.V|.*0*r 4iic6Ji.vijscif ij.n. ? AHtMl.FFJI JiClfO.UI. C

5** JHCP J7.FF7I JSCIM J.1S 1'

«11C6J1.PECC»CJ4 0,17 )■•}•( HTCM1.ukJSC 1H>. )})i Jl1CPA1.PVJSCIfO.il). .„9 JUCPJ1.*ICliiCjJo'oi.*C.f 4UC4J1.FF2E JSCIEO.I4). 0 4HCMl.klj:ctEO*14|. C

.î. *HCPJ1.FP7< JSC IIfl.IS 1- r 4L1C4P1.P1 j'CIf li.iv I. rît « »hcpji.miijscuo.io. c 411(441.kV.SCUO,)*). 0 «c 1(441.(tCl.CJ/IÏ.KI.'Cr 4UCM1.Pt7CjKICO.lll. C 4llC6J1.kijsciH3.nl. c

4110*1 itri.rj.n 1.1 î. ' ' tJ 11'*** ® * 0.1*1" »01CP*1.F*2*J!C1HÎ,1V». c «11(6*1. kvjsctro.lfl.C

«iiCPAi.kvjscico.ivi. c 4HC64i.prciB(j«(3.iv).*o*t AUCP41.FJ7CJSCII0.7CI. 0 »UCP4l.bVJSCKO.2C). C

„„„„„ ... «kmi.mhjmiiii.iii. < ... . 411(441. »1J!C1H3.7!>. c 4UCP41.FrCl*(J4(*.2<).*C«p

»(1CP»1.F»7tJSCIEt).2<l* 0 4UrP41.klJKirO.20« C

f 4UCM1.kVJSCUO.77t.

4llCP41.kVJSClEO.ad* 4UCP41.F47lJSCUO.2VI. 9 9 4UCP41.BICtBCJ40.7f »UCP41.P1 JSC 1H 2.2V I-l.'C't r

«WM, «n.tj.t, .r. ' MWM1.MJK11I1.W1.

îiîiîîî-!î5î5iîi TÎÎ 4UC441.»l..Cir 0 . 2 1 ) . 3 . »«KMl.MHJKIlll.il *UC*41.4C(lBCJM7,211-*D*tW t 4UCP41.rtJCJSClfO.271. C •UCPJlIktJSCirO.ïi). c

««MI.WI1JKII11.U». t MWM1.MJKIIII.11I.

4llCP41.trcu*CJ40tl)).*v*( <11(6*1.4*21 J«CIH1.74|. C 4UC441.41JKIfO.J41. o , 4HC6.!..»rtWJ*0,HI*V«

4UC641.F4ICJSCIIO.T91« .0 •WrP41.kVJSCICO.lSP* C

*11(641 licurjjl) »HO»!.*»« JSCH «3.ÎO- ( 4HC64I.VlJSCIf O.V4I.

4(1C4<1.I(CIICJ)|),!I). n'f 411(6*1.642J JÎCII f1,»71. c A0CPA1.PVJSCIC0.31). e 4UC64i.prtt«cj4(2.ni.*e*t AUCP41.F41EJSCUO.3d- C JUCPJI.kUSCIfO.îl». C

•UCMl.ftUJSCKO.2V>- C *UC641.kij«C1M*.1Vt.

4llC6*1.4fCV*Cj40.2V).*1*( »ttCP41.F47( J*CUO.«C»« C 4l7CPA1.PVJKUO.4C). C 4UCP41.P((tUjH ;ri.*C*f âUCPAI.FJJfJSCICOMl». 2 4UCP41.kiJSCIH2.MI- C

?.*!..«. , .... »HCP41.F47|JK110^2P. ( AUCPJl.kljfCIf 0*431-4llC»41.FfCt*C J40.47).*<*( *HCP*1.Ad(J*ClH7.«2t- t 4llC641.kVJKlH2.42). C 4L'1r641.F(Ct«(J4l2,4S)a*C*(

411CM1.FFMJSC!(0.44>. c 4U1C641 .kl JSC UI2.44). t

iiîfui t>n if UI. .il AlUPAl.FAlfJSCllO.4.)« c «UCPJV.kVjXICI3.4S».

• iK64i.4rci4Cj40,4S).*a*( jhcpai.jjujschh.i). c AUCPJl.kl JSCH 1 4 .) )• C AttCP41.»fCt4CJ*l«.lt.4«*t 4UC*41.FfHjS(IH4.2). 0 »U041.kvjSClH4.2l. . C

• U C 6 4 1.FF7 * .SC I I 14. J>« ( A U C P 4 1 .k V J* C I( 14.11*

4l1CMl.F(Ct*(.'4l4.12).*0*r 4UCP4t.rf 71 JSCIH4.12). c 4iicp4i.pvjscii44.ti). c 4viC6ii.4f((«(j*i.,s:i.>e*r 41 U6«1.rp7f j: C U I 4 . | 4 . | . C 4UC*41.k«J*C IH4.14). <

a‘e • *uc6#i.FF/rJSCIH4.1*». c 4ur**i.kijscifi4.iv».

«UC641.k(Cl*CJ4|4.13).*9*f * *HC64l.M7f J2Ciri4.1l). c

«uct»), ujirii t«. k )• 3 «uc4*i.4rriB(j*i«.)o.>e*t 4iic4«i.r*7f jsciri4.ni. ** juc-ji.»usent«.ni- c

'*'1 *HC4*T.r*7usciii4.ii). r. 41 irtfl.kijscif 14.1*1.

4UC441.F(CltCj4(4,|||.*0*r 4U(MI.4*11 J*( If 14. IV). c 4ll(4FV.kV.*SCl(|4,|V). P. •4lir*41.*('(l*(J4|4.|*|«*C*r 411(4*1.FPjcjsciHk»;: i* ’ *1*1(641.kijsciri*.se ». c

* * * 4UC6I1.HUJSC1H4.711. r J U C t t l . M J î C K 14.214*

M H M l .

mc-4i.6usciHS.43). o Juio»i.*fci«cjJ(S.4n**«*i

4 U C 6 3 1 .6 4 7 0 1 0 ( 0 . 4 4 ) . r . 3 U C 6 A 1 . h V J S C I H S .4 4 ) . C

/)•* 3 l l C 6 3 t . * * 7 0 S C l ( < * . 4 * ) « C A V K 6 A l . H j S C U O . 4 5 1 «

* U O * 1 . 6 t C l « C J J I 9 , 4 « t - * 3 * e A U TC6A1.6 611 J S C U 1 4 .1 1 « «

UC«*1.»U5CIHt,))* S7 3 U 1 C 6 » l .» t r V * C J » H . I i « * c * r

4U(6*1.M7t J5CICM.2» 0 ' JWTOM.hVJSUtU.2l« C

•1 * ( 1 ( 6 3 1 . 6 * 7 0 5 0 1 1 « . 31« « A H O J l . H J S C l f 14 » l i ­

- 81 IICC216 «176*CT.TC6(6S-«6 *I

768C1.1C*

KDHGTPYKUHH JIBKOTiSCKHX AHAJW3AT0P0B B METATPAHCJIHTOPAX

Pe3WMe

B paöoxe npeflcxaBJieH hobhS MeTOA KoncipyKi^H JieKCHttecKHX aHaJiH3aTopoB b MeTaxpaHCJiaxopax. Ilpe^aaraeMbiS sreTOA Ha MHoro OTJŒiniaeTca ot Hcnojib30BaHHHX ao chx nop MeiOAOB nocKOAbKy Ae- KCHuecKHe aTOMa oÔHapyacHBawrca toabko jrmn Ha ochobq oracaHHa cHHTaKCHca a 3HKa.

CONSTRUCTION OF LEXICAL ANALYSERS IN COMPILER-COMPILERS '

Summary

In this paper we present a new method for the construction of lexic­

al analysers in compiler-oompilers. The method presented is essentiaJ-ly different from those applied up to now since the lexioal atoms are found automatically solely on the basis of the syntax description of the language.

B I B L I O T E K A G Ł Ó W N A Politechniki Śliskiej

Powiązane dokumenty