Jump to content

Flex machine: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m →‎RSRE FLEX Computer System: Typo fixing, replaced: strongly- → strongly using AWB
→‎RSRE FLEX Computer System: OS written in ALGOL 68RS (Currie was one of the authors of ALGOL 68RS)
Line 12: Line 12:
[[Ian Currie]] of [[Royal Signals and Radar Establishment]] (RSRE) developed the Flex Computer System <ref>[http://stinet.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA085010 An Introduction to the FLEX Computer System<!-- Bot generated title -->]</ref> in [[Malvern, Worcestershire|Malvern]], England, during the 1980s. It used a tagged storage scheme to implement a [[Capability-based security|capability]] architecture, and was designed for the safe and efficient implementation of strongly typed procedures.
[[Ian Currie]] of [[Royal Signals and Radar Establishment]] (RSRE) developed the Flex Computer System <ref>[http://stinet.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA085010 An Introduction to the FLEX Computer System<!-- Bot generated title -->]</ref> in [[Malvern, Worcestershire|Malvern]], England, during the 1980s. It used a tagged storage scheme to implement a [[Capability-based security|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-68]]. <!-- c.f. http://foldoc.org/flex -->
The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in [[ALGOL 68RS]]. <!-- c.f. http://foldoc.org/flex -->


There were (at least) two incarnations of Flex, implemented using hardware with writable [[microcode]]. The first was supplied by [[Logica]] to a RSRE design, and the second used an [[International Computers Limited|ICL]] [[PERQ]] [http://stinet.dtic.mil/stinet/jsp/docread.jsp?K2DocKey=http%3A%2F%2Fstinet.dtic.mil%2Fstinet%2FXSLTServlet%3Fad%3DADA166398%40trA-search&Format=1F&Custom=&querytext=perqflex&AD=ADA166398&TI=PerqFlex+Firmware%2C&RD=December+01%2C+1985&DC=%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+01+-+APPROVED+FOR+PUBLIC+RELEASE&XPC=&PAG=42+Pages%28s%29&MC=&PE=]. 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.
There were (at least) two incarnations of Flex, implemented using hardware with writable [[microcode]]. The first was supplied by [[Logica]] to a RSRE design, and the second used an [[International Computers Limited|ICL]] [[PERQ]] [http://stinet.dtic.mil/stinet/jsp/docread.jsp?K2DocKey=http%3A%2F%2Fstinet.dtic.mil%2Fstinet%2FXSLTServlet%3Fad%3DADA166398%40trA-search&Format=1F&Custom=&querytext=perqflex&AD=ADA166398&TI=PerqFlex+Firmware%2C&RD=December+01%2C+1985&DC=%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+01+-+APPROVED+FOR+PUBLIC+RELEASE&XPC=&PAG=42+Pages%28s%29&MC=&PE=]. 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.

Revision as of 16:44, 6 April 2011

In computing, there have been multiple systems named FLEX.

Alan Kay's FLEX system

Alan Kay developed his Flex system in the late 1960s while exploring ideas that would later evolve into the Smalltalk programming language.[1]

RSRE FLEX Computer System

Ian Currie of Royal Signals and Radar Establishment (RSRE) developed the Flex Computer System [2] in Malvern, England, during the 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. The first was supplied by Logica to a RSRE design, and the second used an ICL PERQ [1]. 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.

Another 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.

References