On Sat, Jul 13, 2024 at 2:50 PM John Levine <johnl(a)taugh.com> wrote:
The more relevant question is how they used the
macros. If the macros
were used consistently for semantically higher level things, the
translator can use the semantics of the macros when translating.
There is an assembly macro for each of the user-mode VMS system services
These are
wrappers around the RTL subroutines. So, for example, the $QIO
(queue I/O) macro is a wrapper around a call to the SYS$QIO runtime library
routine. There is a similar set of macros for the RMS (record management
services--the VMS file I/O system) data structures and routines.
The VAX MACRO compiler could perhaps use the semantics of the macros when
translating, but it doesn't. It has to support semantics-free macro
expansion since users can write their own macros, so there is little point
in building semantic knowledge into the translator.
-Paul W.