Modern programs in languages like Haskell include a lot of information beyond what is strictly required for compilation, such as additional type information, unit tests and properties. This information is often used for post-compilation verification, by running the tests to verify that the code-as-written matches the specification provided by the types and properties. In this thesis, we explore ways of using this additional information to aid the developer during development. Firstly, we explore the integration of program synthesis into GHC compiler error messages using typed-hole suggestions to aid the completion of partial programs during development. Secondly, we present PropR, a tool based on type-driven synthesis aided by property-base...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Type systems allow programmers to communicate a partial specification of their program to the compil...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
Haskell is an influential functional programming language with an advanced type system that is capab...
Meta-programs are programs that generate other programs, but in weakly type-safe systems, type-check...
Automatic program repair (APR) regularly faces the challenge of overfitting patches — patches that p...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
© 2017 Copyright held by the owner/author(s). Meta-programs are programs that generate other program...
Contains fulltext : 30218.pdf (publisher's version ) (Open Access)Writing correct ...
Program synthesis, the automatic generation of programs from specification, promises to fundamentall...
Program synthesis, the automatic generation of programs from specification, promises to fundamentall...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
Type systems allow programmers to communicate a partial specification of their program to the compil...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
Haskell is an influential functional programming language with an advanced type system that is capab...
Meta-programs are programs that generate other programs, but in weakly type-safe systems, type-check...
Automatic program repair (APR) regularly faces the challenge of overfitting patches — patches that p...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
© 2017 Copyright held by the owner/author(s). Meta-programs are programs that generate other program...
Contains fulltext : 30218.pdf (publisher's version ) (Open Access)Writing correct ...
Program synthesis, the automatic generation of programs from specification, promises to fundamentall...
Program synthesis, the automatic generation of programs from specification, promises to fundamentall...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Static typing is one of the most prominent techniques in the design of programming languages for mak...