Description: Prevalent software engineering practices have significantly increased the complexity and bloat of today’s software. This in turn has led to decreased performance and increased security vulnerabilities. The Chisel project seeks to effectively counter this trend.
Unlike conventional programming tools, which seek to preserve the program’s behavior, Chisel alters the program’s behavior by removing unnecessary functionality. The project is addressing a multitude of research problems such as how to specify the desired behavior, how to efficiently debloat programs in language-specific and language-independent ways, and what correctness guarantees to provide.
Chisel curently supports the C family of languages.
Description: The goal of program synthesis is to automatically synthesize a program that satisfies a given high-level specification. A central challenge in program synthesis concerns how to efficiently search for the desired program in the space of possible programs. It is well known that desired programs contain repetitive and predictable patterns. We have proposed a new approach to accelerate search-based program synthesis based on this observation. Our key insight is to learn a probabilistic model of programs and use it to guide the search.