IUCC Bulletin Volume 3, Number 2, Summer 1981
CODIL as an Information Processing Language for University Use
C. F. Reynolds, Department of Computer Science, BruneI University
CODIL is a computer language designed to reflect the way in which non-scientists think about information. It provides a good man-to-computer interface and is particularly suitable for open-ended information processing applications. This paper discusses the background to the language and describes a number of operational applications of relevance to the university environment, including several data bases of descriptive information.
Early computer systems were designed by physical scientists and mathematicians and the philosophy of physical science so underlies existing computing systems that it is usually taken for granted. Much scientific research involved the description of a closed model, with external 'variables' being held constant, together with a set of laws that operated on the physical entities within the model. Programming an application to run on a computer involves building a model in an entirely analogous manner. Difficulties occur if it is not possible to predefine the boundaries of the application (i.e., to select a closed model), or if the program (laws) and data (physical entities) are not distinct. Further difficulties occur if the application users are not physical scientists and cannot see the relevance of such an approach to their information processing needs.
The popular approach among computer professionals and politicians is to assume that the current technology is at least approximately correct, and that as many people as possible should be taught programming so that they can think about their problems in a manner compatible with the way in which computers are currently built. The approach underlying the software described in this paper is diametrically opposed to such assumptions. Rather than train people to use the technology, one should reassess the technology to see if it can be made more acceptable.
In looking for a new approach, the big question becomes: 'If non-scientists such as historians, housewives, medical practitioners and the like, were asked to specify an information processing system from scratch, what would it look like?'
The Software Design Criteria
There are three things on which our 'panel' of nonscientists would agree. Firstly, the new system should be easy to use and to understand. Secondly, it should be able to handle open-ended, incompletely known, and even ambiguous information processing tasks. Thirdly, the system should be easy to get going in a way that demonstrates rapidly whether a particular approach will be cost effective. They will also agree to disagree over what they want the system to do, as each will have his own individual needs!
CODIL is a language interpreter system designed to meet these needs, at least in some directions. The detailed factors leading to the final design have been described elsewhere1-5 and it is not intended to repeat them here. However, the language is based on a simple psychological model of human information processing using long term and short term memory. Associative addressing provides the open-endedness required, and a 'decision making unit' controls processing by comparing files automatically. The software consists of a single interpreter and a number of 'data bases' for different users or applications. (All information about an application is held in the data base, including statements that might well be called 'program' in a more conventional system.)
CODIL Data Base Applications
CODIL has been used for a wide range of data base applications in which the majority of information is held in one main file, with a number of smaller supporting files. Early tests included the abstracting of part of a chemistry text book into CODIL and subsequent sorting and searching to produce monographs on selected chemical compounds6. Another test involved biological field records in which the CODIL file automatically conforms with the hierarchical nature of phyla, orders, families, etc7-8. Its ability to handle comparatively fixed format data has been tested by using the system to process the results of a general election. Operationally, the language has been used to handle clinical data on cardiac patients in Hillingdon Hospital9-10 and education information at Leeds University. However, the largest application to date is an historical data base11.12 which currently contains over 2 million bytes of information on a total of over 3,400 individuals. This data base makes use of nearly all the data base orientated facilities of CODIL and hence is used to illustrate different features of the software.
Files can be input into the data base by typing the file in full after using a CREATE command. However, the values of the named items can be requested from a terminal, in some cases coupled with the free format facility for ad hoc information., The system automatically adjusts prompting etc., by an examination of the way in which the information is entered. For instance, in the update operation shown in Figure 1 the only difference between the data update commands is the use of colons or new line characters.
The input of new data into the historical data base. In the first case everything is typed in full while in the second case a more compact format, with abbreviations, is use
Any file may be printed in a rather bulky but easy to understand dump print. However the user can format the output himself; facilities are available to redefine the dimensions of the line printer paper, to control tabulation, and to handle lines that over flow on to the lines following. Heading, subheading and footing lines are available, as is an automatic page numbering facility. Several of these facilities are used in the biography reproduced in Figure 2.
A typical entry from the historical data base.
Normally all CODIL 'files' associated with an application are held on a single disc file in the host computer's virtual memory. Because of the dynamic nature of the application, no separate file descriptions exist (unlike conventional data bases). and everything is dynamically variable in length and structure. From the point of view of the CODIL 'decision making unit', files are sequential, but this is not a necessary requirement - although most small files are held in this way. Longer files may be indexed by key, and the effect of this is that the interpreter only 'sees' the subset of the file defined by the key. Sorting can be considered a storage function as statements written to a 'sort' file are returned in key order.
File searching is a primitive process in CODIL. A file is created containing details of the search and this is compared with the target file in order to produce the desired result. Figure 3 shows a simple interrogation that illustrates a number of CODILs functions which might not be expected in a more conventional language. First of all, the file 'farmer' is created to contain a number of alternative definitions of a farmer. Then the key number for a particular individual is typed in. 'farmer = history?' compares the file 'farmer' with the file 'history' for a match and, as the key is defined, the search is automatically restricted to the subset of the history file defined by the key.
Is Thomas Burchmore a farmer? An illustration of the use of a file as a condition.
Update and Back-up
Several facilities are available for the updating of large data bases on-line. The most important of these concerns the problems of safeguarding the data base from accidental loss of data, and providing a back-up should anything go wrong. The first line of defence is that the data base is 'read only' during the whole of an update run until the final decision is made to make the changes permanent at the end of a terminal session. This means that if major difficulties arise, the data base automatically reverts to its previous state, and there is no danger of the user being left with partially updated files. When the data base is particularly large, and the number of amendments is small, the latter are held in a supplementary file until such time as there is a sufficient number to merge with the main data base. Finally, the system can be asked to keep a separate monitor file of all terminal inputs, so that update sessions may be repeated in batch mode should the worst come to the worst. (The host system itself provides incremental tape dumping, so this is not done automatically within CODIL.)
By combining the above, and other features of CODIL, it is possible to process the information in a variety of ways. In the case of the historical data base the most obvious product is a book, The Gibbs Family of Aylesbury11 which was prepared by adding some short connecting text to a series of computer-printed family trees and biographies.
In addition to the above, CODIL has been tested on a number of applications involving multiple files. In particular, it has been used to write a relational data base package13.14 and a revised version, taking advantage of the latest improvement in the system, may well be used for teaching later this year (1981). A range of commercial applications, such as sales accounting and stock control, has been modelled, although the software hers not been used operationally in that area.
Computer Aided Instruction
One of the key features of CODIL is an easy user interface, and this makes it very suitable for writing user-orientated packages. This was first done with the 'Teach Yourself CODIL' lessons, although the limited interactive facilities available at the time made it difficult to use them in the intended manner. With the recent improvement in terminal facilities at Brunei University, a series of interactive lessons and exercises in COBOL has been used to help to teach a class of about 120 students. An excerpt is given in Figure 4.
An extract from the COBOL lessons, implemented in CODIL.
A more interesting use, with the same class of 120, was to use a CODIL data base as a computer appreciation aid. The files had been set up originally in connexion with the BBC TV 'Jim'lI Fix It' programme, and were modified to provide a userorientated system which demonstrated a wide range of information processing activities from retrieving details of the kings and queens of England through to a game-playing facility that learned from its mistakes. It proved an excellent way of stimulating students with very disparate backgrounds - from those who had never used a keyboard before, to those with A-level Computer Science (who had thought that computing consisted simply of writing programs in Basic).
The psychological basis of the design model made it sensible to look at applications in 'artificial intelligence'. Some learning models based on production rules have been investigated and a heuristic/deduction problem solver called TANTALIZE was written in CODIL to test the practicability of using CODIL in this area.
The CODIL Software
The CODIL software consists of a single interpreter program that contains all facilities. Until recently, it was running on an ICL 1903A computer under George 3, although it was written in a portable manner and had been transferred to a number of other systems including DEC 10, CDC 6600, Prime 450, Burroughs 3500 and ICL 2980 computers. Brunei University has now acquired a Honeywell Multics system and this has allowed improvements to be made which are aimed at working in a fully interactive manner (although batch operation is still allowed) with upper and lower case terminals in a shared virtual memory environment. The source code is written in ANSI 74 COBOL with special facilities to simplify portability between machines with different word lengths etc.
With current data base applications handling files of over 2 million characters and computer aided instruction classes exceeding 100 students, the software is now considered robust enough to allow its distribution to interested universities for use on suitable applications. Further information may be obtained from the author.
- C. F. Reynolds, 'CODIL Part 1, The importance of flexibility,' Computer Journal, 14 (1974), 217-20.
- C. F. Reynolds, 'CODIL Part 2, The CODIL language and its interpreter', Computer Journal, 14 (1974), 327-32.
- C. F. Reynolds, 'Designing an interactive language for the pragmatic user', Proceedings of the European Computing Conference (1974),991-1006.
- C. F. Reynolds, 'A new look at the problem of open-ended applications', in Pragmatic Programming and Sensible Software, (Lon don, 1978),239-51.
- C. F. Reynolds, 'A psychological approach to language design', Proceedings of the Workshop on Computer Skills and Adaptive Systems, (Liverpool, 1978), 77-87.
- C. F. Reynolds, 'Processing poorly structured chemical information', CODIL Technical Note 2, (Brunei University, 1976).
- C. F. Reynolds, 'A data base system for the individual research worker', Proceedings of the International Symposium on Technology of Selective Dissemination of Information, (IEEE, 1976), 1-8.
- C. F. Reynolds, 'Handling cave fauna data on a computer', Transactions of the Cave Research Group of Great Britain, 13 (1971), 160-75.
- L. R. Neal, 'The computer handling of medical information for research purposes', Medinfo 77, (1977), 651-5.
- C. F. Reynolds, G. Sutton and M. Shackel, 'Using CODIL to handle poorly structured information', Proceedings of Medical Infor matics Europe, (1978),465-74.
- C. F. Reynolds, 'The Gibbs Family of Aylesbury', (Brunei University, 1979).
- C. F. Reynolds, 'A historical data base using CODIL', (IUCC Colloquium, 1979).
- C. F. Reynolds and D. Omrani, 'Formalism and Flexibility', Proceedings of an International Conference on Data Base Management Systems, (1978), 127-38.
- D. Omrani, 'Some studies of the Relational Model and the CODIL language', (Brunei University PhD Thesis, 1979).