@inbook{apel2013feature,
  author       = {Sven Apel and Don Batory and Christian Kästner and Gunter Saake},
  booktitle    = {Feature-Oriented Software Product Lines},
  title        = {Classic, Tool-Driven Variability Mechanisms},
  publisher    = {Springer-Verlag},
  year	       = 2013,
  address      = {Berlin\slash Heidelberg},
  month	       = oct,
  doi	       = {10.1007/978-3-642-37521-7_5},
  isbn	       = {978-3-642-37520-0},
}

@inproceedings{baxter2001preprocessor,
  author       = {Ira D. Baxter and Michael Mehlich},
  title	       = {Preprocessor Conditional Removal by Simple Partial Evaluation},
  booktitle    = {Proceedings of the 8th {Working} {Conference} on {Reverse} {Engineering}},
  year	       = 2001,
  pages	       = {281--290},
  publisher    = {IEEE},
  isbn	       = {0-7695-1303-4},
  issn	       = {1095-1350},
  doi	       = {10.1109/WCRE.2001.957833},
}

@phdthesis{behringer2017projectional,
  author       = {Benjamin Behringer},
  title	       = {Projectional Editing of Software Product Lines~– {The} {PEoPL} Approach},
  school       = {Faculty of Sciences, Technology and Communication, Université de Luxembourg},
  year	       = 2017,
  month	       = jul,
  pdf	       = {https://orbilu.uni.lu/bitstream/10993/31982/1/DissertationBehringerOnePage.pdf},
}

@mastersthesis{blendinger2010filesystem,
  author       = {Frank Blendinger},
  title	       = {A Filesystem-Based Approach to Support Product Line Development with Editable Views},
  school       = {Department of Computer Sciences 4, Friedrich-Alexander University Erlangen-Nuremberg},
  year	       = 2010,
  type	       = {Diploma Thesis},
  month	       = aug,
  pdf	       = {http://www4.cs.fau.de/~wanja/documents/frank.blendinger-a.filesystem.based.approach.to.support.product.line.development.with.editable.views.pdf},
}

@article{brown1967mli,
  author       = {Brown, P. J.},
  title	       = {The {ML/I} Macro Processor},
  journal      = {Communications of the ACM},
  year	       = 1967,
  volume       = 10,
  number       = 10,
  pages	       = {618--623},
  month	       = oct,
  issn	       = {0001-0782},
  doi	       = {10.1145/363717.363746},
}

@article{brown1969survey,
  author       = {P. J. Brown},
  title	       = {A Survey of Macro Processors},
  journal      = {Annual Review in Automatic Programming},
  year	       = 1969,
  volume       = 6,
  pages	       = {37--88},
  issn	       = {0066-4138},
  doi	       = {10.1016/0066-4138(69)90001-9},
}

@manual{conrad2013c-control,
  title	       = {C-Control Pro IDE},
  author       = {{Conrad Electronic}},
  year	       = 2013,
}

@mastersthesis{dreiling2010feature,
  author       = {Alexander Dreiling},
  title	       = {{Feature Mining: Semiautomatische Transition von \mbox{(Alt-)}Systemen zu Software-Produktlinien}},
  school       = {Fakultät für Informatik, Institut für Technische und Betriebliche Informationssysteme, Otto-von-Guericke-Universität Magdeburg},
  year	       = 2010,
  type	       = {Diploma thesis},
  month	       = jul,
  pdf	       = {http://www.cs.cmu.edu/~ckaestne/pdf/thesisdreiling.pdf},
}

@article{ernst2002empirical,
  author       = {Ernst, Michael D. and Badros, Greg J. and Notkin, David},
  title	       = {An Empirical Analysis of {C} {Preprocessor} Use},
  journal      = {IEEE Transactions on Software Engineering},
  year	       = 2002,
  volume       = 28,
  number       = 12,
  pages	       = {1146--1170},
  month	       = dec,
  issn	       = {0098-5589},
  doi	       = {10.1109/TSE.2002.1158288},
}

@inproceedings{gray2001sus,
  author       = {Peter D. Gray},
  title	       = {{SUS}~– {An} Object Reference Model for Distributing {UNIX} Super User Privileges},
  booktitle    = {Proceedings of the {LISA} 2001 15th {Systems} {Administration} {Conference}},
  year	       = 2001,
  pages	       = {15--18},
  month	       = dec,
  publisher    = {The USENIX Association},
  pdf	       = {https://www.usenix.org/legacy/events/lisa2001/tech/full_papers/gray/gray.pdf},
}

@article{kaestner2012type,
  author       = {Christian Kästner and Sven Apel and Thomas Thüm and Gunter Saake},
  title	       = {Type Checking Annotation-Based Product Lines},
  journal      = {ACM Transactions on Software Engineering and Methodology},
  year	       = 2012,
  number       = 3,
  pages	       = {14:1--14:39},
  month	       = jun,
  doi	       = {10.1145/2211616.2211617},
  volume       = 21,
}

@techreport{kaye2017waveform,
  author       = {Stephen Kaye and Roger Smith and David Hale and Peter Mao},
  title	       = {{Waveform Definition Language}},
  institution  = {Caltech Optical Observatories},
  year	       = 2017,
  address      = {Pasadena, CA},
  pdf	       = {http://www.astro.caltech.edu/noir_plone_detect/publications/2017-sdw-waveform-definition-language/2017%20SDW%20Waveform%20Definition%20Language%20S.Kaye%20final.pdf.1},
}

@techreport{keese1964note,
  author       = {Keese, Jr., W. M.},
  title	       = {A Note on Automatic Generation of Documentation by Macro Assemblers},
  institution  = {Bellcom, Inc.},
  year	       = 1964,
  number       = {TM-64-1031-1},
  address      = {Washington, DC},
  month	       = sep,
  type         = {Technical memorandum},
  pdf	       = {https://archive.org/download/nasa_techdoc_19790073657/19790073657.pdf},
}

@article{layzell1985history,
  author       = {Layzell, P. J.},
  title	       = {The History of Macro Processors in Programming Language Extensibility},
  journal      = {The Computer Journal},
  year	       = 1985,
  volume       = 28,
  number       = 1,
  pages	       = {29--33},
  month	       = jan,
  issn	       = {0010-4620},
  doi	       = {10.1093/comjnl/28.1.29},
}

@article{lotoreychik2006metaprogrammirovaniye,
  author       = {Lotoreychik, V. Yu. and Shopyrin, D. G.},
  title	       = {Metaprogrammirovaniye na osnove tekstovogo preprotsessora [{Text} Preprocessor–Based Metaprogramming]},
  journal      = {Nauchno-Tehnicheskii Vestnik Informatsionnykh Tekhnologii, Mekhaniki i Optiki [Scientific and Technical Journal of Information Technologies, Mechanics and Optics]},
  year	       = 2006,
  volume       = 6,
  number       = 2,
  pages	       = {57--65},
  pdf	       = {https://ntv.ifmo.ru/file/journal/117.pdf},
  issn	       = {2226-1494},
}

@inbook{mailund2019introducing,
  author       = {Thomas Mailund},
  booktitle    = {Introducing {Markdown} and {Pandoc}: Using Markup Language and Document Converter},
  title        = {Preprocessing},
  publisher    = {Apress},
  year	       = 2019,
  address      = {Berkeley, CA},
  isbn	       = {978-1-4842-5148-5},
  doi	       = {10.1007/978-1-4842-5149-2_10},
}

@article{mcilroy1960macro,
  author       = {McIlroy, M. Douglas},
  title	       = {Macro Instruction Extensions of Compiler Languages},
  journal      = {Communications of the ACM},
  year	       = 1960,
  volume       = 3,
  number       = 4,
  pages	       = {214--220},
  month	       = apr,
  issn	       = {0001-0782},
  doi	       = {10.1145/367177.367223},
}

@article{meissner1975extending,
  author       = {Meissner, Loren P.},
  title	       = {On Extending {Fortran} Control Structures to Facilitate Structured Programming},
  journal      = {SIGPLAN Notices},
  year	       = 1975,
  volume       = 10,
  number       = 9,
  pages	       = {19--30},
  month	       = sep,
  issn	       = {0362-1340},
  doi	       = {10.1145/987316.987320},
}

@inproceedings{mooers1965trac,
  author       = {Calvin N. Mooers and L. Peter Deutsch},
  title	       = {{TRAC}, a Text-Handling Language},
  booktitle    = {{ACM} '65: {Proceedings} of the 20th {National} {Conference}},
  year	       = 1965,
  editor       = {Lewis Winner},
  pages	       = {229--246},
  month	       = aug,
  address      = {New York},
  publisher    = {Association for Computing Machinery},
  isbn	       = {978-1-4503-7495-8},
  doi	       = {10.1145/800197.806048},
}

@inproceedings{paddon1993shake,
  author       = {Michael Paddon},
  title	       = {Shake: {A} Portable Tool for Generating {Makefiles}},
  booktitle    = {{AUUG} '93 {Conference} Proceedings},
  year	       = 1993,
  pages	       = {145--156},
  address      = {Kensington, NSW, Australia},
  publisher    = {AUUG Inc.},
}

@inproceedings{pesch1992configurable,
  author       = {R. H. Pesch},
  title	       = {Configurable Manuals},
  booktitle    = {Conference Record on {Crossing} {Frontiers}},
  year	       = 1992,
  pages	       = {776--780},
  isbn	       = {0-7803-0788-7},
  doi	       = {10.1109/IPCC.1992.673146},
}

@inbook{schirm2007messen,
  author       = {Reiner Schirm and Peter Sprenger},
  booktitle    = {{Messen, Steuern und Regeln mit C-Control Pro: Praxisanwendungen, Schaltungstechnik und Programmierung}},
  title        = {Der {Preprozessor}},
  publisher    = {Franzis},
  year	       = 2007,
  address      = {Poing, Germany},
  isbn	       = {978-3-7723-4097-0},
}

@book{seindal2016m4,
  author       = {René Seindal and François Pinard and Gary V. Vaughan and Eric Blake},
  title	       = {GNU M4, Version 1.4.18},
  publisher    = {Free Software Foundation},
  year	       = 2016,
  month	       = dec,
  pdf	       = {https://www.gnu.org/savannah-checkouts/gnu/m4/manual/m4-1.4.18/m4.pdf},
}

@inbook{stallman2020c,
  author       = {Richard M. Stallman and Zachary Weinberg},
  booktitle    = {The {C} {Preprocessor}},
  title        = {Overview},
  publisher    = {Free Software Foundation},
  year	       = 2020,
  edition      = {{GCC} 10.1.0},
  pdf	       = {https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp.pdf},
}

@article{strachey1965general,
  author       = {Strachey, C.},
  title	       = {A General Purpose Macrogenerator},
  journal      = {The Computer Journal},
  year	       = 1965,
  volume       = 8,
  number       = 3,
  pages	       = {225--241},
  month	       = jan,
  issn	       = {0010-4620},
  doi	       = {10.1093/comjnl/8.3.225},
}

@manual{swift2017xsb,
  title	       = {The {XSB} {System}, Version 3.8.x, Volume 1: Programmer's Manual},
  author       = {Theresa Swift and David S. Warren and Konstantinos Sagonas and Juliana Freire and Prasad Rao and Baoqiu Cui and Ernie Johnson and Luis de Castro and Rui F. Marques and Diptikalyan Saha and Steve Dawson and Michael Kifer},
  month	       = oct,
  year	       = 2017,
  pdf	       = {http://xsb.sourceforge.net/manual1/manual1.pdf},
}

@article{triance1980structured,
  author       = {Triance, J. M.},
  title	       = {Structured Programming in {COBOL}—The Current Options},
  year	       = 1980,
  volume       = 23,
  number       = 3,
  pages	       = {194--200},
  doi	       = {10.1093/comjnl/23.3.194},
  journal      = {The Computer Journal},
}

@article{walden2014macro,
  author       = {David Walden},
  title	       = {Macro Memories, 1964–2013},
  journal      = {TUGboat: The Communications of the {\TeX}{} Users Group},
  year	       = 2014,
  volume       = 35,
  number       = 1,
  pages	       = {99--110},
  pdf	       = {http://tug2.tug.org/TUGboat/tb35-1/tb109walden.pdf},
}

@mastersthesis{zmiry2016lola,
  author       = {Iddo E. Zmiry},
  title	       = {Lola 0.064: {A} Programming Language for Augmenting Programming Languages},
  school       = {Technion – Israel Institute of Technology},
  year	       = 2016,
  month	       = apr,
  pdf          = {http://www.cs.technion.ac.il/users/wwwb/cgi-bin/tr-get.cgi/2016/MSC/MSC-2016-12.pdf},
}

@article{лоторейчик2006метапрограммирование,
  author       = {Лоторейчик, В. Ю. and Шопырин, Д. Г.},
  title	       = {Метапрограммирование на основе текстового препроцессора},
  journal      = {Научно-технический вестник информационных технологий, механики и оптики},
  year	       = 2006,
  number       = 25,
  pages	       = {57--65},
  pdf	       = {https://cyberleninka.ru/article/n/metaprogrammirovanie-na-osnove-tekstovogo-preprotsessora/pdf},
  issn	       = {2226-1494},
}


