Brooker also developed an autocode for the
Ferranti Mercury in the 1950s in conjunction with the University of Manchester.
Mercury Autocode had a limited repertoire of
variables a-z and a'-z' and, in some ways resembled early versions of the later
Dartmouth BASIC language. It pre-dated
ALGOL, having no concept of
stacks and hence no
recursion or
dynamically-allocated arrays. In order to overcome the relatively small store size available on Mercury, large programs were written as distinct "chapters", each of which constituted an
overlay. Some skill was required to minimise time-consuming transfers of control between chapters. This concept of overlays from
drum under user control became common until
virtual memory became available in later machines. Slightly different dialects of Mercury Autocode were implemented for the
Ferranti Atlas (distinct from the later
Atlas Autocode) and the
ICT 1300 and
1900 range. The version for the
EDSAC 2 was devised by
David Hartley of
University of Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it was a straight development from Mercury Autocode adapted for local circumstances, and was noted for its object code optimisation and source-language diagnostics which were advanced for the time. A version was developed for the successor
Titan (the prototype Atlas 2 computer) as a temporary stop-gap while a more substantially advanced language known as
CPL was being developed. CPL was never completed but did give rise to
BCPL (developed by M. Richards), which in turn led to
B and ultimately
C. A contemporary but separate thread of development,
Atlas Autocode was developed for the University of Manchester
Atlas 1 machine. ==Other autocodes==