Edinburgh Compatible Context Editor

ECCE (the Edinburgh Compatible Context Editor) is a text editor for computing systems and operating environments that support a command line interface. It is an original command set which is logical and regular. It was written in the 1960s by Hamish Dewar, an experienced Compiler writer and used this skill to design a command-set which could be easily parsed and coded to allow complex commands to be built up. A technique similar to threaded code in the Forth environment. The current ECCE release is licensed under the BSD License, recoded into C and released by Graham Toal in 2007.

History
Hamish Dewar in the early 1960s recognised a need for a more powerful text editor. At the time editing files was laborious as editors could only load into memory one code line at a time and insert, delete or replace only the whole line. Because of memory limitations (a large computer might have between 8k and 32k or memory) few editors could execute repeated commands or support macros for text processing.

H Dewar used his talent as a compiler author to create ECCE as a much more capable command set but retain a small footprint. From the start ECCE would endeavour to buffer as much of the file as memory allowed while earlier editors could only buffer one line of the file at a time.

ECCE became the default text editor for computers at the University of Edinburgh and remained almost unchanged for a period of almost 25 years. The editors survival is attributed to the fact that thousands of undergraduates and postgraduates would have used the tool in their higher education and wherever in the world they settled the benefits of ECCE were promoted and local implementations created from Hamish Dewar's source code. ECCE became one of the most popular and well respected text editors of the 1970s.

ECCE was originally written in Imp, a language created at the University of Edinburgh, the second implementation was coded in PDP-8 assembler and was ported to numerous other platforms. Sources are known to exist in Imp, Fortran, BCPL, Pascal, BBC Basic, LC, C, and various assembly languages. Further ports to CORAL66, ICL VME, and Babbage were known to once exist but may have become extinct.