Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine."— Μεταγράφημα παρουσίασης:

1 Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine

2 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας2 Spring 2007 Τελικός κώδικας για το calculator (1/2) Μπορούμε να παράγουμε από την εφαρμογή calculator τελικό κώδικα  μετατρέποντας τον ενδιάμεσο κώδικα (quads) σε τελικό  σε αυτήν την περίπτωση η μετατροπή είναι τετριμμένη οι εντολές τελικού κώδικα έχουν ακριβώς την ίδια σημασιολογία με τις εντολές ενδιάμεσου κώδικα η αντιστοίχηση των εντολών ενδιάμεσου με τελικού κώδικα είναι μία προς μία Binary αρχείο που μπορεί να εκτελεστεί από την εικονική μηχανή

3 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας3 Spring 2007 Τελικός κώδικας για το calculator (2/2)

4 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας4 Spring 2007 Σχεδίαση ενός binary αρχείου (1/2) μαγικός αριθμός (κατά προτίμηση μοναδικός) αριθμός μεταβλητών που περιέχει το πρόγραμμα αριθμός εντολών (τελικού κώδικα) που περιέχει το πρόγραμμα εντολές  το format μιας εντολής opcode(1 byte) result(5 bytes) arg1(5 bytes) arg2(5 bytes)

5 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας5 Spring 2007 Σχεδίαση ενός binary αρχείου (2/2) το format ενός argument είναι το εξής  argument type (1 byte) σταθερά ή μεταβλητή  value (4 bytes) offset στον πίνακα των μεταβλητών του προγράμματος αν ο τύπος είναι μεταβλητή η πραγματική τιμή αν ο τύπος είναι σταθερά

6 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας6 Spring 2007 Εικονική Μηχανή η μοναδική λειτουργία της εικονικής μηχανής είναι να εκτελεί ένα αρχείο τελικού κώδικα  φορτώνει το αρχείο στην μνήμη αριθμός μεταβλητών αντιστοιχίζει τις μεταβλητές σε θέσεις μνήμης αρχίζει να εκτελεί τις εντολές σειριακά  η μηχανή του calculator δεν έχει συνθήκες, βρόχους ή συναρτήσεις

7 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας7 Spring 2007 Φόρτωμα binary αρχείου (1/2)

8 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας8 Spring 2007 Φόρτωμα binary αρχείου (2/2)

9 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας9 Spring 2007 Προδιαγραφές Εικονικής Μηχανής (1/2)

10 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας10 Spring 2007 Προδιαγραφές Εικονικής Μηχανής (2/2)

11 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας11 Spring 2007 Εκτέλεση Προγράμματος (1/5) Μόλις φορτωθεί το πρόγραμμα στην εικονική μηχανή αυτή αρχίζει να εκτελεί τον σειριακά τις εντολές

12 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας12 Spring 2007 Εκτέλεση Προγράμματος (2/5)

13 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας13 Spring 2007 Εκτέλεση Προγράμματος (3/5) Μετά τις κλήσεις της συνάρτησης “translate_operand”, έχουμε στη διάθεσή μας pointers στις τιμές των παραμέτρων της εκάστοτε εντολής

14 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας14 Spring 2007 Εκτέλεση Προγράμματος (4/5) Έτσι, οποιουδήποτε τύπου κι αν είναι η παράμετρος VMArg, είμαστε σίγουροι σε αυτό το σημείο ότι ο pointer VMMemCell, δείχνει πάντα στη σωστή τιμή της παραμέτρου, είτε αυτή είναι σταθερά είτε μεταβλητή

15 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας15 Spring 2007 Εκτέλεση Προγράμματος (5/5) Binary (simple.exe) simple.clc Calc VM


Κατέβασμα ppt "Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google