SMAL is a Symbolic Macro Assembly Language. The assembler has no built-in knowledge of any machine’s instruction set. In addition to providing the basic assembly functions the SMAL assembler provides a powerful macro facility and a linkage editor facility supporting separate assembly, subprogram libraries, and shared common blocks. Assembler and linker output may be either absolute or relocatable, and the object language is encoded in an easily interpreted textual form.