Διερμηνευτικός προσομοιωτής για κειμενική ενδιάμεση αναπαράσταση μεταγλωττιστή
Interpretive simulator of a textual compiler intermediate representation
![Thumbnail](/xmlui/bitstream/handle/123456789/950/358_000013m.pdf.jpg?sequence=5&isAllowed=y)
Μεταπτυχιακή διπλωματική εργασία
Author
Κανάτσος, Άγγελος
Date
2011-12Subject
Ηλεκτρονικοί υπολογιστές -- Γλώσσες προγραμματισμού ; Ηλεκτρονικοί υπολογιστές -- ΠρογράμματαAbstract
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.
Abstract
Η ενδιάμεση αναπαράσταση κώδικα ενός μεταγλωττιστή αποτελεί θα λέγαμε το
σημαντικότερο στάδιο μεταγλώττισης ενός πηγαίου προγράμματος καθώς είναι
εκείνο που ενώνει το frontend με το backend του μεταγλωττιστή. Τρία είναι τα είδη
των αναπαραστάσεων που χρησιμοποιούνται σήμερα, με δημοφιλέστερο τoν κώδικα
TAC (Three Address Code). Τα τελευταία χρόνια η επιστημονική κοινότητα έχει
δείξει μεγάλο ενδιαφέρον για την εξέλιξη και τη βελτίωση της μορφής αυτής, αφού
παγκοσμίως αναπτύσσονται διάφορα projects (GCC GIMPLE, LLVM, LANCE
compiler IR-C) με αυτό το σκοπό. Η γλώσσα NAC που θα παρουσιάσουμε αποτελεί
μία επεκτεταμένη μορφή του TAC καθώς αντί για τρεις διευθύνσεις σε κάθε πρότασή
της μπορούν να υπάρχουν N, δηλαδή απεριόριστες θεωρητικά (περιορίζεται από τους
πόρους της μηχανής). Αναπτύχθηκε από τον Καββαδία Νικόλαο [1] και για την
προσομοίωση της αναπτύξαμε ένα διερμηνευτικό προσομοιωτή με το όνομα NacVM
ο οποίος θα αποτελέσει και το κύριο μέρος ανάλυσης αυτής της εργασίας.
Αναπτύχθηκε σε γλώσσα ANSI C και η πρώτη έκδοση του ικανοποιεί σε μεγάλο
βαθμό τις απαιτήσεις της NAC.
Number of pages
160 σελ.Faculty
Σχολή Θετικών Επιστημών και ΤεχνολογίαςAcademic Department
Τμήμα Επιστήμης και Τεχνολογίας ΥπολογιστώνPost-graduate program
Επιστήμη και Τεχνολογία ΥπολογιστώνLanguage
GreekDescription
Μ.Δ.Ε. 13The following license files are associated with this item: