Browse Prior Art Database

Assembler PL/1 Dual Language Modules

IP.com Disclosure Number: IPCOM000076775D
Original Publication Date: 1972-Apr-01
Included in the Prior Art Database: 2005-Feb-24
Document File: 2 page(s) / 14K

Publishing Venue

IBM

Related People

Rosen, MH: AUTHOR [+2]

Abstract

This is a method of constructing a single-source module for incorporation into either Assembler or PL/1 source programs. All Lines of code written in PL/1 are ignored by the Assembler and all BAL coding is ignored by the PL/1 complier. The following is an example of a dual language module designed as an assembler macro and simultaneously as a PL/1 module to be incorporated by the INCLUDE facility. (Image Omitted)

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 54% of the total text.

Page 1 of 2

Assembler PL/1 Dual Language Modules

This is a method of constructing a single-source module for incorporation into either Assembler or PL/1 source programs. All Lines of code written in PL/1 are ignored by the Assembler and all BAL coding is ignored by the PL/1 complier. The following is an example of a dual language module designed as an assembler macro and simultaneously as a PL/1 module to be incorporated by the INCLUDE facility.

(Image Omitted)

Card #1 is the first card in a dual-language module using this technique. It has been found to be acceptable to the assembler and it is ignored by that program. The "*" in column 1 defines the remaining data as comment information; hence, it is ignored.

The "%" is significant to the PL/1 compiler, indicating the start of a macro- preprocessor statement. (Note - this phase is analogous to the macro-generated phase of the assembler. Source code is incorporated into the program from a library identified through job control, and compiled as though it were physically part of the input deck at the point of the request.)

Columns 3-4 indicate the start of a PL/1 comment. Any information up to and including a "*/" sequence will be ignored.

Cards #2-4 constitute normal assembler macro-language statements, including parameter analysis, generated code, and conditional statements. MEXIT is permitted, but MEND is not. The combination "*/" is prohibited.

Card #5 is of special significance. It:

a) tells the assembler to scan the module for the sequence "SKIP" in columns 1-5 and to resume the macro generation at that point, ignoring all data in between.

b) indicates by the "*/" combination, the end of the PL/l comment begun in card #1.

c) indicates the ";" the end of the micro-preprocessor statement, begun by the % in card #1. Since the only data in the statement was comment-information, the result is that no code is produced, and no printlines appear on the final listing.

Cards #6-8 are normal PL/1 statements used to declare the record definition...