Static Analysis for Error Detection in JavaScript Programs

see the original item page
in the repository's web site and access all digital files if the item*



Στατική Ανάλυση για Εύρεση Λαθών σε Προγράμματα JavaScript (EL)
Static Analysis for Error Detection in JavaScript Programs (EN)

Κασαμπαλής, Θεόδωρος Γ. (EL)
Kasampalis, Theodoros G. (EN)

Σαγώνας, Κωνσταντίνος (EL)
Κοντογιάννης, Κωνσταντίνος (EL)
Παπασπύρου, Νικόλαος (EL)

bachelorThesis

2012-09-24T10:55:56Z
2012-07-25
2012-09-24
2012-07-23


Θεόδωρος Γ. Κασαμπαλής (EL)
Η JavaScript είναι μία δημοφιλής γλώσσα προγραμματισμού, που χρησιμοποιείται κυρίως για προγραμματισμό στον ιστό, αλλά και για προγραμματισμό ενικού σκοπού. Η γλώσσα αυτή έχει δυναμικό και χαλαρό σύστημα τύπων, και κατά συνέπεια τα λάθη σε προγράμματα JavaScript είναι δύσκολο να εντοπιστούν. Παρόλα αυτά, η υπάρχουσα υποστήριξη από αυτόματα εργαλεία για τη γλώσσα είναι περιορισμένη. Η εργασία μας στοχεύει στη βελτίωση αυτής της κατάστασης. Αναπτύσσουμε μία διαδικασία στατικής ανάλυσης για προγράμματα JavaScript που καλύπτει όλα τα χαρακτηριστικά της γλώσσας. Η ανάλυσή μας είναι ικανή να εξάγει πληροφορίες σχετικές με τους τύπους κατά την εκτέλεση, τους γράφους κλήσεων, τη διάδοση εξαιρέσεων και τη δομή των αντικειμένων, χρησιμοποιώντας μια ικανοποιητική αφαίρεση για ολόκληρο το runtime σύστημα της γλώσσας και για τον ασυνήθιστο μηχανισμό προτοτύπων που διαθέτει. Σε αυτή τη διπλωματική, παρουσιάζουμε λεπτομερώς αυτή την αφαίρεση και την αντιστοιχία της με την προδιαγραφή της γλώσσας. Επίσης, περιγράφουμε τον αλγόριθμο στατικής ανάλυσης που χρησιμοποιήθηκε και δίνουμε ενδεικτικά παραδείγματα. (EL)
46 σ. (EL)
JavaScript is a popular programming language, that is mostly used for client-side web scripting, but also for general purpose programming. The language is dynamically and weakly typed, and thus errors in JavaScript programs are difficult to spot. However the existing tools that support JavaScript programmers are limited. Our work aims to the improvement of this situation: We develop a framework for static analysis of JavaScript programs that covers all the features of the language. Our framework is able to infer information about the runtime types, call graphs, exception flow and object structure by successfully abstracting the language’s whole runtime environment and its uncommon prototype mechanism. In this theses, we present in detail our abstraction and its correspondence with the JavaScript specification. Also, the static analysis algorithm used by our framework is described and demonstrated. (EN)


Ανάλυση ροής δεδομένων (EL)
Στατική ανάλυση (EL)
Εξαγωγή τύπων (EL)
Γλώσσες προγραμματισμού (EL)
Type inference (EN)
Static analysis (EN)
JavaScript (EN)
Programming languages (EN)
Dataflow analysis (EN)

Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού. (EL)

ETDFree-policy.xml (EN)




*Institutions are responsible for keeping their URLs functional (digital file, item page in repository site)