Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεCynara Lasko Τροποποιήθηκε πριν 9 χρόνια
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
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.