The Flex Computer System was developed by Michael Foster and Ian Currie of
Royal Signals and Radar Establishment (RSRE) in
Malvern, England, during the late 1970s and 1980s. It used a tagged storage scheme to implement a
capability architecture, and was designed for the safe and efficient implementation of strongly typed procedures.
The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in
ALGOL 68RS.
There were (at least) two incarnations of Flex, implemented using hardware with writable
microcode
In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. It consists of a set of hardware-level instructions ...
. The first was supplied by
Logica to an RSRE design,
and the second used an
ICL PERQ.
The microcode alone was responsible for storage allocation, deallocation and garbage collection. This immediately precluded a whole class of errors arising from the misuse (deliberate or accidental) of pointers.
A notable feature of Flex was the tagged, write-once filestore. This allowed arbitrary code and data structures to be written and retrieved transparently, without recourse to external encodings. Data could thus be passed safely from program to program.
In a similar way, remote capabilities allowed data and procedures on other machines to be accessed over a network connection, again without the application program being involved in external encodings of data, parameters or result values.
The whole scheme allowed
abstract data types to be safely implemented, as data items and the procedures permitted to access them could be bound together, and the resulting capability passed freely around. The capability would grant access to the procedures, but could not be used in any way to obtain access to the data.
Another notable feature of Flex was the notion of shaky pointers, more recently often called
weak references, which points to blocks of memory that could be freed at the next
garbage collection. This is used for example for cached disc blocks or a list of spare procedure
work-spaces.
COMFLEX, a packet switching network capable of transmitting data at magnetic-disc speed, was developed alongside Flex. It made feasible the use of remote file-stores, remote capabilities, and
remote procedure call
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared computer network), which is written as if it were a ...
s.
See also
*
Royal Radar Establishment Automatic Computer
*
Ten15
*
PS-algol
References
Further reading
* Martin C. Atkins
An Introduction to Ten15 - A personal retrospective.(includes a section about RSRE's Flex)
{{DEFAULTSORT:Flex Machine
Computers designed in the United Kingdom
Capability systems
Malvern, Worcestershire
Mainframe computers
Science and technology in Worcestershire