Skip to content

Page 1

ND 10354 SIMULA FOR ND-500

INTRODUCTION

SIMULA ¹) is an object-oriented high-level programming language. It has been applied to almost all kinds of data processing.

The language was defined in 1967 in the "SIMULA Common Base Language" (Ref. 1) by the Norwegian Computing Center. It has up to now been implemented on almost all medium to large computers, such as VAX, CDC Cyber, IBM 370, UNIVAC 1100, etc. Implementations on micros are also on their way.

SIMULA is based on the algorithmic language ALGOL 60, thereby incorporating such features as block-structure, procedures, conditional statements, etc. By merging the basic syntax of ALGOL 60 carefully with well-defined I/O capabilities based on the "file" concept, text handling, and list processing; and through the addition of the innovative "class" concept, the result became a truly general purpose programming language.

The most important aspect of the language - and the aspect which makes the language the most advanced, commercially available high level programming language - is the class concept. This concept, unique to SIMULA (but lately partly introduced in languages such as ADA, Smalltalk and Mainsail), allows the programmer to structure the program into objects which are not only data carriers but also serve to associate algorithmic actions with particular instances.

¹) SIMULA is a registered Trade Mark of Simula A.S., Oslo.

FEATURES

  • SIMULA Standard as defined by the SIMULA Standards Group.
  • Includes Simset and Simulation system classes, and all system classes available in the Portable SIMULA System (S-PORT).
  • Compatible with all other SIMULA systems based on the S-PORT system.
  • Various compile and run-time options can be activated in the source text or as compiler commands.
  • Extensive error messages under compiling as well as under run-time.
  • ²) SIMULA Observatory (SIMOB) to observe programs under execution, giving the possibility to set breakpoints at source-line level, stepwise execution of the program and the displaying of the contents of variables.
  • The compiler generates NRF modules, which are loaded by the standard Linkage-Loader.
  • Possibility for separate compilation of procedures and classes.
  • Source file may contain directives to include source text from additional source files.
  • ²) Ability to call external FORTRAN functions and subroutines.

²) These features are not available with ND-SIMULA version A.

PRODUCT DESCRIPTION

The ND-500 SIMULA compiler is implemented as a three-pass compiler. The compiler is implemented as an ND-500 standard domain. The files comprising the compiler occupy approx. 1500 Kbytes, including the run-time system. They execute as a standard domain under the SINTRAN III operating system.

During compilation, the system scratch file is used in addition to the user specified files and various run-time library files. All files are accessed on the ND-500 as segments, giving the best possible efficiency in the file accesses.

Source lines of up to 120 characters using upper and lower case characters are accepted, as well as source listing format characters.


Page 2

SIMULA Compiler Activation

The SIMULA compiler should normally be incorporated among the system's standard domains. It is then activated by giving the command:

@SIMULA

The following commands can be given:

Command Description
SIM: compile <source file> <listing file> <object file>
SIM: recompile <source file> <listing file> <object file>
SIM: library <directory:user>
SIM: listing <listing level> <listing file>
SIM: set <mnemonic> <value>
SIM: status <detail level>
SIM: help
SIM: exit

All commands can be abbreviated in the standard way.

The SET command is used to alter the default value of certain system parameters or to set or reset trace and debugging switches. The following parameters to the SET command are available for the user:

Parameter Description
SOURCE <SOURCE-FILE>
LISTFIL <LISTING-FILE>
SCODE <S-CODE-FILE>
NRFICODE <OBJECT-FILE>
INPLTH <decimal number>
OUTLTH <decimal number>
LPP <decimal number>
MAKERR <value>
STRG <decimal number>
OPTION <OPTION-LIST>
TRACE <value>

Compiler Directive Line

A compiler directive line can be placed anywhere in the source text.

Directive Description
%COPY <filename>
%PAGE
%TITLE <new current title>
%LIST <ON/OFF>
%SOURCE - same effect as %LIST ON
%NOSOURCE - same effect as %LIST OFF
%SLENGTH <new significant length of source line>

User Program Activation

A SIMULA program is normally activated by:

@ND-500 (dir:user)program-name

If the user wants to define the maximum size of the work storage available at runtime, an alternate activation is available:

@ND-500 (dir:user)program-name <Wxx>

where xx is digits implying the reservation of 2**xx bytes of swap space.

REQUIREMENTS

  • The ND-500 computer system

DOCUMENTATION

ND-500 SIMULA reference manual............ND-60.208