HEAL DSpace

Στατική Ανάλυση της Αγνότητας των Συναρτήσεων της Γλώσσας Erlang

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

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

dc.contributor.author Πιτίδης, Μιχάλης
dc.contributor.author Pitidis, Michalis
dc.date.accessioned 2025-02-26T10:06:41Z
dc.date.available 2025-02-26T10:06:41Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/61183
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.28879
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject συναρτησιακός προγραμματισμός, el
dc.subject Ανάλυση αγνότητας συναρτήσεων el
dc.subject Παρενέργειες el
dc.subject Static analysis en
dc.subject Purely functional programming en
dc.subject Pureness analysis en
dc.subject Erlang en
dc.subject Side effect en
dc.title Στατική Ανάλυση της Αγνότητας των Συναρτήσεων της Γλώσσας Erlang el
dc.contributor.department Τομεας Τεχολογιας Πληροφορικής και Υπολογιστών el
heal.type bachelorThesis
heal.classification Στατική ανάλυση el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2010-09-01
heal.abstract Οι αγνές συναρτήσεις, δηλαδή οι συναρτήσεις χωρίς παρενέργειες, παίζουν σημαντικό ρόλο στις συναρτησιακές γλώσσες προγραμματισμού, καθώς βοηθούν στη συγγραφή κατα-νοητού κώδικα που είναι εύκολο να ελεγθεί. Σε μια γλώσσα σαν την ERLANG, η οποία δεν διαθέτει σύστημα τύπων και επιτρέπει την αδιάκριτη χρήση αγνών και μη αγνών συνα-ρτήσεων, η διαβεβαίωση ότι ορισμένες συναρτήσεις είναι αγνές μπορεί να φανεί χρήσιμη σε συγκεκριμένες περιπτώσεις. Η παρούσα διπλωματική εργασία επικεντρώνεται στην υλοποίηση μιας πλήρως αυτοματοποιημένης στατικής ανάλυσης Για τη διαπίστωση της αγνότητας ή μη των συναρτήσεων ERLANG. Καταγράφει τις απαραίτητες ιδιότητες που καθιστούν μια συνάρτηση αγνή και περιγράφει τη σχεδίαση της εφαρμογής PYRITY, ενός εργαλείου που ξεκινάει από ένα σύνολο συναρτήσεων με προκαθορισμένη αγνότητα για να αναλύσει τον κώδικα που του παρέχει ο χρήστης. Με μια κατά βάση απλή και συντηρητική προσέγγιση, είναι δυνατό να αποφανθούμε για την αγνότητα ή μη του σχεδόν 90% των συναρτήσεων στις εφαρμογές που εξετάζουμε. Σαν πρακτική εφαρμογή, η ανάλυση μας ενσωματώθηκε στο μετασχηματτιστή της ERLANG, επιτρέποντας τη Χρήση αυθαίρετων αγνών συναρτήσεων σε εκφράσεις φρουρών, κάτι που προηγουμένως δεν ήταν δυνατόν. Η προσπάθεια αυτή δεν ήταν πληρης el
heal.abstract Pure functions play an important role in functional programming languages, and help in writing easy to test, robust and comprehensible code. In a language like E, which lacks a type system and allows pure functions to be used interchangeably with impure ones, being able to reason about the purity of certain functions can prove useful. This thesis focuses on the implementation of a fully automatic static analysis that determines the purity of ERLANGfunctions. It identifies the necessary properties of pure functions, and describes the design of PURITY, a tool which builds upon a set of functions with predetermined values to analyse the purity of user provided code. Based on a generally simple and conservative approach, it was possible to conclusively determine the purity of roughly 90% of the functions in the code bases we tested. As a practical application, our analysis was integrated into the ERLANG compiler, allowing arbitrary pure functions to be used in guard expressions, something not previously possible in ERLANG. While a bit rough and incomplete, our proof of concept could provide motivation for a more mature implemenation. Furthermore, our analysis could make way for some types of optimisations in the ERLANG compiler. en
heal.sponsor ΕΜΠ el
heal.advisorName Σαγώνας, Κώστας
heal.committeeMemberName Σαγώνας, Κώστας
heal.committeeMemberName Παπασπύρου, Νικόλαος
heal.committeeMemberName Κοντογιάννης, Κώστας
heal.academicPublisher Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 53 σ.
heal.fullTextAvailability false


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

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

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

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

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