Acorn C/C++

Acorn C/C++ is a set of C/C++ programming tools for use under the RISC OS operating system. The tools use the Norcroft compiler suite and were authored by Codemist and Acorn Computers. The tools provide some facilities offered by a fully integrated development environment.

Acorn included a copy of the Norcroft compiler targeted at the ARM architecture for RISC OS in the following development software.


 * Acornsoft ANSI C – 1988
 * Acornsoft ANSI C (Release 2)
 * Acorn ANSI C (Release 3) – 1989
 * Acorn Desktop C (Release 4)
 * Acorn C/C++ (Release 5) – 1995

History
Acorn's work on ANSI C compilers was begun around 1987, with a commercial release in 1988 for its Archimedes computer. Desktop C and Desktop Assembler were released in 1991. Codemist worked primarily on the ANSI C standard, while Acorn concentrated on the RISC OS specifics and optimisation for the ARM. Both parties exchanged sources regularly.

The tools were originally developed by university academics Alan Mycroft and Arthur C Norman of Codemist. Their development was taken up by Acorn and subsequently taken over by Castle Technology, who later added the lacking C99 support. Castle funded further development by means of a subscription scheme. In early 2009, development and sales of the tools were transferred to RISC OS Open.

Subsequent enhancements have included adding the post-ARMv5 instructions to the standalone assembler tool, ObjAsm, and code generation by the C compiler to use those instructions where natural to do so from the language. In October 2020 a number of extensions to support the C18 standard were made available to developers.

Uses
The Norcroft compiler can be used to produce RISC OS modules, as well as compiling parts of the operating system itself. Before beginning development of the Inform programming language, Graham Nelson originally used Norcroft C to develop his text adventure Curses.

The suite of tools is currently the only means of building a working copy of RISC OS, although it is ultimately intended that this will also be possible using a cross compiler, e.g. using the free software GCC system.