Browse Prior Art Database

The Data Reconfiguration Service -- Compiler/Interpreter Implementation Notes (RFC0194)

IP.com Disclosure Number: IPCOM000004171D
Original Publication Date: 1971-Jul-01
Included in the Prior Art Database: 2019-Feb-10
Document File: 18 page(s) / 18K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

V. Cerf: AUTHOR [+4]

Related Documents

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

Vint Cerf - UCLA

Eric Harslem - Rand

RFC 194 John Heafner - Rand NIC 7139 Category: D.4 Bob Metcalfe - MIT Updates: None Obsoletes: None Jim White - UCSB

THE DATA RECONFIGURATION SERVICE --

COMPILER/INTERPRETER IMPLEMENTATION NOTES

I. NEW FEATURES OF THE LANGUAGE

1. The meaning of S(#,E,,l) is only find an arbitrary number (<=256) of EBCDIC characters and store them in identifier S. This descriptor is terminated only by an invalid EBCDIC or by exceeding maximum permissible character count (256). 2. The assignment (S .<=. T) causes all attributes of identifier T to be given to S, i.e., length, type, and contents. 3. (S .<=. T || X) concatenates X onto the right-hand side of T and stores the result in S. If T and X are binary the resulting value has a length equal to the sum L(T) + L(X). 4. T(X) joins L(X) and V(X) as a built-in identifier function. T(X) = type of identifier X. L(X) = length of contents of X. V(X) = contents of X converted to binary (decimal - binary is presently the only transformation). 5. New types ED and AD are EBCDIC and ASCII encoded decimal, respectively. These have been added to complement the V(X) function. 6. New type SB has been added as signed binary. Type B is a logical binary string. 7. The syntactic notation for return-from-a-form has been changed. See new syntax.

[Page 1]

Data Reconfiguration Service RFC 194

II. NEW SYNTAX

form :: = rule | form rule :: = label inputstream outputstream; label :: = INTEGER | NULL inputstream :: = terms | NULL terms :: = term | terms, term outputstream :: = :terms | NULL term :: = identifier | identifier descriptor | descriptor | comparator identifier :: = <alpha followed by 0-3 alphanumerics> descriptor :: = (replicationexpr, datatype, valueexpr, lengthexpr control) comparator :: = (concatexpr connective concatexpr control) | (identifier .<=. concatexpr control) replicationexpr :: = # | arithmetricexpr | NULL datatype :: = B | O | X | E | A | ED | AD | SB | T (identifier) valueexpr :: = concatexpr | NULL lengthexpr :: = arithmeticexpr | NULL connective :: = .LE. | .LT. | .GT. | .GE. | .EQ. | .NE. concatexpr :: = value | concatexpr value value :: = literal | arithmeticexpr arithmeticexpr :: = primary | arithmeticexpr operator primary primary :: = identifier | L(identifier) | V(identifier) | INTEGER operator :: = + | - | * | / literal :: = literaltype "string"

literaltype :: = B | 0 | X | E | A | ED | AD | SB string :: = <from 0 to 256 chars> control :: = :options | NULL options :: = SFUR (arithmeticexpr) | SFUR (arithmeticexpr), SFUR (arithmeticexpr) SFUR :: = S | F | U | SR | FR | UR

[Page 2]

Data Reconfiguration Service RFC 194

III. THE FORM INTERPRETER

Interpreter Overview

The interpreter is a simple minded machine having the virtue of helping the compiler writer by providing a rather powerful instruction set for hard-to-compile operations. Figure 1 shows the machine configuration:

+-------------+ +--------------+ | inputstream | | outputstream | +-------------+ +--------------+...