Διεκπεραιωτές – Μεταφραστές

download Διεκπεραιωτές – Μεταφραστές

If you can't read please download the document

description

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΤΟΜΕΑΣ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ. Διεκπεραιωτές – Μεταφραστές. Compilers – Translators Τρίτη, 06 Δεκεμβρίου 200 5. Εισαγωγή στην Επιστήμη των Υπολογιστών Τμήμα α’, 1 1 η Εβδομάδα. Εισαγωγή στην Επιστήμη των Υπολογιστών. - PowerPoint PPT Presentation

Transcript of Διεκπεραιωτές – Μεταφραστές

  • Compilers Translators

    , 06 2005 , 11

  • , , .

    T ( ) .

  • COMPILERS TRANSLATORS ( )

    .

    , (loop) - - , .

  • Compilers Translators , :H (Lexical analysis) .

    H (Syntactical analysis) .

    , (Code genertion) , , H. Y.

  • (..) .

    :

    (grammar syntax),

    T (semantics)- (meaning)

  • :

    (grammar) (syntax)

    (mening) (semantics).

  • To , , '', , ' '.

  • ..., , ... FORTRN ( BSIC) :

    =B+C

    . :

    =+-)5.6.7

    , .

  • BACKUS-NAUR Backus-Naur Form (BNF) , ., BNF () ::= , - . (recursion), number .TA: : (digit) : :=0|1|2|3|4|5|6|7|8|9 (letter) ::=|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z

    : 0 1 2 .. . 9 , ; : .. . .

  • :

    :

    :=

    :

    :=

    , HGK123N 135GKL123N, .

  • , BNF ( ): :=|

    : , .

  • , ( ), (recognition tree), . Parsing ( - ).

  • .. 4338 (to be parsed) : ,

    :=

  • , , . , .

    .

    : .. ALGOL68 (syntax) (semantics) .

  • (LEXICAL ANALYSIS)

  • - - , - ( ) , PASCAL ( ; )... : var n,c : integer ;

    .

  • , ( ... Pascal):

    program average;var n,c: integer: x,y: real; begin read(n); x=0; for c: 1 to n dobegin read(y); if y49.25then writeln (y, 'IS OUT OF RANGE') else x:=x+yend;writeln('AVERAGE=, x/n)end.

  • , : , , , IF, THEN, ELSE, END . , . COMPILER , ., : 15, 0, 771, 5.54367 . (strings) (quote marks) - .-, , , .

  • (), ( ).

  • (number table). (string table), (token table), , tokens , , (1, 2, 3 4) () tokens

  • 1, , Pascal, . Pascal :

    -1

    orintegerrealwritelnsincossqrtRead2526272829303132

  • , 2 (number table) Token (pointer) . .. , :-2

    To token (2,3) 3.5

  • , 3 (string table) :-3

    To token (3,2) "AVERAGE ="

    StringLocation12TableValueIS OUT OF RANGEAVERAGE=

  • () , 4 (nametable) :

    -4

    To token (4,4) 'x' , .

    Name 12345TableAVERAGEncxy

  • Token token, , , , . , token :

  • , ( ... Pascal):

    program average; var n,c: integer; ! n x,y: real; ! 3.5 begin read(n); x=0; ! 49.25for c: 1 to n dobegin read(y); if y49.25then writeln (y, 'IS OUT OF RANGE') else x:=x+yend;writeln('AVERAGE=' ,x/n)end.

    1 2 3 4

  • compiler program end. TokenTo 47o Token 2 4 49.25, 53 Token 3 1 strings IS OUT OF RANGE

  • , 13, 37, 41, 45, 51 60, Token 4 5 , ( ) , . , , strings Tokens