HEAL DSpace

Στατική ανάλυση για έλεγχο λαθών στη γλώσσα Ruby

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

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

dc.contributor.advisor Παπασπύρου, Νικόλαος el
dc.contributor.author Βάθης, Νικόλαος Κ. el
dc.contributor.author Vathis, Nikolaos K. en
dc.date.accessioned 2013-02-12T09:19:35Z
dc.date.available 2013-02-12T09:19:35Z
dc.date.copyright 2012-12-04 -
dc.date.issued 2013-02-12
dc.date.submitted 2012-12-04 -
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/7615
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.5050
dc.description 61 σ. el
dc.description.abstract Ο προγραμματισμός ηλεκτρονικών υπολογιστών είναι μία επιστήμη που έχει γνωρίσει ραγδαία ανάπτυξη τις τελευταίες δεκαετίες. Τη σημερινή μέρα είναι εύκολο για τον οποιονδήποτε να γράψει κάποιο πρόγραμμα σε κάποια γλώσσα προγραμματισμού. Αντίθετα, οι τεχνικές απόδειξης οτι ένα πρόγραμμα όντως κάνει αυτό που θέλει ο προγραμματιστής δεν είναι εξίσου ανεπτυγμένες. Η πιο απλή μορφή απόδειξης για τη σωστή λειτουργία ενός προγράμματος είναι ο έλεγχος ορθότητας από ένα σύστημα τύπων. Σε αυτή τη διπλωματική κατασκευάζουμε ένα στατικό σύστημα τύπων που να εντοπίζει σφάλματα τύπου σε αντικειμενοστρεφείς γλώσσες προγραμματισμού με δυναμικό σύστημα τύπων. Στη συνέχεια, υλοποιούμε αυτό το σύστημα τύπων για ένα υποσύνολο της γλώσσας προγραμματισμού Ruby, το οποίο εν συνεχεία επεκτείνουμε ώστε να καλύψει μεγαλύτερο μέρος της γλώσσας Ruby. Το σύστημα τύπων που κατασκευάζουμε είναι βασισμένο στα Success Typings, τη θεωρία πίσω από το εργαλείο Dialyzer που βρίσκει σφάλματα τύπου σε προγράμματα της γλώσσας Erlang. Η βασική του ιδιότητα είναι οτι δεν υπάρχει περίπτωση να εντοπίσει σφάλμα σε πρόγραμμα το οποίο δεν έχει σφάλμα. Δηλαδή, εντοπίζει μόνο υπαρκτά σφάλματα. Το εργαλείο που εντοπίζει τα σφάλματα στο υποσύνολο της γλώσσας Ruby είναι εύκολο στη χρήση του, καθώς δεν χρειάζεται καμία υποσημείωση τύπων για να λειτουργήσει σωστά. Τέλος, παρουσιάζουμε μία βήμα προς βήμα σύγκριση με τον κύριο ανταγωνιστή στον εντοπισμό σφαλμάτων τύπου στη γλώσσα Ruby, Diamondback Ruby, σχολιάζοντας τις εξόδους των δύο εργαλείων. el
dc.description.abstract Computer programming is a very widespread science, practiced by many individuals. Nowadays, it is easy for almost anyone to write a computer program. Unfortunately, it is still very difficult to prove that a computer program will behave as it is supposed to, when executed. The most basic form of such a proof is type checking. So, in this thesis, we present a static type system that detects type errors in dynamically typed object oriented languages. Also, we implement this type system for a subset of the Ruby programming language, which we try to extend to cover a bigger part of Ruby. The type system that we present is based on Success Typings, the theory behind the Dialyzer, a tool that detects type errors in the Erlang programming language. Its most interesting property is that it detects only definite errors, and it will never detect a false positive. The tool that we propose should be easy to use, as it requires no intervention of the programmer, as for example in the form of type annotations. Finally, we present a step by step comparison between our tool and our main competitor in the field of type checking in Ruby, Diamondback Ruby, commenting on the outputs of the tools in the process. en
dc.description.statementofresponsibility Νικόλαος Κ. Βάθης el
dc.language.iso el en
dc.rights ETDRestricted-policy.xml en
dc.subject Στατική ανάλυση el
dc.subject Έλεγχος τύπων el
dc.subject Εντοπισμός σφαλμάτων el
dc.subject Σύστημα τύπων el
dc.subject Ruby el
dc.subject Static analysis en
dc.subject Type checking en
dc.subject Error detection en
dc.subject Type system en
dc.subject Ruby en
dc.title Στατική ανάλυση για έλεγχο λαθών στη γλώσσα Ruby el
dc.type bachelorThesis el (en)
dc.date.accepted 2012-11-23 -
dc.date.modified 2012-12-04 -
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 2013-02-12 -
dc.date.recordmanipulation.recordmodified 2013-02-12 -


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

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

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