
COMAL is a programming language. It is a classic third-generation imperative interpreted language, similar to BASIC but with a wider range of structures and facilities. It has often been described as intermediate between BASIC and Pascal, but this is rather misleading since it has features in advance of either. The name stands for "COMmon Algorithmic Language".
The language was developed by Benedict Loefstedt and Borge Christensen in 1973, and was designed specifically for beginners, particularly at high school level. It soon became popular in Europe and Scandinavia, and gained a foothold in the United States. The COMAL-80 standard for the language was adopted as an introductory language in Denmark and in Ireland, while in Scotland, although not prescribed, the AcornSOFT implementation for 8-bit BBC micros came into widespread use. In Holland, attempts were made to have it adopted as the principal teaching language for secondary school use. A few universities and colleges of higher and further education adopted it for introductory programming courses. A wide body of literature was produced: see the bibliography in the Comalites Forum. Today, the language is known to have users in Norway, Denmark, Sweden, Ireland, Germany, Holland, UK, USA and Nepal.
The most important beginner-friendly innovations of the language were:
Versions were written for: CP/M machines, including the Apple II with a Z80 adapter card; the Commodore PET, 64 and 128, and the Commodore Amiga; Acorn 8-bit machines including the Acorn Electron, BBC "A", "B", Master and Master Compact, and Acorn 32-bit machines emulating their 8-bit predecessors; and the IBM PC/AT and its descendants, runing DOS or OS/2. More information on the platform variants can be found on the platforms page.
The UniCOMAL implementation for DOS and OS/2 introduced aspects of object-orientation to the language, including external modules and user-defined structures. Modules could be written in C and Assembler, thus allowing the language to be extended beyond its original design limits.