Assign4_ProgrammingLanguages.pdf

13
1 Δ. Νικολός ΚΕΦΑΛΑΙΟ 3. ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σκοπός Σκοπός του κεφαλαίου αυτού είναι να μάθετε ποια είναι η γλώσσα που αντιλαμβάνεται ο υπολογιστής και ποιες γλώσσες χρησιμοποιεί ο προγραμματιστής για την συγγραφή προγραμμάτων. Επίσης να μάθετε πως λύνεται το πρόβλημα που προκύπτει λόγω της χρήσης διαφορετικών γλωσσών από τον υπολογιστή και τον προγραμματιστή. Προσδοκώμενα αποτελέσματα Όταν θα έχετε μελετήσει το κεφάλαιο αυτό θα μπορείτε να: κατανοήσετε τα πλεονεκτήματα και τα μειονεκτήματα συγγραφής προγραμμάτων σε κάθε επίπεδο προγραμματισμού ακολουθήσετε τα βήματα που απαιτούνται από την συγγραφή ενός προγράμματος μέχρι την εκτέλεσή του σε ένα υπολογιστή. Έννοιες κλειδιά γλώσσα μηχανής συμβολική γλώσσα γλώσσα προγραμματισμού υψηλού επιπέδου συμβολομεταφραστές μεταφραστές Εισαγωγικές παρατηρήσεις Το κεφάλαιο αυτό αποτελείται από δύο ενότητες. Στην ενότητα 3.1 δίνουμε τα γενικά χαρακτηριστικά της γλώσσας που αντιλαμβάνεται ένας υπολογιστής καθώς και κάποιων άλλων γλωσσών που βρίσκονται πολύ κοντά σαυτή. Στην ενότητα 3.2 δίνουμε τα γενικά χαρακτηριστικά γλωσσών προγραμματισμού που βρίσκονται πιο κοντά στην φυσική μας γλώσσα.

Transcript of Assign4_ProgrammingLanguages.pdf

  • 1

    . 3.

    .

    .

    :

    .

    . 3.1

    . 3.2

    .

  • 2

    3.1

    .

    :

    .

    .

    . MIPS

    17 20

    9 : 00000010001101000100100000100000.

    3.1 .

    (machine language)

    .

    . 3.2

    .

    ,

    .

  • 3

    3.1. 17

    20 9

    MIPS.

    00000000101000010000000000011000

    00000000100011100001100000100001

    10001100011000100000000000000000

    10001100111100100000000000000100

    10101100111100100000000000000000

    10101100011000100000000000000100

    00000011111000000000000000001000

    3.2.

    MIPS.

    000000 10000000000010011010010001

  • 4

    3.1 3.2

    .

    (assembly

    language).

    .

    .

    3.1 ,

    MIPS : add 9$ 17$ 20$

    3.3

    3.2.

    Swap:

    muli $2, $5, 4

    add $2, $4, $2

    lw $15, 0($2)

    lw $16, 4($2)

    sw $16, 0($2)

    sw $15, 4($2)

    jr $31

    3.3.

    MIPS.

    ,

    .

    (assembler).

    .

  • 5

    3.3, ,

    3.2.

    .

    (subroutine libraries)

    .

    .

    3.4.

    , 3.4,

    . 3.5

    .

    ,

    , .

    .

    . (linker),

    ,

    (executable program).

    (loader)

    .

    -

    ( )

  • 6

    3.5

    ,

    , .

    .

    .

    .

    (macro-assembler).

    .

    , , ,

    .

    .

    ,

    ,

    ...

  • 7

    ,

    ,

    .

    .

    1/.3

    .

    2/.3

    .

    3/.3

    .

    .

    .

    ;

    3.2

    .

    :

    ,

  • 8

    .

    .

    (high level programming languages),

    FORTRAN, COBOL, BASIC, PASCAL, LISP, PROLOG, C, C++,

    JAVA . M

    ,

    .. ,

    , , . 3.6

    C

    3.3.

    Swap ( int v[], int k ) ;

    { int temp;

    temp = v[k] ;

    v[k] = v[k+1] ;

    }

    3.6.

    .

  • 9

    3.7.

    . , (object)

    . ,

    (compiler).

    .

    -

  • 10

    3.7.

    .

    (interpreter).

    .

    .

    .

    ,

    .

    ,

    .

    ,

    .

    .

    . ,

    . .

    . ,

    .

  • 11

    .

    FORTRAN , COBOL

    , LISP , JAVA

    .

    .

    .

    .

    .

    4/.3

    .

    5/.3

    .

    6/.3

    .

    1. D.A. Patteson, J. L. Hennessy, Computer Organization & Design, The

    Hardware/Software Interface, Morgan Kayfmann, 1994.

    3 ,

    .

    2. A. V. Aho, R. Sethi, J. D. Ullman, Compilers: Principles, Techniques and Tools,

    Addison Wesley, 1986.

    .

    , ,

    .

    .

  • 12

    3. E. Horowitz, , 1984,

    , ( 1993)

    .

    4. B. W. Kernighan, D. M. Ritchie, C,

    , 1990.

    C

    .

    C.

    , .

    5. S. R. Davis, JAVA, , 1996

    JAVA

    .

    .

    1/.3

    O ,

    .

    .

    .

    2/.3

    .

    .

    .

    . ,

    .

    3/.3

    . .

  • 13

    .

    .

    . ,

    .

    4/.3

    . FORTRAN, COBOL, ALGOL, PL/I,

    SIMULA, BASIC, PASCAL, Smalltalk, LISP, PROLOG, C, C++, JAVA.

    ,

    .

    3.2.

    5/.3

    /

    .

    .

    .

    .

    6/.3

    .

    .

    .

    .

    .

    .

    .

    .