Flex machine

Last updated

The Flex Computer System was developed by Michael Foster and Ian Currie of Royal Signals and Radar Establishment (RSRE) [1] 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.

Contents

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. The first was supplied by Logica to an RSRE design, [2] and the second used an ICL PERQ. [3] [4] 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. [5]

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 calls. [6]

See also

Related Research Articles

CORAL, short for Computer On-line Real-time Applications Language is a programming language originally developed in 1964 at the Royal Radar Establishment (RRE), Malvern, Worcestershire, in the United Kingdom. The R was originally for "radar", not "real-time". It was influenced primarily by JOVIAL, and thus ALGOL, but is not a subset of either.

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, also known as its machine code. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in general-purpose CPUs in contemporary desktops, it also functions as a fallback path for scenarios that the faster hardwired control unit is unable to manage.

PL/I is a procedural, imperative computer programming language initially developed by IBM. It is designed for scientific, engineering, business and system programming. It has been in continuous use by academic, commercial and industrial organizations since it was introduced in the 1960s.

In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language elements, be easier to use, or may automate significant areas of computing systems, making the process of developing a program simpler and more understandable than when using a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is.

The Royal Radar Establishment was a research centre in Malvern, Worcestershire in the United Kingdom. It was formed in 1953 as the Radar Research Establishment by the merger of the Air Ministry's Telecommunications Research Establishment (TRE) and the British Army's Radar Research and Development Establishment (RRDE). It was given its new name after a visit by Queen Elizabeth II in 1957. Both names were abbreviated to RRE. In 1976 the Signals Research and Development Establishment (SRDE), involved in communications research, joined the RRE to form the Royal Signals and Radar Establishment (RSRE).

The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense syllables. The first machine in the family was the B5000 in 1961, which was optimized for compiling ALGOL 60 programs extremely well, using single-pass compilers. The B5000 evolved into the B5500 and the B5700. Subsequent major redesigns include the B6500/B6700 line and its successors, as well as the separate B8500 line.

Ten15 is an algebraically specified abstract machine. It was developed by Foster, Currie et al. at the Royal Signals and Radar Establishment at Malvern, Worcestershire, during the 1980s. It arose from earlier work on the Flex machine, which was a capability computer implemented via microcode. Ten15 was intended to offer an intermediate language common to all implementations of the Flex architecture for portability purposes. It had the side effect of making the benefits of that work available on modern processors lacking a microcode facility.

The Royal Signals and Radar Establishment (RSRE) was a scientific research establishment within the Ministry of Defence (MoD) of the United Kingdom. It was located primarily at Malvern in Worcestershire, England. The RSRE motto was Ubique Sentio.

<span class="mw-page-title-main">Intel iAPX 432</span> Discontinued Intel microprocessor architecture

The iAPX 432 is a discontinued computer architecture introduced in 1981. It was Intel's first 32-bit processor design. The main processor of the architecture, the general data processor, is implemented as a set of two separate integrated circuits, due to technical limitations at the time. Although some early 8086, 80186 and 80286-based systems and manuals also used the iAPX prefix for marketing reasons, the iAPX 432 and the 8086 processor lines are completely separate designs with completely different instruction sets.

<span class="mw-page-title-main">ALGOL 68</span> Programming language

ALGOL 68 is an imperative programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics.

<span class="mw-page-title-main">PERQ</span> First commercially produced personal workstation with a Graphical User Interface

The PERQ, also referred to as the Three Rivers PERQ or ICL PERQ, is a pioneering workstation computer produced in the late 1970s through the early 1980s. It is the first commercially-produced personal workstation with a graphical user interface (GUI). The design of the PERQ was heavily influenced by the original workstation computer, the Xerox Alto, which was never commercially produced. The workstation was conceived by six former Carnegie Mellon University alumni and employees: Brian S. Rosen, James R. Teter, William H. Broadley, J. Stanley Kriz, Raj Reddy and Paul G. Newbury, who formed the startup Three Rivers Computer Corporation (3RCC) in 1974.

