Virtual Separation of Concerns: Toward Preprocessors 2.0

When: Monday, October 24, 2011 - 4:00pm - 4:50pm
Where: KEC 1001

Speaker Information

Speaker Name: Christian Kastner
Speaker Title/Description:
   Post-Doctoral Researcher
   Group for Programming Languages and Software Engineering
   Philipps University Marburg, Germany

Speaker Biography: Christian Kastner is a PostDoc at the Group for Programming Languages and Software Engineering of the Philipps University Marburg, Germany. He received his Ph.D in Computer Science in 2010 from the University of Magdeburg, Germany for his work on virtual separation of concerns. For his dissertation, he received the best-dissertation award from the German Computer Science Association (GI). His research focuses on correctness and understanding of systems with variability, including work on implementation mechanisms, tools, variability-aware analysis, type systems, feature interactions, and refactoring. He is the author or coauthor of over a fifty peer-reviewed scientific publications.

Despite much research on sophisticated programming languages and generators to 
implement software product lines, practitioners still implement variability in 
most industrial product lines with the   preprocessor. By annotating code 
fragments with #ifdef and #endif directives, different programs with or without 
these fragments can be created. However, despite their common use in practice, 
preprocessors are heavily criticized for their negative effect on code quality 
and maintainability: Preprocessors neglect separation of concerns, are prone to 
introduce subtle errors, and can entirely obfuscate the source code. We discuss 
how to tame preprocessor variability. We show how already simple tool support, 
including views and visualizations, emulates separation of concerns virtually, 
eliminates common pitfalls, and supports developers in program understanding 
tasks. Additionally, we explore strategies to detect and prevent errors that 
show up only in specific configurations. To that end, we have developed a 
variability-aware type system that can check entire product lines without 
generating all configurations. We report experience from scaling our tools to 
the Linux kernel with 6 million lines of code and 10000 configurations options. 
Our goal is to parse and type checking all up to 2^10000 configurations of the 
Linux kernel in one pass.
_______________________________________________
Colloquium mailing list
[email protected]
https://secure.engr.oregonstate.edu/mailman/listinfo/colloquium

Reply via email to