SYMPL

SYMPL is an obsolete programming language developed by the Control Data Corporation (CDC) for use on the CDC 6000 series computer systems in the 1970s and 1980s. It was based on a subset of CDC's version of JOVIAL, as an alternative to assembly language. A number of important CDC software products were implemented in SYMPL, including compilers, libraries, a full-screen editor, and major subsystems.

SYMPL is a compiled, imperative, and procedural language. Compared to the Fortran of the day, SYMPL supports:


 * Strong data typing: All variables must be declared before use
 * Boolean variables
 * Variable bit width integers (both signed and unsigned)
 * "Status" (enumerated integer) variables
 * Data structures - Including "based" dynamically allocated structures
 * Structured programming constructs
 * Nested procedures
 * In-fix "bead" (bit) and character manipulation
 * A simple macro facility

A distinct feature of SYMPL, also found in JOVIAL tables, is that arrays of multi-item variables can be specified with either a "serial" or "parallel" memory layout. A "serial" layout has array entries following one another in memory as is usual in most computer languages. A "parallel" layout groups each of the individual items within each of the array entries together. For example, if each array entry has items x, y, and z, a parallel layout would group x[0]...x[n] together in memory, followed by y[0]...y[n], and then z[0]...z[n]. This has the effect of potentially speeding up access to all the same items across the array - as they are all contiguous with one another.

Simplifications compared to JOVIAL include: no fixed point data type, no table structures, and no  concept. Though in lieu of s, a CDC-specific system text capability allows encapsulation of common data declarations.