HEAL DSpace

Εξαντλητικότητα Ταιριάσματος Προτύπων για Γενικευμένους Αλγεβρικούς Τύπους Δεδομένων

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

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

dc.contributor.advisor Παπασπύρου, Νικόλαος el
dc.contributor.author Καραχάλιας, Γεώργιος Δ. el
dc.contributor.author Karachalias, Georgios D. en
dc.date.accessioned 2014-05-06T08:26:29Z
dc.date.available 2014-05-06T08:26:29Z
dc.date.copyright 2014-01-13 -
dc.date.issued 2014-05-06
dc.date.submitted 2014-01-13 -
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/38413
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.7338
dc.description σ. 72 el
dc.description.abstract Ο Glasgow Haskell Compiler (GHC) είναι αυτή τη στιγμή ο κορυφαίος μεταγλωττιστής για τη γλώσσα Haskell. Πέραν του προτύπου της Haskell 2010, υποστηρίζει πολυάριθμες επεκτάσεις, συμπεριλαμ- βανομένων των Γενικευμένων Αλγεβρικών Τύπων. Δυστυχώς, ενώ οι γενικευμένοι αλγεβρικοί τύποι έχουν ενσωματωθεί πλήρως στο σύστημα τύπων της Haskell, ο εντοπισμός μη εξαντλητικών ται- ριασμάτων προτύπων σε περιπτώσεις που περιέχουν γενικευμένους αλγεβρικούς τύπους αποδείχτηκε ελλιπής. Ο στόχος αυτής της διπλωματικής εστιάζει στο σχεδιασμό ενός μηχανισμού για τον εντοπισμό μη εξαντλητικών ταιριασμάτων προτύπων, ο οποίος θα διαχειρίζεται τόσο ταιριάσματα προτύπων επί Αλγεβρικών Τύπων όσο και Γενικευμένων Αλγεβρικών Τύπων, με ενιαίο τρόπο. Ο βασικός μας ισχυ- ρισμός είναι ότι ο έλεγχος της εξαντλητικότητας ταιριάσματος προτύπων θα πρέπει να αντιμετωπί- ζεται πλέον περισσότερο ως σημασιολογικό, παρά συντακτικό ζήτημα. Αντί να είναι διαχωρισμένο απο τον έλεγχο τύπων, θεωρούμε πως πρέπει να ενσωματωθεί σε αυτόν, έτσι ώστε να είναι δυνατή η αξιοποίηση των τοπικών περιορισμών που εισαγάγονται απο ταιριάσματα γενικευμένων αλγεβρικών τύπων. Στην παρούσα εργασία παρουσιάζουμε έναν τέτοιο μηχανισμό, ως επέκταση του τρέχοντος, ο οποίος είναι εύληπτος, εύκολα υλοποιήσιμος και αποδοτικός. Εκτός απο το σχεδιασμό, υλοποιήσαμε μερικώς την επέκταση μας στον GHC, συνεπώς παραθέτουμε και τεχνικές πληροφορίες, σχετικά με την υλο- ποίηση μας. Τέλος, συγκρίνουμε την απόδοση και τα αποτελέσματα που δίνει ο GHC με και χωρίς την επέκτασή μας, δείχνοντας ότι ο μηχανισμός μας είναι πράγματι ορθός και αποδοτικός, με αποτέλεσμα να μπορεί να ενσωματωθεί στο μέλλον στον εν λόγω μεταγλωττιστή. el
dc.description.abstract Glasgow Haskell Compiler (GHC) is the state-of-the-art compiler for the programming language Haskell. Striving to be on the edge, in March 2006, Generalized Algebraic Data Types (GADTs) were incorporated as an extension of GHC and, henceforth, GADTs turned from a specialized hobby into a mainstream programming technique. Unfortunately, although perfectly integrated in GHC’s type sys- tem, along with numerous other features and extensions (type classes, type families, functional depen- dencies, implicit parameters, arbitrary-rank types and more besides), the detection of non-exhaustive pattern matches in cases that include GADTs proved to be incomplete. The objective of our work was to design a new mechanism for the detection of non-exhaustive pat- tern matches, that, not only would be complete in a setting with GADTs (and all other GHC’s exotic features), but would also treat all cases uniformly. Our main assertion is that exhaustiveness check must be promoted from a syntactic to a rather semantic matter. Instead of keeping it separated from the phase of type-checking, we suggest that the mechanism must be integrated into the latter. Hence, via constraint solving, we can exploit the local constraints introduced by GADT matches, in order to accurately detect missing patterns. In this work, we present such a mechanism, as an extension of the previous one, that is considerably efficient and relatively easy to understand and implement. Apart from the design, we have also par- tially implemented it in GHC 7.7. Therefore, we additionally enclose further technical information, regarding our implementation. Finally, we compare the performance and the soundness of GHC with and without our extension, and show that our mechanism behaves well in such a setting. en
dc.description.statementofresponsibility Γεώργιος Δ. Καραχάλιας el
dc.language.iso el en
dc.rights ETDFree-policy.xml en
dc.subject Ταίριασμα Προτύπων el
dc.subject Έλεγχος Τύπων el
dc.subject Γενικευμένος Αλγεβρικός Τύπος Δεδομένων el
dc.subject Glasgow Haskell Compiler el
dc.subject Haskell el
dc.subject Pattern Matching en
dc.subject Type Checking en
dc.subject Generalized Algebraic Data Types en
dc.subject Glasgow Haskell Compiler en
dc.subject Haskell en
dc.title Εξαντλητικότητα Ταιριάσματος Προτύπων για Γενικευμένους Αλγεβρικούς Τύπους Δεδομένων el
dc.title.alternative Pattern Matching Exhaustiveness for GADTs en
dc.type bachelorThesis el (en)
dc.date.accepted 2014-01-08 -
dc.date.modified 2014-01-13 -
dc.contributor.advisorcommitteemember Σαγώνας, Κωστής el
dc.contributor.advisorcommitteemember Κοντογιάννης, Κώστας el
dc.contributor.committeemember Παπασπύρου, Νικόλαος el
dc.contributor.committeemember Σαγώνας, Κωστής el
dc.contributor.committeemember Κοντογιάννης, Κώστας el
dc.contributor.department Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού el
dc.date.recordmanipulation.recordcreated 2014-05-06 -
dc.date.recordmanipulation.recordmodified 2014-05-06 -


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

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

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