ABC (programming language) explained

ABC
Paradigms:multi-paradigm

imperative, procedural, structured

Designers:Leo Geurts, Lambert Meertens, Steven Pemberton
Developer:Centrum Wiskunde & Informatica (CWI)
Latest Release Version:1.05.02
Typing:strong, polymorphic
Operating System:Unix-like, Windows, MacOS, and Atari TOS
Influenced By:SETL, ALGOL 68[1]
Influenced:Python

ABC is an imperative general-purpose programming language and integrated development environment (IDE) developed at Centrum Wiskunde & Informatica (CWI), in Amsterdam, Netherlands by Leo Geurts, Lambert Meertens, and Steven Pemberton.[2] It is interactive, structured, high-level, and intended to be used instead of BASIC, Pascal, or AWK. It is intended for teaching or prototyping, but not as a systems-programming language. ABC was developed from the B language, an earlier creation by Meertens and Pemberton (unrelated to Thompson and Ritchie's language of the same name) which was the first language to use indentation for block structure.[3]

ABC had a major influence on the design of the Python language, whose creator, Guido van Rossum, had worked for several years on the ABC system in the mid-1980s.[4] [5]

Features

Its designers claim that ABC programs are typically around a quarter the size of the equivalent Pascal or C programs, and more readable.[6] Key features include:

ABC was originally a monolithic implementation, leading to an inability to adapt to new requirements, such as creating a graphical user interface (GUI). ABC could not directly access the underlying file system and operating system.

The full ABC system includes a programming environment with a structure editor (syntax-directed editor), suggestions, static variables (persistent), and multiple workspaces, and is available as an interpreter–compiler., the latest version is 1.05.02, for Unix, MS-DOS, Atari ST, and MacOS.

Example

An example function to collect the set of all words in a document:

HOW TO RETURN words document: PUT IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection

Implementations

ABC has been through multiple iterations, with the current version being the 4th major release. Implementations exist for Unix-like systems, MS-DOS/Windows, Macintosh, and other platforms. The source code was made available via Usenet in the late 1980s/early 1990s.

Further reading

Notes and References

  1. Book: 32 . Masterminds of Programming: Conversations with the Creators of Major Programming Languages . December 14, 2009 . Biancuzzi . Federico . Warden . Shane . . April 2009 . 978-0-596-51517-1 . He [Lambert Meertens] was clearly influenced by ALGOL 68's philosophy of providing constructs that can be combined in many different ways to produce all sorts of different data structures or ways of structuring a program. – Guido van Rossum.
  2. An Alternative Simple Language and Environment for PCs . Steven . Pemberton . Steven Pemberton . January 1987 . IEEE Software . 4 . 1 . 56–64 . 10.1109/MS.1987.229797. 12788361 .
  3. Web site: B . Dictionary of Information Technology . 5 December 2025.
  4. Hamilton . Naomi . 2008-05-08 . The A-Z of Programming Languages: Python . Computerworld . IDG Communications . dead . https://web.archive.org/web/20081229095320/http://www.computerworld.com.au/index.php/id%3B66665771 . 2008-12-29 . ... I figured I could design and implement a language 'almost, but not quite, entirely unlike' ABC, improving upon ABC's deficiencies, ... . 2020-09-04.
  5. Web site: Stewart . Bruce . 2002-06-04 . An Interview with Guido van Rossum . ONLamp.com . O’Reilly Media . dead . https://web.archive.org/web/20130313095540/http://www.onlamp.com/pub/a/python/2002/06/04/guido.html . 2013-03-13 . ... in my head I had analyzed some of the reasons it had failed. . 2020-09-04.
  6. Web site: Pemberton . Steven . 2012-02-22 . The ABC Programming Language: a short introduction . Centrum Wiskunde & Informatica (CWI) . Amsterdam . 2020-09-04.