@article {67,
	title = {Synthesizing objects},
	journal = {Concurrency - Practice and Experience},
	volume = {12},
	number = {14},
	year = {2000},
	pages = {1347-1377},
	abstract = {This  paper  argues  that  the  current  OO  technology does not support
reuse  and  configurability  in  an  effective  way. This problem can be
addressed  by  augmenting  OO  Analysis and Design with feature modeling
and  by  applying generative implementation techniques. Feature modeling
allows  capturing  the  variability of domain concepts. Concrete concept
instances  can  then  be synthesized from abstract specifications. Using
a  simple  example  of a configurable list component, we demonstrate the
application  of  feature  modeling  and how to implement a feature model
as   a   generator.   We   introduce   the   concepts  of  configuration
repositories  and  configuration  generators  and  show how to implement
them   using   object-   oriented,   generic,  and  generative  language
mechanisms.  Interestingly,  a  configuration  repository  represents an
effective   approach  for  typing  synthesized  recursive  classes.  The
configuration  generator  utilizes  C++  template metaprogramming, which
enables its execution at compile-time.
},
	doi = {10.1002/1096-9128(20001210)12:14<1347::AID-CPE513>3.0.CO;2-N},
	url = {http://www3.interscience.wiley.com/cgi-bin/fulltext/76500719/PDFSTART},
	attachments = {http://gsd.uwaterloo.ca/sites/default/files/ecoop99_0.pdf},
	author = {Krzysztof Czarnecki and Ulrich, Eisenecker}
}