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 |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: