Computer programs are reaching every corner of human lives, becoming ever more important. This, in turn, raises the cost of program malfunctions. Preventing or diagnosing these malfunctions requires extensive program analysis, but not every program is amenable to a specific analysis technique. For example, symbolic execution does not scale on programs involving floating point numbers or strings, due to the limitations of contemporary SMT solvers. This thesis attempts to advance the state of the art by utilising program transformation to facilitate analysis. To this end, it first establishes that program transformation is indeed invaluable when used to enable analysis. Specifically, it, departing from convention, views static typing as a for...
Exploratory programming languages and development enjoy a reputation for enabling both rapid develo...
We show that abstract interpretation-based static program analysis can be made ecient and precise en...
Abstract. Safety-critical software in industry is typically subjected to both dy-namic testing as we...
Program verication is a promising approach to improving program quality, because it can search all p...
Software bugs are not going away. Millions of dollars and thousands of developer-hours are spent fin...
. BANE (the Berkeley Analysis Engine) is a publicly available toolkit for constructing type- and con...
Static analysis has commonly beenknown as a technique for finding violations of superficial stylisti...
Model transformation is seen as a promising approach to automate software development and verificati...
Static program analysis (generally based on computing fixpoints using the technique of abstract inte...
Software bugs are costly: they can have disastrous consequences on critical systems, but also on mor...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
use of program operations. They can be classified as either static or dynamic depending on when they...
In recent years, the use of symbolic analysis in systems for testing and verifying programs has exp...
Since the early days of the development of programming languages, people have been developing variou...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Exploratory programming languages and development enjoy a reputation for enabling both rapid develo...
We show that abstract interpretation-based static program analysis can be made ecient and precise en...
Abstract. Safety-critical software in industry is typically subjected to both dy-namic testing as we...
Program verication is a promising approach to improving program quality, because it can search all p...
Software bugs are not going away. Millions of dollars and thousands of developer-hours are spent fin...
. BANE (the Berkeley Analysis Engine) is a publicly available toolkit for constructing type- and con...
Static analysis has commonly beenknown as a technique for finding violations of superficial stylisti...
Model transformation is seen as a promising approach to automate software development and verificati...
Static program analysis (generally based on computing fixpoints using the technique of abstract inte...
Software bugs are costly: they can have disastrous consequences on critical systems, but also on mor...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
use of program operations. They can be classified as either static or dynamic depending on when they...
In recent years, the use of symbolic analysis in systems for testing and verifying programs has exp...
Since the early days of the development of programming languages, people have been developing variou...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Exploratory programming languages and development enjoy a reputation for enabling both rapid develo...
We show that abstract interpretation-based static program analysis can be made ecient and precise en...
Abstract. Safety-critical software in industry is typically subjected to both dy-namic testing as we...