M4 is a macro processor available on UNIX\dag and GCOS. Its primary use has been as a front end for Ratfor for those cases where parameterless macros are not adequately powerful. It has also been used for languages as disparate as C and Cobol. M4 is particularly suited for functional languages like Fortran, PL/I and C since macros are specified in a functional notation. M4 provides features seldom found even in much larger macro processors, including •arguments
•condition testing
•arithmetic capabilities
•string and substring functions
•file manipulation
This paper is a user's manual for M4.
%0 Report
%1 citeulike:6602212
%A Kernighan, Brian W.
%A Ritchie, Dennis M.
%C Murray Hill, New Jersey
%D 1977
%K m4 68n15-programming-languages 68n20-compilers-and-interpreters 68u15-text-processing-mathematical-typography 68n19-other-programming-paradigms
%T The M4 Macro Processor
%U http://wolfram.schneider.org/bsd/7thEdManVol2/m4/m4.pdf
%X M4 is a macro processor available on UNIX\dag and GCOS. Its primary use has been as a front end for Ratfor for those cases where parameterless macros are not adequately powerful. It has also been used for languages as disparate as C and Cobol. M4 is particularly suited for functional languages like Fortran, PL/I and C since macros are specified in a functional notation. M4 provides features seldom found even in much larger macro processors, including •arguments
•condition testing
•arithmetic capabilities
•string and substring functions
•file manipulation
This paper is a user's manual for M4.
@techreport{citeulike:6602212,
abstract = {{M4 is a macro processor available on UNIX{\dag} and GCOS. Its primary use has been as a front end for Ratfor for those cases where parameterless macros are not adequately powerful. It has also been used for languages as disparate as C and Cobol. M4 is particularly suited for functional languages like Fortran, PL/I and C since macros are specified in a functional notation. M4 provides features seldom found even in much larger macro processors, including •arguments
•condition testing
•arithmetic capabilities
•string and substring functions
•file manipulation
This paper is a user's manual for M4.}},
added-at = {2017-06-29T07:13:07.000+0200},
address = {Murray Hill, New Jersey},
author = {Kernighan, Brian W. and Ritchie, Dennis M.},
biburl = {https://www.bibsonomy.org/bibtex/234a2333598fb4739c234601c13ce58b0/gdmcbain},
citeulike-article-id = {6602212},
citeulike-attachment-1 = {kernighan_77_m4_33777.pdf; /pdf/user/gdmcbain/article/6602212/33777/kernighan_77_m4_33777.pdf; 1f810c83cb00d529ca0823940a7d42603ac6068f},
citeulike-linkout-0 = {http://wolfram.schneider.org/bsd/7thEdManVol2/m4/m4.pdf},
comment = {(private-note)cited in Wikipedia `m4 (computer language)'},
file = {kernighan_77_m4_33777.pdf},
institution = {Bell Laboratories},
interhash = {34f38111d80eb8e3f74eddb565be4000},
intrahash = {34a2333598fb4739c234601c13ce58b0},
keywords = {m4 68n15-programming-languages 68n20-compilers-and-interpreters 68u15-text-processing-mathematical-typography 68n19-other-programming-paradigms},
posted-at = {2010-01-29 04:46:40},
priority = {0},
timestamp = {2023-10-05T05:49:18.000+0200},
title = {The {M4} Macro Processor},
url = {http://wolfram.schneider.org/bsd/7thEdManVol2/m4/m4.pdf},
year = 1977
}