M Names

M uses names for variables, LOCK command arguments, labels on lines, and routine names. M names are alphanumeric and must start with an alphabetic character or a percent sign (%).

The percent sign can only appear as the first character in a name. By convention, names starting with percent signs are generally application-independent or distinguished in some similar way.

M does not reserve any names. That is, M always distinguishes keywords by context. Therefore, M permits a variable or a label called SET even though the language has a command called SET.

M names are case sensitive. That is, M treats ABC, Abc, ABc, AbC ABC, and abc as six different names. GT.M relies on RMS files to hold routines and, in certain circumstances, on the VMS Linker to manage routines. Because these VMS facilities are not case sensitive, GT.M makes an exception for routine names and always treats them as upper case.

M does not restrict the length of names in the main body of the standard. However, the portability section of the standard recommends limiting names to a maximum of eight (8) characters. GT.M effectively limits names to eight characters by ignoring any characters after the first eight.