GPP The Generic Preprocessor
GPP The Generic Preprocessor
Tristan Miller
Austrian Research Institute for Artificial Intelligence
Freyung 6/3, 1010 Vienna, Austria
ORCID: 0000-0002-0749-1100
Denis Auroux
Department of Mathematics, Harvard University
arXiv:2008.00840v1 [cs.PL] 3 Aug 2020
2
Apart from these uses, GPP is occasionally cited as Dreiling, Alexander (July 2010). “Feature Mining:
previous or related work in scholarly publications Semiautomatische Transition von (Alt-)Systemen
on metaprogramming or compile-time variability of zu Software-Produktlinien”. Diploma thesis.
software (Apel et al., 2013; Baxter and Mehlich, Fakultt fr Informatik, Institut fr Technische
2001; Behringer, 2017; Blendinger, 2010; Dreiling, und Betriebliche Informationssysteme, Otto-von-
2010; Kstner et al., 2012; Lotoreychik and Shopyrin, Guericke-Universitt Magdeburg.
2006; Zmiry, 2016). Ernst, Michael D., Greg J. Badros, and David
Notkin (Dec. 2002). An Empirical Analysis of C
Preprocessor Use. IEEE Transactions on Software
Acknowledgments Engineering 28(12):1146–1170. issn: 0098-5589.
doi: 10.1109/TSE.2002.1158288.
Tristan Miller is supported by the Austrian Science
Gray, Peter D. (Dec. 2001). SUS An Object Ref-
Fund (FWF) under project M 2625-N31. Denis
erence Model for Distributing UNIX Super User
Auroux is partially supported by NSF grant DMS-
Privileges. Proceedings of the LISA 2001 15th Sys-
1937869 and by Simons Foundation grant #385573.
tems Administration Conference. The USENIX
The Austrian Research Institute for Artificial Intelli-
Association, pp. 15–18.
gence is supported by the Austrian Federal Ministry
Kstner, Christian et al. (June 2012). Type Checking
for Science, Research and Economy.
Annotation-Based Product Lines. ACM Trans-
actions on Software Engineering and Methodol-
References ogy 21(3):14:1–14:39. doi: 10 . 1145 / 2211616 .
2211617.
Apel, Sven et al. (Oct. 2013). Classic, Tool-Driven Kaye, Stephen et al. (2017). Waveform Definition
Variability Mechanisms. Feature-Oriented Soft- Language. Tech. rep. Pasadena, CA: Caltech Op-
ware Product Lines. Berlin/Heidelberg: Springer- tical Observatories.
Verlag. isbn: 978-3-642-37520-0. doi: 10.1007/ Keese Jr., W. M. (Sept. 1964). A Note on Auto-
978-3-642-37521-7_5. matic Generation of Documentation by Macro
Baxter, Ira D. and Michael Mehlich (2001). Pre- Assemblers. Technical memorandum TM-64-1031-
processor Conditional Removal by Simple Partial 1. Washington, DC: Bellcom, Inc.
Evaluation. Proceedings of the 8th Working Con- Layzell, P. J. (Jan. 1985). The History of Macro
ference on Reverse Engineering. IEEE, pp. 281– Processors in Programming Language Extensi-
290. isbn: 0-7695-1303-4. doi: 10 . 1109 / WCRE . bility. The Computer Journal 28(1):29–33. issn:
2001.957833. 0010-4620. doi: 10.1093/comjnl/28.1.29.
Behringer, Benjamin (July 2017). “Projectional Lotoreychik, V. Yu. and D. G. Shopyrin (2006).
Editing of Software Product Lines The PEoPL Metaprogrammirovaniye na osnove tekstovogo
Approach”. PhD thesis. Faculty of Sciences, Tech- preprotsessora [Text PreprocessorBased Metapro-
nology and Communication, Universit de Luxem- gramming]. Nauchno-Tehnicheskii Vestnik Infor-
bourg. matsionnykh Tekhnologii, Mekhaniki i Optiki [Sci-
Blendinger, Frank (Aug. 2010). “A Filesystem- entific and Technical Journal of Information Tech-
Based Approach to Support Product Line De- nologies, Mechanics and Optics] 6(2):57–65. issn:
velopment with Editable Views”. Diploma Thesis. 2226-1494.
Department of Computer Sciences 4, Friedrich- Mailund, Thomas (2019). Preprocessing. Introduc-
Alexander University Erlangen-Nuremberg. ing Markdown and Pandoc: Using Markup Lan-
Brown, P. J. (Oct. 1967). The ML/I Macro Proces- guage and Document Converter. Berkeley, CA:
sor. Communications of the ACM 10(10):618–623. Apress. isbn: 978-1-4842-5148-5. doi: 10.1007/
issn: 0001-0782. doi: 10.1145/363717.363746. 978-1-4842-5149-2_10.
Brown, P. J. (1969). A Survey of Macro Proces- McIlroy, M. Douglas (Apr. 1960). Macro Instruction
sors. Annual Review in Automatic Programming Extensions of Compiler Languages. Communica-
6:37–88. issn: 0066-4138. doi: 10.1016/0066- tions of the ACM 3(4):214–220. issn: 0001-0782.
4138(69)90001-9. doi: 10.1145/367177.367223.
3
Meissner, Loren P. (Sept. 1975). On Extending For-
tran Control Structures to Facilitate Structured
Programming. SIGPLAN Notices 10(9):19–30.
issn: 0362-1340. doi: 10.1145/987316.987320.
Mooers, Calvin N. and L. Peter Deutsch (Aug. 1965).
TRAC, a Text-Handling Language. ACM ’65:
Proceedings of the 20th National Conference. Ed.
by Lewis Winner. New York: Association for Com-
puting Machinery, pp. 229–246. isbn: 978-1-4503-
7495-8. doi: 10.1145/800197.806048.
Paddon, Michael (1993). Shake: A Portable Tool
for Generating Makefiles. AUUG ’93 Conference
Proceedings. Kensington, NSW, Australia: AUUG
Inc., pp. 145–156.
Pesch, R. H. (1992). Configurable Manuals. Confer-
ence Record on Crossing Frontiers, pp. 776–780.
isbn: 0-7803-0788-7. doi: 10.1109/IPCC.1992.
673146.
Schirm, Reiner and Peter Sprenger (2007). Der
Preprozessor. Messen, Steuern und Regeln mit
C-Control Pro: Praxisanwendungen, Schaltung-
stechnik und Programmierung. Poing, Germany:
Franzis. isbn: 978-3-7723-4097-0.
Seindal, Ren et al. (Dec. 2016). GNU M4, Version
1.4.18. Free Software Foundation.
Stallman, Richard M. and Zachary Weinberg (2020).
Overview. The C Preprocessor. GCC 10.1.0. Free
Software Foundation.
Strachey, C. (Jan. 1965). A General Purpose Macro-
generator. The Computer Journal 8(3):225–241.
issn: 0010-4620. doi: 10.1093/comjnl/8.3.225.
Swift, Theresa et al. (Oct. 2017). The XSB System,
Version 3.8.x, Volume 1: Programmer’s Manual.
Triance, J. M. (1980). Structured Programming
in COBOLThe Current Options. The Computer
Journal 23(3):194–200. doi: 10.1093/comjnl/
23.3.194.
Walden, David (2014). Macro Memories, 19642013.
TUGboat: The Communications of the TEX Users
Group 35(1):99–110.
Zmiry, Iddo E. (Apr. 2016). “Lola 0.064: A Pro-
gramming Language for Augmenting Program-
ming Languages”. MA thesis. Technion Israel
Institute of Technology.