HEAL DSpace

Ο Νοηματικός Μετασχηματισμός ως Τεχνική Υλοποίησης Συναρτησιακών Γλωσσών Προγραμματισμού

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.advisor Παπασπύρου, Νικόλαος el
dc.contributor.author Φουρτούνης, Γεώργιος Α. el
dc.contributor.author Fourtounis, Georgios A. en
dc.date.accessioned 2015-02-24T11:24:53Z
dc.date.available 2015-02-24T11:24:53Z
dc.date.copyright 2014-07-22 -
dc.date.issued 2015-02-24
dc.date.submitted 2014-07-22 -
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/40338
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.1579
dc.description 119 σ. el
dc.description.abstract Οι γλώσσες προγραμματισμού με μη αυστηρή σημασιολογία χρησιμοποιούνται για τη συγγραφή προγραμμάτων στα οποία μια έκφραση μπορεί να αντιστοιχίζεται σε ένα όνομα, χωρίς όμως να υπολογίζεται στο σημείο της δέσμευσης. Γλώσσες αυτού του τύπου χρησιμοποιούνται αρκετά σε ερευνητικά θέματα αλλά και σε πρακτικές εφαρμογές γιατί επιτρέπουν τη συγγραφή γρήγορων και κομψών προγραμμάτων, όπου οι υπολογισμοί ορίζονται όπου έχει νόημα αλλά εκτελούνται μόνο όταν χρειάζονται. Αυτή η διδακτορική διατριβή εξετάζει τον νοηματικό μετασχηματισμό (intensional transformation) ως εναλλακτική τεχνική υλοποίησης μη αυστηρών συναρτησιακών γλωσσών, καταλήγοντας στα εξής αποτελέσματα: (1) Περιγράφεται ο γενικευμένος νοηματικός μετασχηματισμός, το βασικό νέο θεωρητικό αποτέλεσμα που αποτελεί γενίκευση του κλασικού νοηματικού μετασχηματισμού και, σε συνδυασμό με τον μετασχηματισμό απαλοιφής συναρτήσεων (defunctionalization), επιτυγχάνει να μετασχηματίσει προγράμματα υψηλότερης τάξης με αυθαίρετες δομές δεδομένων σε προγράμματα ροής δεδομένων (dataflow) μηδενικής τάξης. (2) Αποδεικνύεται η εκφραστική ισοδυναμία των δύο κλασικών εκδοχών του νοηματικού μετασχηματισμού (πρώτης τάξης και υψηλότερης τάξης) χρησιμοποιώντας τον μετασχηματισμό defunctionalization. (3) Δίνεται μια αποδοτική υλοποίηση του γενικευμένου νοηματικού μετασχηματισμού με τη μορφή ενός μεταγλωττιστή για τη γλώσσα Haskell. Η υλοποίηση είναι κατάλληλη για δημοφιλείς αρχιτεκτονικές υλικού και μπορεί να συγκριθεί σε ταχύτητα με άλλους διαθέσιμους μεταγλωττιστές της Haskell. (4) Περιγράφεται μια νέα, οικονομική σε μνήμη, κωδικοποίηση των δομών του χρόνου εκτέλεσης, για την αρχιτεκτονική υλικού AMD64. Αυτή η κωδικοποίηση βελτιώνει την ταχύτητα και τη χρήση κρυφής μνήμης των προγραμμάτων που παράγονται, με αποτέλεσμα η υλοποίηση να είναι συγκρίσιμη σε ταχύτητα με τον μεταγλωττιστή GHC, ο οποίος αποτελεί την ντε φάκτο υλοποίηση της Haskell. (5) Ως σήμερα, ο μετασχηματισμός defunctionalization και ο νοηματικός μετασχηματισμός έχουν περιγραφεί ως μετασχηματισμοί χωρίς δυνατότητα ξεχωριστής μεταγλώττισης. Στη διατριβή αυτή αποδεικνύεται πώς αυτό το χαρακτηριστικό μπορεί να προστεθεί και στους δύο, ώστε να μπορούν να επεξεργαστούν προγράμματα με τη μορφή μονάδων κώδικα Haskell, φτάνοντας έτσι στον τμηματικό νοηματικό μετασχηματισμό και στον τμηματικό μετασχηματισμό defunctionalization. el
dc.description.abstract Non-strict programming languages are used to write programs where an expression may be bound to a name, but it is not necessarily evaluated on the spot. Such languages have been successful in both research and applications, since they allow programmers to write efficient and elegant programs where computations are declared where it makes sense but only run when needed. This thesis describes the intensional transformation, a technique that translates higher-order non-strict programs to dataflow programs that can still be implemented using familiar lazy evaluation techniques on mainstream computers. The main contributions of this work are: (1) We present the generalized intensional transformation, an extension of the classic intensional transformation that can handle languages with user-defined data types. Having data types, we then use the defunctionalization transformation to add support for higher-order functions in the intensional transformation, addressing the other open problem of the classic intensional transformation, that of supporting closures. (2) We prove that the two flavors of the classic intensional transformation are equally expressive, using defunctionalization. (3) We demonstrate that the intensional transformation is an efficient implementation technique on mainstream hardware by building a compiler that is competitive with other compilers of the Haskell programming language. (4) We present a compact representation of program runtime structures that takes advantage of the AMD64 hardware architecture and results in fast and memory-efficient programs. (5) We show how to combine separate compilation with defunctionalization and the intensional transformation, two transformations so far considered whole-program. In particular, we show how Haskell-style modules can be separately compiled and then linked in variants of both transformations. en
dc.description.statementofresponsibility Γεώργιος Α. Φουρτούνης el
dc.language.iso el en
dc.rights ETDFree-policy.xml en
dc.subject Αρχιτεκτονικές ροής δεδομένων el
dc.subject Μετασχηματισμός defunctionalization el
dc.subject Νοηματικός μετασχηματισμός el
dc.subject Νοηματικός προγραμματισμός el
dc.subject Οκνηρή αποτίμηση el
dc.subject Συναρτησιακός προγραμματισμός el
dc.subject Dataflow architectures en
dc.subject Defunctionalization en
dc.subject Functional programming en
dc.subject Intensional transformation en
dc.subject Intensional programming en
dc.subject Lazy evaluation en
dc.title Ο Νοηματικός Μετασχηματισμός ως Τεχνική Υλοποίησης Συναρτησιακών Γλωσσών Προγραμματισμού el
dc.title.alternative The Intensional Transformation for Implementing Functional Programming Languages en
dc.type doctoralThesis el (en)
dc.date.accepted 2014-07-03 -
dc.date.modified 2014-07-22 -
dc.contributor.advisorcommitteemember Κολέτσος, Γεώργιος el
dc.contributor.advisorcommitteemember Ζάχος, Ευστάθιος el
dc.contributor.advisorcommitteemember Δημήτριος Βυτινιώτης el
dc.contributor.committeemember Παπασπύρου, Νικόλαος el
dc.contributor.committeemember Κολέτσος, Γεώργιος el
dc.contributor.committeemember Ζάχος, Ευστάθιος el
dc.contributor.committeemember Σαγώνας, Κωνσταντίνος el
dc.contributor.committeemember Ροντογιάννης, Παναγιώτης el
dc.contributor.committeemember Σμαραγδάκης, Ιωάννης el
dc.contributor.committeemember Βυτινιώτης, Δημήτριος el
dc.contributor.department Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού. el
dc.date.recordmanipulation.recordcreated 2015-02-24 -
dc.date.recordmanipulation.recordmodified 2015-02-24 -


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής