Beginning SAS programmers tend to learn the SAS macro language by simply follow the macro language syntax without understanding the mechanisms of macro language processing. This lack of understanding hinders novice programmers in developing a more flexible and advanced macro application. In this book, Burlew does a superb job of explaining to the book's readers, via figures and various examples, the mechanisms of the SAS macro facility, such as how SAS statements are transferred from the input stack to the macro processor and the DATA step compiler, what role the macro processor plays during the process, and how to utilize the interface between the macro facility and the SAS language. Reading this book can tremendously benefit all SAS programmers and enhance their understanding of SAS macro processing.
I have had the pleasure of reviewing Michele Burlew's third edition of her very popular book SAS Macro Programming Made Easy. Having reviewed the second edition of this book, which I thought to be excellent, I had no doubt that the third edition would be equally successful, if not more so–and I was not disappointed. Upon opening this book, one salient feature is immediately apparent: all of the SAS outputs are displayed using the Output Delivery System (ODS), making the book up-to-date and more attractive. I also appreciate the fact that Burlew has replaced all of her previous SAS/GRAPH examples with one of the new statistical graphics (SG) procedures. If you are not familiar with the new procedures such as SGPLOT or SGPANEL, you are in for a treat. Not only are these procedures included in the Base SAS product, but they are quite easy to use and produce spectacular looking output.
Although I write macros and include them in most of my books, I do have a bit of a 'mental block' when it comes to certain aspects of macro programming. So, I always want a copy of Burlew's macro book close by whenever I'm ready to write a slightly complex macro.
Most SAS programmers (myself included) shudder when they see more than one ampersand in a macro value (such as &§ion&n). Burlew makes the resolution of these macro values crystal clear by showing you exactly how the macro processor resolves these values.
My favorite feature of SAS Macro Programming Made Easy is the fact that every aspect of macro programming is illustrated with an easy-to-understand example. For me, and most of the SAS programmers I know, programming examples, followed by detailed explanations, are the best way to teach programming concepts.
I wholeheartedly agree with Burlew that most (if not all) macro programs should use keyword parameters rather than positional parameters. If you are not familiar with keyword parameters, the explanation in chapter 4 is invaluable.
There are some macro features new to SAS 9.4 that are highlighted in this book. In particular, I learned that you can define a local or global macro value as 'read only.' These values remain for an entire SAS session and cannot be changed. I saw some immediate uses for this new facility.
Even if you have a previous version of Burlew's macro book, you should consider updating to the latest edition–if not, put this book on your 'must-buy' list.