Value range analysis is important in many software domains for ensuring the safety and reliability of a program and is a crucial facet in software development. The resulting information can be used in optimizations such as redundancy elimination, dead code elimination, instruction selection, and improve the safety of programs. This thesis explores the use of static analysis with type systems for value range analysis. Properly formalized type systems can provide mathematical guarantees for the correctness of a program at compile time. This thesis presents (1) a novel type system, the Narrowing and Widening Checker, (2) a whole-program type inference, the Value Inference for Integral Values, (3) a units-of-measurement type system, PUnits, and...
Java’s type system provides programmers with strong guarantees of type and memory safety, but there ...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
1 Scientific Activity Static analysis allows to formally prove properties of programs without having...
Interval analysis estimates the run-time values of numerical expressions in the source code by compu...
Since the early days of the development of programming languages, people have been developing variou...
Type inference can be considered a form of partial evaluation that only evaluates a program with res...
The complexity of software grows every year, and while there are many programming techniques and new...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
It has been widely known that a significant part of the bits are useless or even unused during the p...
Pluggable type systems is a powerful approach to add additional information on types, which can faci...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
Computer programs are reaching every corner of human lives, becoming ever more important. This, in t...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Dynamically-typed languages allow faster software development by not posing the type constraints. St...
In order to know if a program is correct a specification of its intended behaviour must be stated. T...
Java’s type system provides programmers with strong guarantees of type and memory safety, but there ...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
1 Scientific Activity Static analysis allows to formally prove properties of programs without having...
Interval analysis estimates the run-time values of numerical expressions in the source code by compu...
Since the early days of the development of programming languages, people have been developing variou...
Type inference can be considered a form of partial evaluation that only evaluates a program with res...
The complexity of software grows every year, and while there are many programming techniques and new...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
It has been widely known that a significant part of the bits are useless or even unused during the p...
Pluggable type systems is a powerful approach to add additional information on types, which can faci...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
Computer programs are reaching every corner of human lives, becoming ever more important. This, in t...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Dynamically-typed languages allow faster software development by not posing the type constraints. St...
In order to know if a program is correct a specification of its intended behaviour must be stated. T...
Java’s type system provides programmers with strong guarantees of type and memory safety, but there ...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
1 Scientific Activity Static analysis allows to formally prove properties of programs without having...