<span class="mw-page-title-main">CAP computer</span>

The Cambridge CAP computer was the first successful experimental computer that demonstrated the use of security capabilities, both in hardware and software. It was developed at the University of Cambridge Computer Laboratory in the 1970s. Unlike most research machines of the time, it was also a useful service machine.

ALGOL 68C is an imperative computer programming language, a dialect of ALGOL 68, that was developed by Stephen R. Bourne and Michael Guy to program the Cambridge Algebra System (CAMAL). The initial compiler was written in the Princeton Syntax Compiler that was implemented by J. H. Mathewman at Cambridge.

ALGOL 68-R was the first implementation of the Algorithmic Language ALGOL 68.

In computer science, capability-based addressing is a scheme used by some computers to control access to memory as an efficient implementation of capability-based security. Under a capability-based addressing scheme, pointers are replaced by protected objects which specify both a location in memory, along with access rights which define the set of operations which can be carried out on the memory location. Capabilities can only be created or modified through the use of privileged instructions which may be executed only by either the kernel or some other privileged process authorised to do so. Thus, a kernel can limit application code and other subsystems access to the minimum necessary portions of memory, without the need to use separate address spaces and therefore require a context switch when an access occurs.

Royal Air Force Defford, or more simply RAF Defford, is a former Royal Air Force station located 1.1 miles (1.8 km) northwest of Defford, Worcestershire, England.

ALGOL 68RS is the second ALGOL 68 compiler written by I. F. Currie and J. D. Morrison, at the Royal Signals and Radar Establishment (RSRE). Unlike the earlier ALGOL 68-R, it was designed to be portable, and implemented the language of the Revised Report.

ELLA is a hardware description language and support toolset, developed in the United Kingdom by the Royal Signals and Radar Establishment (RSRE) during the 1980s and 1990s, which also developed the compiler for the programming language, ALGOL 68RS, used to write ELLA.

VIPER is a 32-bit microprocessor design created by Royal Signals and Radar Establishment (RSRE) in the 1980s, intended to be used in safety-critical systems such as avionics. It was the first commercial microprocessor design to be formally proven correct, although there was some controversy surrounding this claim and the definition of proof.

Susan Bond, was a scientific officer and computer programmer for the Mathematics Division of the Royal Radar Establishment (RRE) in the United Kingdom. She worked extensively on the programming language ALGOL 68 and the Royal Radar Establishment Automatic Computer (RREAC), an early solid-state electronics, ICL 1907F computer.

References

  1. Terry, Phil F.; Wiseman, Simon R. (June 1988). On The Design And Implementation Of A Secure Computer System (PDF) (Report). Royal Signals and Radar Establishment. RSRE Memorandum No. 4188. Archived (PDF) from the original on 3 May 2014.
  2. Foster J M, Moir C I, Currie I F, McDermid J A, Edwards P W (October 1979). An Introduction to the FLEX Computer System (Report). Royal Signals and Radar Establishment. Report No 79016. Archived from the original on 20 July 2018. Retrieved 12 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)
  3. Foster J M, Currie I F, Edwards P W (July 1982). Flex: A Working Computer with an Architecture Based on Procedure Values (Report). Royal Signals and Radar Establishment. RSRE Memorandum No. 3500. Retrieved 12 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)[ dead link ]
  4. Tombs, D. J.; Bruce, D. I. (November 1991). The Evolution of Ten15 (PDF) (Report). Royal Signals and Radar Establishment. Archived (PDF) from the original on 24 September 2015.
  5. Currie I F, Foster J M, Edwards P W (December 1985). PerqFlex Firmware (Report). Royal Signals and Radar Establishment. Report No 85015. Retrieved 6 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)[ dead link ]
  6. McDermid, J.A. (November 1980). "Design and use of Comflex - a hardware-controlled packet switch". IEE Proceedings E - Computers and Digital Techniques . 127 (6): 233. doi:10.1049/ip-e.1980.0048 . Retrieved 12 February 2018.

Further reading