• Keine Ergebnisse gefunden

PROGRAM TRANSLATOR: EXTENDED ALGOL

Extended ALGOL Compiler.

• Storage protection for data arrays and pro-gram segments is provided by the hardware.

. 12 Description

The same registers are used for indexing and arithmetic operations .

The Extended ALGOL Compiler is a s·ingle-pass routine that translates source programs written in the Extended ALGOL language (see Section 203: 161) into B 5500 object programs in segmen-ted, relocatable machine-language form. The Compiler occupies about 10,000 locations on Stor-age Drum 1 or 10 tracks of the Disk File, and is called into core storage by the Master Control Program when a header card indicates that an ALGOL source program is to be compiled and added to the program library, or checked for syn-tactic errors without compilation.

The ALGOL compiler delivers translation speeds ranging between 600 and 800 source program cards (or up to 2500 magnetic tape card images) per minute. Object program efficiencies of 90 to 95 percent relative to the best hand coding have been achieved, according to Burroughs.

The combination of fast translation and high ob-ject program efficiency was the primary goal in the design of the B 5500 hardware and the Master Control Program. Among the factors that contri-bute to the efficiency of the B 5500 ALGOL com-piler are the following:

• Recursive use of procedures is implemented at the hardware level. (The ALGOL Com-piler .itself consists of about 90 procedures, each of which can use any other procedure, including itself.)

• Fixed-point and floating-point numbers are represented in the same form, so

conver-sions and checks for mixed arithmetic are unnecessary.

• Any Input/Output Channel can reference any peripheral device.

• The B 5500 Character Mode facilitates editing, scanning, and radix conversions, while the Word Mode permits efficient arithmetic and logical operations.

• Automatic temporary storage for intermediate results and subroutine parameters is pro-vided by the stack.

• Overlays of program segments and data ar-rays are handled automatically by the Proc-essor and the MCP.

Floating-point numbers can be automatically converted to integers during indexing and storing operations.

Literals between and 0 and +1,023 can be incorporated directly into the program stream.

Comprehensive hardware facilities are pro-vided for detection and servicing of interrupt conditions.

Segmentation of the object program is performed by the compiler. Each ALGOL block becomes a separate program segment that is referenced by a Descriptor in the Program Reference Table.

The Descriptor specifies the current drum or disk and core addresses of the segment and indicates whether or not it is currently loaded in core stor-age. No segment may exceed 1,023 words in length, so very long source language blocks may have to be divided into sub-blocks by the pro-grammer. The use of short blocks is recom-mended for efficiency in storage allocation and in multiprogramming situations. The main restric-tion on overall object program size is the Pro-gram Reference Table, which is limited to 1,023 entries. The ALGOL Compiler itself requires about 650 PRT entries.

The compiler has access to the procedures, or subroutines, which are stored on the Program Library Tape in ALGOL source-language form.

When a procedure is required, it is called from the library and translated along with the source program. This system facilitates multiprogram-ming and makes possible a listing of the complete source program, including all procedures; it also means that a single frequently-used procedure may require multiple storage areas (one area for each program being run at the same time which uses the procedure).

Input-output editing and format control operations are carried out by standard routines. Intrinsic functions are called in at object time, except for ABS, SIGN, and ENTlER, which are inserted in-line at compile time. No instructions are gen-erated for REAL and BOOLEAN; they are tem-porary declarations to prevent error messages at compile time.

©

1965 AUERBACH Corporation and AUERBACH Info, Inc. 10/65

· 12 Description (Contd.)

Diagnostics can be incorporated into the object program by the source-language declarations MONITOR and DUMP, which are described in Paragraphs. 451 and .452. The printouts pro-duced by these declarations facilitate source-language debugging. This facility, together with the high translation speeds of the B 5500, makes it practical to do all debugging in the ALGOL language and retranslate the whole program at each stage of the debugging process.

· 13 Originator: ..•••. .231 Maximum number

of source .31 Object Program .311 Language name: ..•

Extended ALGOL for the Burroughs B 5500, Section 203:161.

none.

punched cards or mag-netic tape.

header card first, then source deck in logical sequence; all declara-tions for a block must appear at the head of the block, and proce-dures and switches must be declared be-fore they can be used

(unless a FORWARD reference is used).

