ABC (programming language)

Programming language


title: "ABC (programming language)" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["computer-science-in-the-netherlands", "dutch-inventions", "educational-programming-languages", "information-technology-in-the-netherlands", "persistent-programming-languages", "procedural-programming-languages", "programming-languages-created-in-the-1980s"] description: "Programming language" topic_path: "technology/programming-languages" source: "https://en.wikipedia.org/wiki/ABC_(programming_language)" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Programming language ::

::data[format=table title="Infobox programming language"]

FieldValue
nameABC
paradigmsmulti-paradigm: imperative, procedural, structured
designersLeo Geurts, Lambert Meertens, Steven Pemberton
developerCentrum Wiskunde & Informatica (CWI)
released
latest release version1.05.02
latest release date
typingstrong, polymorphic
operating systemUnix-like, Windows, MacOS, and Atari TOS
influenced bySETL, ALGOL 68
influencedPython
::

|name = ABC |logo = |paradigms = multi-paradigm: imperative, procedural, structured |designers = Leo Geurts, Lambert Meertens, Steven Pemberton |developer = Centrum Wiskunde & Informatica (CWI) |released = |latest release version = 1.05.02 |latest release date = |typing = strong, polymorphic |implementations = | operating system = Unix-like, Windows, MacOS, and Atari TOS |dialects = |influenced by = SETL, ALGOL 68 |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. 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.

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.

Features

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

  • Only five basic data types
  • No required variable declarations
  • Explicit support for top-down programming
  • Statement nesting is indicated by indentation, via the off-side rule
  • Infinite precision arithmetic, unlimited-sized lists and strings, and other features supporting orthogonality and ease of use by novices
  • Polymorphic commands and functions
  • Interactive environment with command completion, persistent workspaces, and no separate file handling

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 interpretercompiler. , 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.

References

References

  1. (April 2009). "Masterminds of Programming: Conversations with the Creators of Major Programming Languages". [[O'Reilly Media]].
  2. (January 1987). "An Alternative Simple Language and Environment for PCs". IEEE Software.
  3. "B".
  4. Hamilton, Naomi. (2008-05-08). "The A-Z of Programming Languages: Python". IDG Communications.
  5. Stewart, Bruce. (2002-06-04). "An Interview with Guido van Rossum". O’Reilly Media.
  6. Pemberton, Steven. (2012-02-22). "The ABC Programming Language: a short introduction".
  7. {{FOLDOC. ABC

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

computer-science-in-the-netherlandsdutch-inventionseducational-programming-languagesinformation-technology-in-the-netherlandspersistent-programming-languagesprocedural-programming-languagesprogramming-languages-created-in-the-1980s