COMAL (''Common Algorithmic Language'') is a computer
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
developed in
Denmark
)
, song = ( en, "King Christian stood by the lofty mast")
, song_type = National and royal anthem
, image_map = EU-Denmark.svg
, map_caption =
, subdivision_type = Sovereign state
, subdivision_name = Kingdom of Denmark
, establishe ...
by Børge R. Christensen and Benedict Løfstedt and originally released in 1975. COMAL was one of the few
structured programming languages that was available for and comfortably usable on
8-bit
In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data buses of ...
home computers. It was based on the seminal
BASIC programming language, adding multi-line statements and well-defined
subroutines among other additions.
"COMAL Kernel Syntax & Semantics" contains the formal definition of the language.
Further extensions are common to many implementations.
Design
COMAL was created as a mixture of the prevalent educational programming languages of the time,
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
,
Pascal, and, at least in the
Commodore and
Compis versions, the
turtle graphics
In computer graphics, turtle graphics are vector graphics using a relative cursor (the " turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language.
Overview
The turtle has three attri ...
of
Logo
A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordm ...
. The language was meant to introduce
structured programming elements in an environment where BASIC would normally be used.
With the benefit of hindsight, COMAL looks like a
Structured BASIC that has reasonably well-written, vendor neutral, free, standards. It is never necessary to use GOTO, and line numbers are purely for editing purposes rather than flow control. Note, however, that the standardised language only supports control structuring, not data structuring such as records or structs (commercial implementations such as UniCOMAL 3
supported this as an extension).
History
COMAL was originally developed in
Denmark
)
, song = ( en, "King Christian stood by the lofty mast")
, song_type = National and royal anthem
, image_map = EU-Denmark.svg
, map_caption =
, subdivision_type = Sovereign state
, subdivision_name = Kingdom of Denmark
, establishe ...
by mathematics teacher Børge R. Christensen. The school in which he taught had received a
Data General NOVA 1200 minicomputer in 1972, with the expectation that the school would begin to teach
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
. Christensen, who had taken a short course on the subject at university, was expected to lead the program and to maintain the computer system. The NOVA 1200 was supplied with
Data General Extended BASIC
Data General Extended BASIC, also widely known as Nova Extended BASIC, was a BASIC programming language interpreter for the Data General Nova series minicomputers. It was based on the seminal Dartmouth BASIC, including the Fifth Edition's strin ...
, and Christensen quickly became frustrated with the way in which the unstructured language led students to write low-quality code that was difficult to read and thus mark. Christensen met with computer scientist Benedict Løfstedt, who encouraged him to read ''
Systematic Programming'', the then-new book on programming language design by
Niklaus Wirth, the creator of
Pascal. Christensen was impressed, but found that he could not use Pascal directly, as it lacked the interactive
shell that made BASIC so easy for students to develop with. Over the next six months Christensen and Løfstedt corresponded by mail to design an alternative to BASIC which retained its interactive elements but added structured elements from Pascal. By 1974 the language's definition was complete but Christensen was unsuccessful in attracting interest from software firms in developing an implementation. He therefore worked with two of his students, to whom he had taught NOVA 1200
machine language, to write an implementation themselves, over another six months. The first proof-of-concept implementation (running a five-line loop) was ready on 5 August 1974, and the first release (on
paper tape
Five- and eight-hole punched paper tape
Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop
Punched tape or perforated paper tape is a form of data storage ...
, as this was what the NOVA 1200 used for
input-output) was ready in February 1975. Development costs had been around . Only now did the system (which had previously used an internal Danish name) pick up the name ''COMAL'', for ''Common Algorithmic Language'', inspired by
ALGOL
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by th ...
, with which Christensen had been experimenting. The first release was therefore named ''COMAL 75''. Christensen subsequently wrote a textbook on the language which evolved into ''Beginning COMAL''.
In 1978, Christensen began to adapt COMAL such that it would run on
microcomputers, which were becoming available, worried that without such an implementation he would be required to teach and use BASIC again as Danish schools acquired the new machines. By 1980 a version of COMAL developed in conjection with a college group was able to run on the
Zilog Z80, and thus ''COMAL 80'' was released. Around the same time, a Danish firm introduced the
Comet
A comet is an icy, small Solar System body that, when passing close to the Sun, warms and begins to release gases, a process that is called outgassing. This produces a visible atmosphere or Coma (cometary), coma, and sometimes also a Comet ta ...
, a very capable microcomputer for the time, which would be the first machine to run a version of what would look like the later COMAL releases. Christensen subsequently stepped back from COMAL development around 1980-81, which was handed over to groups including UniComal,
started by Mogens Kjaer, who had written to Christensen with critiques of COMAL and subsequently
ported it to the
Commodore PET for release 0.14. At this time, Danish schools insisted that COMAL be available on any microcomputer they purchased.
In the early 1980s,
Apple Computer
Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
won a contract to supply
Apple II computers running
CP/M and COMAL to Irish secondary schools.
It was popular for education
and some textbooks were locally written.
In 1984
Acornsoft
Acornsoft was the software arm of Acorn Computers, and a major publisher of software for the BBC Micro and Acorn Electron. As well as games, it also produced a large number of educational titles, extra computer languages and business and u ...
released a COMAL implementation, by David Christensen, Jim Warwick and David Evers, for their 8-bit
BBC Micro
The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputers and associated peripherals designed and built by Acorn Computers in the 1980s for the BBC Computer Literacy Project. Designed with an empha ...
and
Acorn Electron computers (with a manual by Paul Christensen and Roy Thornton
)
Between 1984-1987
TeleNova, a subsidiary of the industrial arm of the Swedish Telecoms system, manufactured a
desktop PC called "
Compis" for the educational sector. An enhanced version of COMAL was supplied as the standard programming language for this PC. Versions were created for both
CP/M-86
CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research al ...
and
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few oper ...
. The latter version is available for
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
. The (Swedish) reference manual is .
In 1990 Thomas Lundy and Rory O'Sullivan produced the definitive text on COMAL Programming.
They matched and compared COMAL with
BBC Structured Basic.
As of 2016 COMAL is still actively in use as an educational programming language. Some high schools in the United Kingdom continue to use it to teach the subject of Computing.
Availability
COMAL was available for:
*
BBC Micro
The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputers and associated peripherals designed and built by Acorn Computers in the 1980s for the BBC Computer Literacy Project. Designed with an empha ...
*
Commodore PET (
public domain software)
*
Commodore 64 (public domain software)
*
Commodore 128
*
Amiga
*
Compis/
Scandis
{{Infobox computer
, aka = Scandis (Norway, Denmark and Finland)
, logo =
, image = Telenova Compis.jpg
, caption = An example Compis system, showing two 5.25-inch floppy disk drives, keyboard, monitor and external ...
*
CP/M
*
IBM PC
*
Tiki 100
*
ZX Spectrum
*
Grundy NewBrain
*
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
Examples
* "Hello, world!"
*:
PRINT "HELLO, WORLD!"
* Conditions
*:
IF condition THEN
instructions
ENDIF
* Loops
*:
FOR number:= 1 TO 1000 DO
PRINT number
ENDFOR
* Print statements with variables
*:
INPUT "What's your favourite number? " :nmr#
PAGE
PRINT "Your favourite number is " ; nmr#
See also
*
Action! (programming language)
References
Further reading
* Thomas Lundy & Rory O'Sullivan: ''Beginning Structured Programming in BASIC and COMAL'', 1990
* Roy Atherton: ''Structured programming with COMAL.'' Horwood, Chichester 1982, .
*
* Børge R. Christensen: ''Beginning Comal.'' Horwood, Chichester 1982, .
* Børge R. Christensen:
COMAL Reference Guide'' Toronto PET Users Group, Toronto Ontario, .
*
* Len Lindsay:
COMAL handbook'' Reston Publishing, Reston, VA, 1983, .
* Gordon Shigley:
COMAL Workbook'' Comal Users Group, USA, 1985, .
External links
OpenCOMALfor
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
,
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few oper ...
and
Win32
A fork of the abovefor standards-compliant
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, mainly
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
and
Mac OS X
UniComal 3.11packaged to run under
DOSBox
Description of COMAL, versions, and characteristics(1984)
{{Authority control
Programming languages
Educational programming languages
Structured programming languages
Procedural programming languages
Programming languages created in 1973