A Tutorial on Feature Oriented Programming and Product-Lines
Abstract
Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis. The goal is to specify a target program in terms of the features that it offers, and to synthesize an efficient program that meets these specifications. FOP has been used to develop product-lines in disparate domains, including compilers for extensible Java dialects [3], fire support simulators for the U.S. Army [5], high-performance network protocols [1], and program verification tools [14].