University of Twente Student Theses
Analist: A Tool for Improved Static Type Analysis for Ruby
Coenraad, T (2018) Analist: A Tool for Improved Static Type Analysis for Ruby.
PDF
535kB |
Abstract: | Dynamically typed languages pose both inherent advantages and disadvantages towards developers. The lack of a static typing system results in having lots of freedom during development, at the cost of having to deal with typical run-time errors, like type errors, argument errors and no method errors. Earlier research has been conducted to deal with this type uncertainty, e.g., by developing analytic tools that can validate statically a dynamically typed code base. However, most of the time these tools give many false positives, therefore, they are not helpful for a developer to use in a real-world scenario. In this research a tool named Analist is developed for the Ruby language, focused on using a pragmatic approach. This means that wherever assumptions (e.g., when derived from the database schema file) are quite safe to be made, this is done. By design, this cannot be as complete as previously developed tools, yet it turns out to be a promising way of preventing programmer errors to occur as both synthetical benchmarks and an experiment with developers confirm. This balance makes Analist a tool that is useful for developers. In future work one can consider to add more Ruby type definitions to Analist to make it even more useful, as for this research the span of what can be analyzed correctly was clearly limited. |
Item Type: | Essay (Master) |
Clients: | Moneybird, Enschede, the Netherlands |
Faculty: | EEMCS: Electrical Engineering, Mathematics and Computer Science |
Subject: | 54 computer science |
Programme: | Computer Science MSc (60300) |
Link to this item: | https://purl.utwente.nl/essays/74533 |
Export this item as: | BibTeX EndNote HTML Citation Reference Manager |
Repository Staff Only: item control page