Διερμηνευτικός προσομοιωτής για κειμενική ενδιάμεση αναπαράσταση μεταγλωττιστή
Interpretive simulator of a textual compiler intermediate representation
Μεταπτυχιακή διπλωματική εργασία
Συγγραφέας
Κανάτσος, Άγγελος
Ημερομηνία
2011-12Επιβλέπων
Μασσέλος, ΚωνσταντίνοςΚαββαδίας, Νικόλαος
Θεματική επικεφαλίδα
Ηλεκτρονικοί υπολογιστές -- Γλώσσες προγραμματισμού ; Ηλεκτρονικοί υπολογιστές -- ΠρογράμματαΛέξεις κλειδιά
Γραμμική ενδιάμεση αναπαράσταση ; NAC ; Διερμηνευτικός προσομοιωτής ; ΜεταγλωττιστέςΠερίληψη
The intermediate code representation (IR) is consider as an important integral part of
the compiler since it is reused across all important compilation stages for representing
a source program; it connects the frontend to the backend of the compiler. Of the most
popular representations used today are linearized forms such as TAC (Three Address
Code). In recent years the scientific community has shown great interest in the
development and improvement of representations of this kind for production use, as it
is evident in popular compilation projects (GCC GIMPLE, LLVM, LANCE compiler
IR-C). In this work, the intermediate language NAC (N-Address Code) is presented as
an extended version of TAC. Instead of using three addresses in each IR statement
proposal there may be N, theoretically infinite and practically limited only by the
resources of the machine. NAC has been developed by Nikolaos Kavvadias [1] and
for its simulation; a simulator interpreter named NacVM was developed that
comprises the main topic of this work. The simulator was developed in ANSI C
language and this first version suffices to support to a large extent the requirements
posed by NAC.
Περίληψη
Η ενδιάμεση αναπαράσταση κώδικα ενός μεταγλωττιστή αποτελεί θα λέγαμε το
σημαντικότερο στάδιο μεταγλώττισης ενός πηγαίου προγράμματος καθώς είναι
εκείνο που ενώνει το frontend με το backend του μεταγλωττιστή. Τρία είναι τα είδη
των αναπαραστάσεων που χρησιμοποιούνται σήμερα, με δημοφιλέστερο τoν κώδικα
TAC (Three Address Code). Τα τελευταία χρόνια η επιστημονική κοινότητα έχει
δείξει μεγάλο ενδιαφέρον για την εξέλιξη και τη βελτίωση της μορφής αυτής, αφού
παγκοσμίως αναπτύσσονται διάφορα projects (GCC GIMPLE, LLVM, LANCE
compiler IR-C) με αυτό το σκοπό. Η γλώσσα NAC που θα παρουσιάσουμε αποτελεί
μία επεκτεταμένη μορφή του TAC καθώς αντί για τρεις διευθύνσεις σε κάθε πρότασή
της μπορούν να υπάρχουν N, δηλαδή απεριόριστες θεωρητικά (περιορίζεται από τους
πόρους της μηχανής). Αναπτύχθηκε από τον Καββαδία Νικόλαο [1] και για την
προσομοίωση της αναπτύξαμε ένα διερμηνευτικό προσομοιωτή με το όνομα NacVM
ο οποίος θα αποτελέσει και το κύριο μέρος ανάλυσης αυτής της εργασίας.
Αναπτύχθηκε σε γλώσσα ANSI C και η πρώτη έκδοση του ικανοποιεί σε μεγάλο
βαθμό τις απαιτήσεις της NAC.
Αριθμός σελίδων
160 σελ.Σχολή
Σχολή Θετικών Επιστημών και ΤεχνολογίαςΑκαδημαϊκό Τμήμα
Τμήμα Επιστήμης και Τεχνολογίας ΥπολογιστώνΤίτλος Προγράμματος Μεταπτυχιακών Σπουδών
Επιστήμη και Τεχνολογία ΥπολογιστώνΓλώσσα
ΕλληνικάΠεριγραφή
Μ.Δ.Ε. 13Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: