بناء مترجمات 8

Upload: justaperson3157

Post on 17-Jul-2015

333 views

Category:

Documents


8 download

TRANSCRIPT

syntax analysis ) (context _free grammar:- ) (digits 2+5-9 , 1-3 , 5-8+6 , .. :- :- .List .List .List Digit list +digit list - digit digit

9|.|2|1|0

:- 1(9,.,2,1,0,-,+ -:)terminal analysis (token :non-termenal analysis2(list

3( -:production . . :- . .List list +digit l list digit|digit 4( .start symbol:- list

parse tree A :- A XYZ )( A X Y Z

:- 1( ) (root ).)start symbol 2( ) (token 3( . ).)nontermenal 4( ) (A ,2X1,X )( ) ..Xn ( )production A ),2X1,X ..Xn X1,X2,..Xn .

A

>> )(.

-------------------------------------------------- )( ) 9-5+2(

(Root(start symbol token .

) (begin-end );(. : )2( Begin begin End )empty )(one statement ............ ;Statement End )more (than one statement ---------------------------------------------------------------- :- )) ((production )1( )3( begin statement ;statement )end ;statement

Block

begin

opt_stmts /opt_stmts

end stmt_list

;stmt_list

stmt_list;stmt/stmt

:- 1(.Termenal symbol:- begin,end 2(nontermenal symbol:-opt_stmts,stmt_list,stmt,block -:3)production 4(.start symbol:- block )(stmt_list ) (list );( )-,+() (stmt ) (digit )left to right (order ) (a,b)( )( a b a b :- ) (parsing . -----------------------------------------------------------------

) ( Ambiguity ) , ( . .) (.

) (unambigiuity )( ) ( )( ) (list ) (digit ) (string String String+ String/ String- String/ String

:- )9-5+2( :- 9-)5+2(=2 :- )9-5(+2=6

. Associativity of Operators

) (digit :- )+( )-( ). (associate to the left )*( )( associate . ((to the left

) (digit )+,-( )9-5(+2 )9-5+2(

:- )=( ) (C .

)C

)a=(b=c

)a=b=c

:-

:- . )9-5+2( ))C a=b=c

* )(

precedent of operator ),*,+,-( )( .

,+ ),*(

:- )( ),*, +,- )/(( :- ) term ( ) Expr (

:-

di git0|1|2|9