CODIL(ID:544/cod008)

Context-sensitive Information Manipulation language 


for COntext Dependent Information Language.

Chris Reynolds at ICL 1970

Context-sensitive language for non-numerical business problems.

Specialised in extracting dirty data from systems. Became MicroCODIL

Made use of indentation as syntactically meaningful


Related languages
BASEBALL => CODIL   Influence
CODIL => MicroCODIL   Evolution of

References:
  • C F Reynolds et al "Meeting on CODIL: Advanced Programming Study Group Report" pp244-245 view details
          in The Computer Bulletin Vol 14 (1970) view details
  • C.F. Reynolds "CODIL: An information language for Man-Computer interaction" in "Man Computer Interaction" 211-217 view details
          in IEE Conference Publication No 68 view details
  • Reynolds C.F. "Handling Cave Fauna Records on a Computer" pp160-165 view details
          in Transactions of the Cave Research Group of Great Britain Vol 13(3) 1971 view details
  • Reynolds, C.F. "CODIL, Part 1 The Importance of Flexibility" pp217-220 view details Abstract: Many non-numerical data processing systems prove to be insufficiently flexible. This paper discusses some examples of how inflexibility manifests itself and how application specific languages can help. It then describes a novel language, CODIL, specifically designed for use with complex non-numerical problems, with particular emphases on Management Information Systems.
          in The Computer Journal 14(3) May 1971 view details
  • Reynolds, C.F. "CODIL, Part 2. The CODIL language and its interpreter" pp217-220 view details Abstract: This paper describes CODIL, a novel non-numerical computer language in which no distinction is made between instructions and data. Each language statement is a list of identically formatted items of information linked together by implied ANDs. These statements may be listed together so as to form a tree structure. Processing is under the control of a decision making routine which automatically compares items from 'criteria' and 'facts' statements. The decision making routine forms the central section of the Pilot Program, a CODIL interpreter which has been implemented on System 4 computers.
          in The Computer Journal 14(3) May 1971 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 55 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 125 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Reynolds, C. F. "Designing an interactive language for the pragmatic user" view details Abstract: This paper looks at the difficulties of designing a language suitable for pragmatic users with poorly defined non-numerical problems which they handle in purely concrete terms. It shows how by ruthlessly stripping information processing to its bare essentials it is possible to get a system which is simple enough for the proposed user and yet general enough to handle open-ended problems. Finally it looks at the design of the CODIL language [1,2] to show how such a system has been implemented and how many of the facilities left out ot the design process may be reintro-duced in a modified form, without disturbing the simplicity or generality of the system as a whole.

          in Teleprocessing at work: terminal based computer systems: techniques and user experience, Online Conference Ltd., Uxbridge, UK, 1976 view details
  • C. F. Reynolds "CODIL: the architecture of an information language" view details
          in The Computer Journal 33(2) April 1990 Special issue on procedural programming view details
  • Voldman, G. [review of Reynolds 1990] view details Abstract: Reynolds describes a language designed to deal with poorly structured information. The author first introduces the language CODIL as dealing with complex data and a simple decision-making routine. All information in CODIL is lists of items, and an item is a logical collection of items. On the other hand, all information is identified by a named domain. An item represents a domain, a subset of a domain, a property of a domain, or an operation on a domain. A statement is a nonempty and unbranched list of items. The statement’s purpose is to describe real or hypothetical situations. On the next level of the language, an element hierarchy is a construct--a list of statements. Finally, the knowledge base in CODIL is a collection of constructs.

    An item may have many components: level, name, qualifier name, qualifier number, probability, automatic indexing indicator, expression indicator, item logic, terminal punctuation, and item value. The decision-making process selects an item and either compares it with another item or adds it to the latter item. There are no constraints on information structure storage if the correct interface is presented. For information access, a suitable demon is used. It must satisfy some requests: provide the next item from the current statement, provide the first item from the next statement, provide the next statement in toto, indicate the end-of-construct, and finally accept a complete statement and incorporate it into the existing statement of the construct. Such a demon can change the sequence of the statement execution from procedural to rule-driven or relational. The description of the decision-making unit is presented, but because of the absence of a precise definition, the next statement selection allows interpretation of this language with many different types.

    This paper aims to investigate the design of a small multi-purpose language, but the number of demons used in the project makes it ultimately unrealizable.



          in ACM Computing Reviews 1992 view details