CESIL

Last updated

CESIL, or Computer Education in Schools Instruction Language, [1] is a programming language designed to introduce pupils in British secondary schools to elementary computer programming. It is a simple language containing a total of fourteen instructions.

Contents

Background

Computer Education in Schools (CES) was a project that commenced in 1968 under the stewardship of the John Hoskyns Group. [2] The project was taken over by International Computers Limited (ICL) in September 1969 to become ICL-CES [2] . CESIL was developed by ICL as part of the ICL-CES project, and introduced in 1974. [3] In those days, very few if any schools had computers, so pupils would write programs on coding sheets, which would then be transferred to punched cards or paper tape. [4] Typically, this would be sent to run on a mainframe computer, with the output from a line printer being returned later. [5]

Structure

Because CESIL was not designed as an interactive language, there is no facility to input data in real time. Instead, numeric data is included as a separate section at the end of the program. [6]

The fundamental principle of CESIL is the use of a single accumulator, which handles mathematical operations. [4] Numeric values are stored in variables, which in CESIL are referred to as store locations. [7] CESIL only works with integers, and results from DIVIDE operations are rounded if necessary. [8] There is no facility for data structures such as arrays, nor for string handling, though string constants can be output by means of the PRINT instruction. [4]

Jumps and loops can be conditional or non-conditional, and transfer operation of the program to a line with a specific label, which is identified in the first column of a coding sheet. [9] The instruction or operation is stated in the second column, and the operand in the third column. [10] On some coding sheets, comments and the text of the PRINT instruction would be written in a fourth column. [11]

Instructions

Instructions, or operations, are written in upper case and may have a single operand, which can be a store location, constant integer value or line label. Store locations and line labels are alphanumeric, up to six characters, and begin with a letter. [12] Numeric integer constants must be signed + or , with zero being denoted as +0. [13] [lower-alpha 1]

Input and output

Memory storage

Mathematical instructions

In each case, the result of the operation is stored in the accumulator, replacing the previous value.

Program control

Other symbols

Three special symbols are used in CESIL at the beginnings of lines.

CESIL programming tools

An emulator for CESIL, designed to run on Windows and called Visual CESIL, is available as freeware. [27]

An interpreter for CESIL, designed to run on the Android platform and called Wyrm CESIL, is available as free to install. [28]

Example

The following totals the integers in the runtime data section until it encounters a negative value and prints the total.

        LOAD    +0 LOOP    STORE   TOTAL         IN         JINEG   DONE         ADD     TOTAL         JUMP    LOOP  DONE    PRINT   "The total is: "         LOAD    TOTAL         OUT         LINE         HALT  % 1 2 3 -1 * 

The output of the above program would be:

The total is: 6

See also

Bibliography

Monsoon, Colin C; Sewell, Ian R; Frances P, Vickers (1978). Computer Studies. Vol. Book 1. ICL Computer Education in Schools. ISBN   0-903885-17-4.

Notes

  1. Visual CESIL does not require non-negative constants to be signed.
  2. Not supported in Visual CESIL. * is used instead.

Related Research Articles

<span class="mw-page-title-main">Data General Nova</span> 16-bit minicomputer series

The Data General Nova is a series of 16-bit minicomputers released by the American company Data General. The Nova family was very popular in the 1970s and ultimately sold tens of thousands of units.

A one-instruction set computer (OISC), sometimes referred to as an ultimate reduced instruction set computer (URISC), is an abstract machine that uses only one instruction – obviating the need for a machine language opcode. With a judicious choice for the single instruction and given arbitrarily many resources, an OISC is capable of being a universal computer in the same manner as traditional computers that have multiple instructions. OISCs have been recommended as aids in teaching computer architecture and have been used as computational models in structural computing research. The first carbon nanotube computer is a 1-bit one-instruction set computer.

<span class="mw-page-title-main">UNIVAC 1101</span>

The ERA 1101, later renamed UNIVAC 1101, was a computer system designed and built by Engineering Research Associates (ERA) in the early 1950s and continued to be sold by the Remington Rand corporation after that company later purchased ERA. Its (initial) military model, the ERA Atlas, was the first stored-program computer that was moved from its site of manufacture and successfully installed at a distant site. Remington Rand used the 1101's architecture as the basis for a series of machines into the 1960s.

MIX is a hypothetical computer used in Donald Knuth's monograph, The Art of Computer Programming (TAOCP). MIX's model number is 1009, which was derived by combining the model numbers and names of several contemporaneous, commercial machines deemed significant by the author. Also, "MIX" read as a Roman numeral is 1009.

<span class="mw-page-title-main">IBM 709</span> Vacuum tube computer system

The IBM 709 is a computer system that was initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific computers. The improvements included overlapped input/output, indirect addressing, and three "convert" instructions which provided support for decimal arithmetic, leading zero suppression, and several other operations. The 709 had 32,768 words of 36-bit magnetic core memory and could execute 42,000 add or subtract instructions per second. It could multiply two 36-bit integers at a rate of 5000 per second.

<span class="mw-page-title-main">Index register</span> CPU register used for modifying operand addresses

An index register in a computer's CPU is a processor register used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for holding loop iterations and counters. In some architectures it is used for read/writing blocks of memory. Depending on the architecture it may be a dedicated index register or a general-purpose register. Some instruction sets allow more than one index register to be used; in that case additional instruction fields may specify which index registers to use.

<span class="mw-page-title-main">IBM 1130</span> 16-bit IBM minicomputer introduced in 1965

