Nodal-80(ID:8053/)


NODAL for the CP/M computer platform, with some modifications for speed.

Developed by Katsunobu Oide for the Tristan system at the National Laboratory for High Energy Physics (KEK), Japan

Had modified syntax, and no network facilities. Rationalisation of the role that literal text played to some extent.

When the Tristan system (which ran on Hitachi HIDIC-80 realtime systems)


Related languages
NODAL => Nodal-80   Simplification of
Nodal-80 => KEK-NODAL   Evolution of

References:
  • Oide, Katsunobu "NODAL interpreter for CP/M" KEK Report 82-11 Nov 1982 view details Abstract: A NODAL interpreter which works under CP/M operating system is made for microcomputers. This interpreter language named N0DAL-80 has a similar structure to the NODAL of SPS, but its commands, variables, and expressions are modified to increase the flexibility of programming. NODAL-80 also uses a simple intermediate code to make the execution speed fast without imposing any restriction on the dynamic feature of NODAL language.
    Extract: Language overview
    Language overview
    The outline of NODAL-80 interpreter is based on SPS NODAL (1) , and some modifications, simplifications, and extensions are done on various parts of the language.

    The syntax of the original NODAL of SPS seems a little complicated. For example, in SPS NODAL the meaning of space character differs with commands. It is used to separate parameters in some commands, but in other commands to concatenate two character strings. Exclamation mark (!) means taking a new line in string expressions, error branch specification in DO command, or alternation of a match string in $MATCH command. On the other hand, specifications of similar functions are denoted by different characters The error branch specification is denoted by exclamation mark (!) in DO command, but by colon (:) when INPUT or OUTPUT function is used. These inconsistencies in command syntax are not only inefficient in the coding of interpreter, but troublesome to users.

    In NODAL-8O the language and command syntax are so simplified that an operator or a special character has a definite meaning through the entire command as far as possible. (For instance, all parameters of a command are separated by commas) The meanings of some special characters are changed from those in SPS, and several characters like '&', '¦', and '`' are added to use as logical operators.

    The command syntax is also modified in NODAL-80 that it is possible to write an expression as a parameter of a command where a constant can be written. For example, in SPS NODAL ERASE command can erase both program lines and variables, so user cannot specify the line number by an expression. The following command of SPS NODAL:

    SET A=1.1 ; ERASE A

    does not erase line 1.1 but variable A. (In NODAL-80 a new command Kill is made to erase variables, and ERase command only erases program lines.) In general this rule increases the flexibility of programing, but in some commands it brings inconveniences. For example, in RUn command of NODAL-80 the file name can be any string expression, so user has to use quotation marks to specify a simple file name in the form of string constant, i.e. user has to write
    RUn 'TEST'
    to run the program of file 'TEST', and
    RUn TEST
    does not run the program of the file 'TEST' but the file whose name is stored in the variable TEST.

    Most of file oriented commands are simplified. Some of those commands in SPS are not implemented, but user can do the same function as SPS commands by combining commands or using defined functions. Unlike SPS, NODAL-80 cannot save/load variables directly to/from a file by SAve/LOad command. On the one hand this causes inconvenience, on the other hand this enables to edit a NODAL-80 program file using other text editors of CP/M because the file becomes a usual ASCII file.

    The program flow control commands Goto, Do, RETurn, For, ROf, While, WEnd, Repeat, and Until are also modified from those of SPS (The last three commands do not exist in SPS NODAL). In RETurn command, a line number can be specified to jump after the returning. The repetition abortion commands {Rof, WEnd, and Until) can be accompanied by logical expressions which specify the condition of abortion, because those commands are usualy used to exit conditionally from the current repetition. Goto out of the block which is called by Do command does not terminate Do, so user can extend the range of Do over 99 lines.

    In NODAL-80, the length of a name, length of a string value, length of a command line, number of arguments of a defined function, and an array dimension have no restriction except the computer memory size. In particular, the lmitlessness in string length increases the power of string manipulation and the ability of run-time modifying of program lines.

    Defined function and its related commands are also modified from SPS NODAL. The detail will be mentioned later.

    This interpreter works under CP/M (2) operating system, which is a single computer, single user, single task system. So in NODAL-80 there are no network facilities, which is the most excellent characteristic of SPS NODAL. In future, if we have some network of microcomputers, or we use microcomputers as the front end proccessor of a minicomputer which has NODAL, we will install remote-execution commands to NODAL-80.

    The main part of this interpreter, which is about a half amount of the whole object code, is coded in FORTRAN-80 (3), and the rest in MACRO-80 (3) assembler. The program size is almost 28 kilobytes including installed functions. The floating operations and some functions use the library FORLIB (3) of FORTRAN-80.
  • Yamamoto, N. and Takagi, M. "Dynamic Execution Of Scripts On EPICS IOC" EPAC 2000 view details Abstract: Introduction of a scripting language on EPICS IOC(a VME single board computer) allows users to construct a flexible control system. Authors will discuss the possible applications of such scripting language and will show some of implementation of these applications.
    pdf Extract: Use of NODAL in TRISTAN
    Use of the interpreted language in an accelerator control system is not a new idea. TRISTAN, predecessor of KEKB, control system used NODAL language developed at CERN for its control system. Nodal language is a BASIC like interpreted language designed for a control system. One of its unique features is a remote execution of Nodal program within a program. As shown in a sample program, Figure1, a NODAL program can send a part of itself to the other computer and can get a result of execution in the remote computer.This function can be used to access resources only available at the specific computer. It can be also used to reduce data transfer overhead in some cases. This ability should be compared with the today?s network agent technologies.