An Introductions to Publications on CODIL
CODIL started as a project within the Research Division of English Electric Leo Marconi, where it was treated as top commercial secret - but permission to publish was given then the Division was closed down after the merger to form ICL and the research became university based. This note provides a guide to the publications on CODIL which are currently available online.
Many aspects of these papers are very dated. Prior to about 1980 virtually all work was done in batch processing mode, using punched cards, with later work being done interactively using a glass teletype - or a small educational computer, the BBC Micro, which allowed far more control (including colour) of the display. The reason for publishing them here is that I am planning to re-interpret the basic approach on this blog - and it is appropriate to be able to refer to the relevant earlier work - which showed that the approach was able to support a wide range of information processing activities.
General Introductions and the Software Interpreters
CODIL started as the symbolic assembly language of an unconventional computer processor design, proposed in 1967, where the aim was to produce a "white box" system which would work symbiotically with people in the field on non-numerical information processing applications. The hardware was never built but four different software interpreters were written which have shown that the approach was feasible, and would support a wide variety of applications. The four versions of the interpreter were as follows:
- The Pilot program: Written in symbolic assembly code to run on a System 4/70 computer (IBM 360 compatible computer). This was a batch system which was built to demonstrate the feasibility of the idea for a range of small scale test applications. An introduction to CODIL and information on the design is given in CODIL: Part 2: The CODIL language and its interpreter (1971).
- The ICL 1903A interpreter was written in COBOL (because the idea had started in the context of very large commercial data processing systems) and while it could be used via a teletype terminal most of the work was done in batch mode. It was a complete redesign, incorporating many of the lessons learnt in the previous version, but in retrospect retained some "conventional computing" feature which were later shown to be rethought out. There were no publications explicitly describing this interpreter, but some information is given in papers describing the applications tested. These included several data bases, Tantalize (a heuristic problem solver), and interactive Teach Yourself CODIL lessons, as well as a variety of small scale test applications. The best account of applications, etc., examined with this version is in A Psychological Approach to Language Design (1978) It was used from 1972 to 1980.
- The Multics interpreter was a upgrade of the ICL version, when the university switched from batch working to glass teletypes. It was used to support a variety of teaching packages and work was done on demonstrating online interactive publications. It was used from 1980 to 1988.
- MicroCODIL: The limitation of glass teletype interaction of the Multics system - and the desire to develop a far better user interface - led to a very significant redesign. It was decided to implement on a small educational computer, The BBC Micro, and the software was marketed to schools. (see below for more information). The paper CODIL - the architecture of an information language (1990), describes MicroCODIL - and also some features of the Multics version. MicroCODIL made it possible to escape from glass teletypes and work on windowed screens including colour. This aspect of the software design is described in detail in The use of colour in language syntax analysis, (1987).
CODIL in Context
Prior to the work on CODIL I had worked on the manual processing of complex research and development information in a subsidiary of the Welcome Foundation. I then worked on a very large computerised sales accounting system for Shell Mex & BP, where I got a good insight into the limitations of commercial computer systems as they were in the 1960s. Two of the early papers looked specifically on the importance of recognising that not all information was neat and tidy, or could be predicted in advance. The first was presented at Datafair 71, in Nottingham, in March 1971 and reprinted in a slightly modified form as CODIL: Part 1: The Importance of Flexibility (1971). The second was Designing an interactive language for the pragmatic user (1974). This was published when there was a strong movement in the data processing world to more and more formalism - including the introduction of relational data base techniques. This paper points in the opposite direction and argues that you need to start by getting a simple architecture which the human users can understand. Later papers, such as Human Factors in Systems Design (1987), discussed the design in the context of MircoCODIL.
The much later paper Are We trapped by our Training (1991) looks at a different problem that emerged in the research. It appears that people who have been trained to use a conventional programming language find it difficult to unlearn the "need" to predefine an algorithm, and hence find it harder to understand CODIL than people with no computer experience.
CODIL and Artificial Intelligence
At an early stage it was realised that the CODIL approach appeared to model some aspects about how some people thought about some practical information processing tasks. The work was being done in a computer manufacturer with a view to developing a commercially profitable system and little thought was given to what the research might say about human intelligence. Once the work had moved to a university environment the wide implications were considered and initial thoughts are given in An Evolutionary approach to Artificial Intelligence (1973). It was discovered that CODIL could support a powerful heuristic problem solver, and demonstrate machine learning, and progress on this was outlined as Recent Developments with CODIL (1976). The paper A Psychological Approach to Language Design (1978) includes a summary of what had been achieved, including the incorporation of learning facilities. A very powerful problem solver called TANTALIZE was implemented and was used to solve 15 consecutive Tantalizer Problems (now called Enigma) from the New Scientist. However for various reasons I decided to concentrate on other possible applications of CODIL and as a result the TANTALIZE problem solver was never transferred to the Multics version of the software.
CODIL & Data Bases
CODIL has been tested on a variety of different topics as can be seen in CODIL as an Information Processing Language for University Use (1981). From an early date it was used to process patient diagnostic and treatment information in the Cardiac Department at Hillingdon Hospital - Using CODIL to handle poorly structured clinical information (1978) - but as the information was confidential another data base was set up of family history information. This was chosen not only because it was non-confidential, but also because the information described real life situations and was often incomplete or ambiguous. Four books containing the genealogical information were produced and the use of CODIL for historical data. The two most relevant papers are CODIL as a knowledge base system for handling historical information (1988) and Knowledge Bases for Historians (1988). A commercial software package for early personal computers, called Superfile, was a pirated version of the file handling routines in CODIL (but lacked the logic processing routines) and was widely used for archaeology and related applications in the UK in the 1980s. It was also decided to demonstrate that CODIL could handle conventional data base files, and one application was the departmental usage statistics on the university computer. The paper Formalism or Flexibility? (1978) showed how CODIL could be used to support Relational Data Base files.
CODIL - Online Teaching and Publication
In 1980 the university switched to a terminal-based service and CODIL was used by classes of up to 125 students, both to introduce them to the computer and the course, and for computer-aided instruction. At the same time I was involved in the British Library BLEND project to explore the possibility of having online scientific journals. As a result the CODIL system was used to model an online system where papers on different applications, including the student activities, could be combined in an online "journal" including the options of including raw data, operational demonstrations, and hyperlinks between papers. This is summarised in A Software Package for Electronic Journals (1983)
MicroCODIL
Much of the research in the 1980 concentrated on the development of the MicroCODIL system. The aim was to demonstrate that the basic processing routine was so small and fast it would run run a very small home/educational computer and could carry out a wide range of tasks. Papers describing what the system would do include A Microcomputer Package for demonstrating Information Processing Concepts (1985), Human Factors in Systems Design (1987), Introducing Expert Systems to Pupils (1988), A Flexible Approach to Local History Data Bases in the Classroom (1988), A Psychological Approach to the Computer Handling of Historical Information (1990) and Moving information technology research from the laboratory to the classroom (1990). The software was well reviewed - see Reviews of MicroCODIL - but did not fit in with the National Curriculum (based on more conventional systems) and probably by trying to do too much was not robust enough for classroom use.