The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding the decimal IBM 1620 in that market segment. Typical installations included a 1 megabyte disk drive that stored the operating system, compilers and object programs, with program source generated and maintained on punched cards. Fortran was the most common programming language used, but several others, including APL, were available.

The Simplified Instructional Computer is a hypothetical computer system introduced in System Software: An Introduction to Systems Programming, by Leland Beck. Due to the fact that most modern microprocessors include subtle, complex functions for the purposes of efficiency, it can be difficult to learn systems programming using a real-world system. The Simplified Instructional Computer solves this by abstracting away these complex behaviors in favor of an architecture that is clear and accessible for those wanting to learn systems programming.

Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how the machine language instructions in that architecture identify the operand(s) of each instruction. An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.

<span class="mw-page-title-main">English Electric DEUCE</span>

The DEUCE was one of the earliest British commercially available computers, built by English Electric from 1955. It was the production version of the Pilot ACE, itself a cut-down version of Alan Turing's ACE.

In computer engineering, an orthogonal instruction set is an instruction set architecture where all instruction types can use all addressing modes. It is "orthogonal" in the sense that the instruction type and the addressing mode vary independently. An orthogonal instruction set does not impose a limitation that requires a certain instruction to use a specific register so there is little overlapping of instruction functionality.

NAR 1 or just NAR was a theoretical model of a computer created by Faculty of Mathematics of University of Belgrade professor Nedeljko Parezanović. It was used for Assembly language and Computer architecture courses.

NAR 2 is a theoretical model of a 32-bit word computer created by Faculty of Mathematics of University of Belgrade professor Nedeljko Parezanović as an enhancement to its predecessor, NAR 1. It was used for Assembly language and Computer architecture courses. The word "nar" means Pomegranate in Serbian. Many NAR 2 simulators have been created — for instance, one was named "Šljiva" as that fruit grows in Serbia, while "nar" does not.

<span class="mw-page-title-main">Elliott 803</span>

The Elliott 803 is a small, medium-speed transistor digital computer which was manufactured by the British company Elliott Brothers in the 1960s. About 211 were built.

<span class="mw-page-title-main">Little man computer</span> Instructional model of a computer

The Little Man Computer (LMC) is an instructional model of a computer, created by Dr. Stuart Madnick in 1965. The LMC is generally used to teach students, because it models a simple von Neumann architecture computer—which has all of the basic features of a modern computer. It can be programmed in machine code or assembly code.

<span class="mw-page-title-main">Apollo Abort Guidance System</span> Backup system for Apollo PGNCS

The Apollo Abort Guidance System was a backup computer system providing an abort capability in the event of failure of the Lunar Module's primary guidance system during descent, ascent or rendezvous. As an abort system, it did not support guidance for a lunar landing.

GEORGE is a programming language invented by Charles Leonard Hamblin in 1957. It was designed around a push-down pop-up stack for arithmetic operations, and employed reverse Polish notation. The language included loops, subroutines, conditionals, vectors, and matrices.

The 12-bit ND812, produced by Nuclear Data, Inc., was a commercial minicomputer developed for the scientific computing market. Nuclear Data introduced it in 1970 at a price under $10,000.

The Hack Computer is a theoretical computer design created by Noam Nisan and Shimon Schocken and described in their book, The Elements of Computing Systems: Building a Modern Computer from First Principles.  In using the term “modern”, the authors refer to a digital, binary machine that is patterned according to the von Neumann architecture model.

The City & Guilds Mnemonic Code and its associated City & Guilds Computer was a specification for an assembler language and a virtual computer system that ran it. It was introduced in 1964 by the City and Guilds of London Institute and used as the basis for a number of computer programming and administration courses. The computer model was deliberately very simple, and operational systems were implemented as interpreters on a number of mainframe computers like the ICL 1900 series and Elliot 900 family. An updated version was released in 1968.

References

  1. Computer Studies, page 71
  2. 1 2 Sewell, Ian, ed. (January 1980). "CES enters second decade". ICL-CES Newsletter. p. 1.
  3. Furber, Steve (January 2012). "Appendix J: Timeline of major developments in Computing in schools in England". Shut down or restart? The way forward for computing in UK schools (PDF). The Royal Society. p. 120. Archived (PDF) from the original on 2021-05-06. Retrieved 20 June 2021.
  4. 1 2 3 4 Computer Studies, page 72
  5. "My First Program". Archived from the original on 24 June 2021. Retrieved 16 June 2021.
  6. Computer Studies, page 82
  7. Computer Studies, page 76
  8. 1 2 Computer Studies, pages 93–94
  9. 1 2 Computer Studies, page 148
  10. 1 2 Computer Studies, page 77
  11. 1 2 Computer Studies, page 74
  12. Computer Studies, pages 96, 148
  13. Computer Studies, pages 97–99
  14. Computer Studies, page 201
  15. 1 2 3 Computer Studies, page 73
  16. Computer Studies, pages 199–200
  17. Computer Studies, pages 80, 97–98
  18. Computer Studies, pages 84, 97–98
  19. Computer Studies, pages 86, 97–98
  20. Computer Studies, pages 90, 97–98
  21. Computer Studies, pages 92, 97–98
  22. Computer Studies, page 145
  23. Computer Studies, page 198
  24. Computer Studies, page 154
  25. Computer Studies, page 83
  26. Computer Studies, page 164
  27. Andrew John Jacobs (20 June 2010). "Visual CESIL". Archived from the original on 12 September 2021. Retrieved 26 November 2021.
  28. Wyrm Software (13 October 2019). "Wyrm CESIL". Archived from the original on 25 November 2021. Retrieved 25 November 2021.