Charles Mills noted...
> Date: Sat, 9 Dec 2017 17:58:15 -0800 > From: Charles Mills <[email protected]> > PL/I has a very powerful "macro" (preprocessor, I think they call it) > facility. I don't know it well at all, but in my impression it is more > powerful than either assembler or C macros. I agree that PL/I's macro preprocessor is indeed powerful; but it and all other macro facilities I know of lack a key feature of HLASM's conditional assembly and macro facility: an intimate interaction between the base language and the macro language. While the HLASM facility is a bit primitive in some ways, it can still do things that no other can. A simple example is that you can access attributes of base-language symbols; another is that you can assign your own attributes to symbols and use those attributes to generate tailored instruction sequences. Another is that your macros can invoke external functions to extend its arithmetic and string-handling capabilities, as well as to access the environment in which the assembler is executing. I've given a macro tutorial several times at SHARE (a fast 2 hours) that has some case studies with examples of the power of this base- and macro-language interaction HLASM's conditional assembly and macro facilities. If you have access to SHARE proceedings you can find it there. John Ehrman
