dc.contributor.advisor |
Σαγώνας, Κωνσταντίνος |
el |
dc.contributor.author |
Κασαμπαλής, Θεόδωρος Γ.
|
el |
dc.contributor.author |
Kasampalis, Theodoros G.
|
en |
dc.date.accessioned |
2012-09-24T10:55:56Z |
|
dc.date.available |
2012-09-24T10:55:56Z |
|
dc.date.copyright |
2012-07-25 |
- |
dc.date.issued |
2012-09-24 |
|
dc.date.submitted |
2012-07-25 |
- |
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/6663 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.11299 |
|
dc.description |
46 σ. |
el |
dc.description.abstract |
Η JavaScript είναι μία δημοφιλής γλώσσα προγραμματισμού, που χρησιμοποιείται κυρίως
για προγραμματισμό στον ιστό, αλλά και για προγραμματισμό ενικού σκοπού. Η γλώσσα
αυτή έχει δυναμικό και χαλαρό σύστημα τύπων, και κατά συνέπεια τα λάθη σε προγράμματα
JavaScript είναι δύσκολο να εντοπιστούν. Παρόλα αυτά, η υπάρχουσα υποστήριξη από
αυτόματα εργαλεία για τη γλώσσα είναι περιορισμένη. Η εργασία μας στοχεύει στη βελτίωση
αυτής της κατάστασης. Αναπτύσσουμε μία διαδικασία στατικής ανάλυσης για προγράμματα
JavaScript που καλύπτει όλα τα χαρακτηριστικά της γλώσσας. Η ανάλυσή μας είναι ικανή
να εξάγει πληροφορίες σχετικές με τους τύπους κατά την εκτέλεση, τους γράφους κλήσεων,
τη διάδοση εξαιρέσεων και τη δομή των αντικειμένων, χρησιμοποιώντας μια ικανοποιητική
αφαίρεση για ολόκληρο το runtime σύστημα της γλώσσας και για τον ασυνήθιστο μηχανισμό
προτοτύπων που διαθέτει. Σε αυτή τη διπλωματική, παρουσιάζουμε λεπτομερώς αυτή την
αφαίρεση και την αντιστοιχία της με την προδιαγραφή της γλώσσας. Επίσης, περιγράφουμε
τον αλγόριθμο στατικής ανάλυσης που χρησιμοποιήθηκε και δίνουμε ενδεικτικά παραδείγματα. |
el |
dc.description.abstract |
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 |
dc.description.statementofresponsibility |
Θεόδωρος Γ. Κασαμπαλής |
el |
dc.language.iso |
el |
en |
dc.rights |
ETDFree-policy.xml |
en |
dc.subject |
Στατική ανάλυση |
el |
dc.subject |
Εξαγωγή τύπων |
el |
dc.subject |
Ανάλυση ροής δεδομένων |
el |
dc.subject |
Γλώσσες προγραμματισμού |
el |
dc.subject |
Static analysis |
en |
dc.subject |
Type inference |
en |
dc.subject |
Dataflow analysis |
en |
dc.subject |
JavaScript |
en |
dc.subject |
Programming languages |
en |
dc.title |
Στατική Ανάλυση για Εύρεση Λαθών σε Προγράμματα JavaScript |
el |
dc.title.alternative |
Static Analysis for Error Detection in JavaScript Programs |
en |
dc.type |
bachelorThesis |
el (en) |
dc.date.accepted |
2012-07-23 |
- |
dc.date.modified |
2012-07-25 |
- |
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 |
2012-09-24 |
- |
dc.date.recordmanipulation.recordmodified |
2012-09-24 |
- |