Reasoning Tradeoffs in Languages with Enhanced Modularity Features
The continuous need for more ambitious, more complex, and more dependable software systems demands mechanisms to modularize such systems and reason about their correctness. The reasoning process is affected by the programming language’s features, like dynamic dispatching, implicit invocation and oblivious aspect weaving, and by how the programmer uses them. In this paper, by devising a unifying formal setting, we show how reasoning varies with the different language mechanisms, and provide sound rules for reasoning about programs that use these features. While analyzing these mechanisms we explore the main compromises or tradeoffs that led to them and explain the disciplines they impose and the strength of the reasoning conclusions one can derive in each case. Our contributions will benefit both language designers and programmers. Language designers will benefit from learning the effects of different modularity features on reasoning. Programmers will learn how to reason about programs that use such features.
Wed 16 MarDisplayed time zone: Belfast change
10:30 - 12:30 | Modular Design and ReasoningResearch Results at MODULARITY Chair(s): Hridesh Rajan Iowa State University | ||
10:30 30mTalk | Segregating Feature Interfaces to Support Software Product Line Maintenance Research Results Bruno B. P. Cafeo PUC-Rio, Brazil, Claus Hunsen University of Passau, Germany, Alessandro Garcia PUC-Rio, Brazil, Sven Apel University of Passau, Jaejoon Lee Lancaster University, UK DOI | ||
11:00 30mTalk | Reasoning Tradeoffs in Languages with Enhanced Modularity Features Research Results DOI | ||
11:30 30mTalk | Unveiling and Reasoning about Co-change Dependencies Research Results Marcos César de Oliveira MPOG, Brazil, Rodrigo Bonifácio University of Brasília, Brazil, Guilherme N. Ramos University of Brasília, Brazil, Márcio Ribeiro Federal University of Alagoas (UFAL) DOI | ||
12:00 30mTalk | The Expression Problem, Trivially! Research Results DOI |