This was a repeat of a session originally presented in San Francisco a year and a half ago. I must have missed it.
This session wasn't so much about MVS subsystems as it was about writing any code in C that heretofore required assembler talents. Simon Holmgaard is from Legent-CMA in Denmark, and he seemed to be speaking from experience.
Why would you want to code in C rather than assembler? The code is easier to maintain, that's why. Paradoxically, he complained that "good assembler programmers are hard to get", but later admitted that the successful systems programmer in C still has to know assembler.
Most of the session involved looking at code pieces line-by-line. Not many people were tracking this too well; I think they didn't know much C.
Simon lamented the fact that the DSECT2C utility needs a lot of hand holding. DSECT2C is a program that reads assembler DSECTs (record or control block definitions) and cranks out C-equivalent structure definitions. The problem that DSECT2C has is that it cannot tell from looking at an assembler DSECT what kind of data a pointer points to. So in the C structure, it defines a pointer as "VOID *", which in C means "a pointer to anything". If you write code in C which uses a pointer of type VOID, you have to explicitly tell C what kind of object you are using it to point to, every time you use it. The fix is to hand modify the structure that DSECT2C generates so that you won't have to keep using explicit casts.