limited by target compu-ter storage,

fully relocatable . magnetic tape or disc

storage.

.32 Conventions

.321 Standard inclusions: none

.322 Compatible with: Master Control Program .33 Documentation

Subject Provision

Source program: optional listing.

Object program: .•• optional listing.

Storage map: ••••. none.

Restart point list: •• none.

Language errors: •. listing.

.4 TRANSLA TING PROCEDURE .41 Phases and Passes:

.42 Optional Modes .421 Translate:

... .

.432 Fast unoptimized translate: • . . . .433 Short translate on

restricted pro-gram:

...

.44 Bulk Translating: . • .45 Program Diagnostics .451 Tracers: •.•..•• cause the identifier and current value of each listed variable to be writ-ten on the designated file each time it is used as a

"left-hand part" in an as-signment statement.

Listed switch identifiers, label identifiers, and pro-cedure identifiers used as function designators are also written each time they are encountered in the object program.

DUMP declarations cause specified data to be writ-ten on a designated file whenever a labelled state-ment has been executed a

specified number of times.

The output may include:

variable identifiers with their current values, ar-ray identifiers with cur-rent values· of all their elements, and statement labels with tallies of the number of times they have been executed.

(Contd.)

PROGRAM TRANSLATOR: EXTENDED ALGOL 203: 181. 453

.453 Dumps:

...

not incorporated in source .52 Translation Time programs.

.521 Normal translating:. approx. 600 to 800

source-.46 Translator Libra!X program cards per

min-ute (up to 2,500 source-. 461 Identity: . . . B 5500 Program Library. program card images per

• 462 User restriction: .. general. minute when

I/o

is via

.463 Form - magnetic tape).

Storage medium: . magnetic tape or disc file.

Organization: multi-file tape and disc • 522 Checking only: . . . • same as above times.

libraries.

.464 Contents - • 53 Optimizing Data: .• no explicit data.

Routines: .••.•• yes; closed procedures in manufacturer recommends

source language. coding in long statements

Functions:

. ....

yes . (to reduce number of

un-Data descriptions: no. necessary storage

ac-Compiled cesses) and short blocks

programs:

....

yes, in relocatablemachine (to facilitate

segmenta-code. tion).

.465 Librarianship - allocation of target

com-Insertion: • • • • . . by MCP, using control puter. storage and

input-cards. output devices is

per-Amendment: •.•. by MCP, using control formed by the MCP.

cards.

Call procedure: .• use of name in source .54 Object Program

program. Periormance: .•. according to Burroughs,

typical object program

.5 TRANSLATOR PERFORMANCE efficiency is 90 to 95%

relative to best hand

.51 Object Program Space coding for both time and

space.

.511 Fixed overhead

-Name Space .6 COMPUTER CONFIGURATIONS

Master Control

Program: •••.. 1,600 core locations.

.61 Translating Computer 15,000 drum locations.

1,000 Disk File segments.

.611 Minimum configur-Read-Write

routine: . • . . . included in MCP on drum ation: • . . . • • • • . any B 5500 system; see

or disc storage. System Conn.guration,

Section 203:031.

File Control .612

Larger configuration routine:

.. ...

included in MCP on drum

advantages: •.•.• magnetic tape and/or disc

or disc storage. storage input, output,'

.512 Space required for

each input-output and handling of the

pro-file: . • • . . . • . • . number and size of buffer gram library.

areas for each file are

specified in FILE declar- .62 Target Computer ations.

.513 Approximate expan- .621 Minimum

configur-sion of proced- ation: . • . . . . • . • any B 5500 system.

ures: ••.••.••. varies widely; the follow- .622 Usable extra

ing examples show number facilities: ..•.•• all; allocated automatically

of program syllables gen- by the MCP.

erated by specific ALGOL

statements. .7 ERRORS! CHECKS,

Statement Program syllables AND ACTION: ••. checks provided will catch

FORI ~STEP nearly all syntactic

1 UNTIL 100 DO: 14. errors.

J ~J +2: . • . . 5.

C [I] <E-A [I] + .8 ALTERNATIVE

B [J]: . . . • . . . 9. TRANSLA TORS: none.

©

1965 AUERBACH Corporation and AUERBACH Info, Inc. 10/65

BURROUGHS B 5500