Ecce

HomePage | RecentChanges | EditorIndex | TextEditorFamilies | Preferences

 Edinburgh Compatible Context Editor - Line editor at the University of Edinburgh

 Author:        Hamish Dewar 
 Homepage:      http://history.dcs.ed.ac.uk/archive/apps/ecce/
 Download:      http://history.dcs.ed.ac.uk/archive/apps/ecce/gtoal/ecce.exe (DOS port using DJGPP)
 Manual:        http://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/ldsecce.html
 Specification: http://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/hmdecce.html
 Man Page:      http://history.dcs.ed.ac.uk/archive/apps/ecce/hwhitfield/ecce.txt
 Family:        LineEditorFamily EdinburghFamily
 Platform:      DEC PDP series, others
 License:       Copyrighted asserted by author, but unrestricted freeware in practice

ECCE is a LineEditor, but a rather nice one. It was written in Edinburgh in the 60's by Hamish Dewar, and used by just about everyone who went through Edinburgh from then until today. No-one who has used ECCE has ever conceded that another command-line editor is as powerful, simple to learn, or easy to use. ECCE has been remarkably stable over its 40-year lifetime, because the initial command set was logical and regular. Only a few changes have been necessary, for example to accomodate multiple buffers when computing moved from paper tapes to disk files.

ECCE was originally written in Imp (An algol-like language developed at Edinburgh) although the second implementation was in PDP-8 assembler; in subsequent years Edinburgh expats suffering withdrawal have reimplemented Ecce in many languages for many operating systems. Many of the Ecce implementations have been found by the Edinburgh Computer History project, along with the various manuals and are now available for download. A short introduction to ECCE is available at http://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/ecce8.txt

Ecce spun off some screen editors around 1980, although it was primarily a line editor with a multi-line display. A new derivative of ECCE (called VIDE) has been prototyped; VIDE is primarily a screen editor, but one which allows arbitrary ECCE commands to be bound to keys, and keystroke macros to be easily learned. The source of VIDE is online, but is not yet of the production quality of ECCE. Another screen-editor implementation that is available is a hack of ECCE which integrates it (somewhat poorly) into EMACS. By typing ^E, EMACS opens up an Ecce> command-line at the foot of the screen, where an ecce command can be entered and executed on the current buffer. Both of these implementations are considered somewhat radical among most ECCE users who continue to prefer the command-line. [GEC Computers] produced SALVE in mid 1980's, consisting of the ECCE command line combined with a screen editing window, both of which could be used together whilst editing a file.

ECCE uses the classic BufferGapMethod internally.

The 1978 ECCE manual by Lee Smith is online at http://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/ldsecce.html and a later manual by Hamish Dewar is also available at http://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/hmdecce.html

Although ECCE source code carries a copyright message from Hamish Dewar, it would be wrong to describe it as 'commercial' as the author has been quite clear that it is available to anyone who wants it, and is available by email if someone has a reason to request explicit permission to use the ECCE source code.

The known sources are available at http://history.dcs.ed.ac.uk/archive/apps/ecce/ - in C, Imp, Fortran, BCPL, Pascal, BBC Basic, LC, and two assembly languages. Implementations in HAL, CORAL66, and [Babbage] were known to once exist but have not yet been rediscovered. Most of those languages have more than one independent implementation, and a few more exist as paper scans which have not yet been rekeyed. This wide code base of ECCE may make it one of the most ported editors ever (ported as in rewritten, rather than merely recompiled on another platform). VECCE source code in Imp and C is also available.

-- GrahamToal?


HomePage | RecentChanges | EditorIndex | TextEditorFamilies | Preferences
Edit text of this page | View other revisions
Last edited June 2, 2010 6:26 am (diff)
Search: