HEAL DSpace

Μετασχηματισμός συναρτήσεων Haskell σε μοναδιαία μορφή

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

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

dc.contributor.author Τερζιδάκη, Αλεξάνδρα el
dc.contributor.author Terzidaki, Alexandra en
dc.date.accessioned 2020-04-22T14:15:16Z
dc.date.available 2020-04-22T14:15:16Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/50211
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.17909
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject Αγνά συναρτησιακές γλώσσες προγραμματισμού el
dc.subject Purely functional programming languages en
dc.subject Μονάδες el
dc.subject Σύνθεση monads el
dc.subject Μετασχηματισμός κώδικα el
dc.subject Haskell en
dc.subject Monads en
dc.subject Monad composition en
dc.subject Monad trans- formers en
dc.subject Extensible-effects en
dc.subject Code transformation en
dc.title Μετασχηματισμός συναρτήσεων Haskell σε μοναδιαία μορφή el
heal.type bachelorThesis
heal.classification Συναρτησιακές γλώσσες προγραμματισμού el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2019-09-20
heal.abstract Οι αγνές συναρτησιακές γλώσσες προγραμματισμού, σε αντίθεση με διάφορες άλλες κατηγορίες γλωσσών (προστακτικές, λογικές, κτλ.), χρησιμοποιούν τις συναρτήσεις όπως ορίζονται από το μα- θηματικό πρότυπο. Έτσι, μία συνάρτηση για μία δεδομένη είσοδο θα δώσει μία και μόνο μία έξοδο, όσες φορές και αν καλεστεί. Το γεγονός αυτό, παρά τα πλεονεκτήματα που μπορεί να έχει, δημιουργεί κάποια προβλήματα που σχετίζονται με τον χειρισμό μη αγνών (impure) συναρτησιακών χαρακτηρι- στικών, όπως τα side effects, η αποτυχία τερματισμού, ο μη ντετερμινισμός, κ.α. Στην Haskell, το εργαλείο που είναι υπεύθυνο για την ενσωμάτωση μη αγνών συναρτησιακά χα- ρακτηριστικά ονομάζεται monads και η λογική του στηρίζεται στον κλάδο των μαθηματικών που καλείται category theory. Ο ορισμός των monads περιέχει τις συναρτήσεις return και bind (>>=) που βοηθούν στην διαχείριση τιμών που δεν είναι αγνές, τις οποίες συνηθίζεται να καλούμε υπο- λογισμούς, και συμβολίζονται με M a. Αν και τα monads είναι ιδιαίτερα επιτακτικά στην πράξη, η ιδιόμορφη φύση τους αποθαρρύνει τους προγραμματιστές να τα κατανοήσουν και κατά συνέπεια να τα χρησιμοποιήσουν με κατάλληλο τρόπο. Ένα σημαντικό εμπόδιο που τίθεται, σχετίζεται με το γεγονός ότι δεν ορίζεται μαθηματικά η κα- θολική πράξη της σύνθεσης των monads. Ωστόσο, στον πραγματικό κόσμο είναι συχνά απαραίτητη η συνδιαλλαγή με πολλάπλα και, πιθανώς, διαφορετικού σκοπού προστακτικά γνωρίσματα. Έτσι, το επιστημονικό ενδιαφέρον στράφηκε στην ανάπτυξη πρακτικών μοντέλων που καταφέρνουν να επιτύ- χουν την επιθυμητή ”μείξη” των impure στοχείων. Δύο τέτοιες μέθοδοι είναι οι monad Transformers και τα Extensible Effects. Στο πλαίσιο της παρούσας διπλωματικής επιχειρήσαμε να επεκτείνουμε τον τρόπο με τον οποίο οι προγραμματιστές της Haskell αντιμετωπίζουν τα monads. Το εργαλείο που αναπτύξαμε διευκολύ- νει τη χρήση των monads και παρέχει επιπλέον δυνατότητες σχετικά με την ταυτόχρονη επεξεργασία πολλαπλών και ετερόκλητων impure στοιχείων. Για τους σκοπούς αυτούς, επιλέξαμε να πειραμα- τιστούμε με ένα υποσύνολο της Haskell, τη γλώσσα RouReg. Mε τη βοήθεια του framework των Extensible Effects επιδιώξαμε τη μετατροπή των συναρτήσεων των επικείμενων προγραμμάτων σε monadic form. Με αυτόν τον τρόπο, επιτύχαμε όλες οι συναρτήσεις του μετασχηματισμένου κώδικα, να έχουν τη μορφή Eff r (a → Eff r (...)), δηλαδή να βρίσκονται εντός του Eff r monad, μέσω του οποίου μπορούν να συνδιαστούν ταυτόχρονα διαφορετικά effects, ως ένωση στο σύνολο r. Ένας τέ- τοιος μετασχηματισμός, πριν τη διαδικαδία της μεταγλώττισης, επιτρέπει στον ανεπεξέργαστο κώδικα να περιέχει monadic σύνταξη που, μέχρι πρότινος, δεν ήταν αποδεκτή. el
heal.advisorName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Παγουρτζής, Αριστείδης el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 74 σ.
heal.fullTextAvailability false


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

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

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

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

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα