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 

Reply via email to