ABC (programming language)
Interactive, high-level language that influenced Python's design.
Wikipedia / Wikimedia Commons
ABC is an imperative, general-purpose programming language and integrated development environment created at the Centrum Wiskunde & Informatica (CWI) in Amsterdam by Leo Geurts, Lambert Meertens, and Steven Pemberton. Designed as an interactive, structured, high-level language, it was meant to replace BASIC, Pascal, or AWK for teaching and prototyping, though not for systems programming. ABC popularized the use of indentation to define block structure—a key innovation that later influenced Python’s design. Python’s creator, Guido van Rossum, spent several years working on the ABC system in the mid-1980s.
The language’s creators claim ABC programs are typically about a quarter the size of equivalent Pascal or C programs and are more readable. Key features include only five basic data types, no required variable declarations, explicit support for top-down programming, statement nesting via indentation (the off-side rule), infinite precision arithmetic, unlimited-sized lists and strings, and polymorphic commands and functions. Its interactive environment offers command completion, persistent workspaces, and no separate file handling. However, ABC was originally a monolithic implementation, making it unable to adapt to new needs like creating a graphical user interface, and it could not directly access the underlying file system or operating system. The full ABC system includes a structure editor, suggestions, static variables, and multiple workspaces, and is available as an interpreter–compiler. As of 2020, the latest version is 1.05.02, for Unix, MS-DOS, Atari ST, and MacOS.
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
ABC has gone through multiple iterations, with the current version being the fourth 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 or early 1990s.
- developed_by
- Leo Geurts, Lambert Meertens, Steven Pemberton
- institution
- Centrum Wiskunde & Informatica (CWI), Amsterdam, Netherlands
- type
- Imperative general-purpose programming language and IDE
- influenced
- Python language
- key_feature
- Popularized indentation for block structure
Lore & Background
ABC was created at CWI in Amsterdam by Leo Geurts, Lambert Meertens, and Steven Pemberton. It was designed as an interactive, structured, high-level language intended for teaching or prototyping, not for systems programming. Its designers claimed that ABC programs are typically around a quarter the size of equivalent Pascal or C programs and more readable. ABC popularized the use of indentation for block structure, a groundbreaking feature that later inspired Python.
Key features include only five basic data types, no required variable declarations, explicit support for top-down programming, statement nesting indicated by indentation via the off-side rule, infinite precision arithmetic, unlimited-sized lists and strings, and polymorphic commands and functions. The full ABC system includes a structure editor, suggestions, static variables, and multiple workspaces, and is available as an interpreter–compiler.
Reader's Guide
ABC holds significance primarily as a direct influence on the Python programming language. Guido van Rossum, Python's creator, worked on the ABC system for several years in the mid-1980s, and ABC's design—particularly its use of indentation for block structure, minimal syntax, and interactive environment—shaped Python's core philosophy. ABC's emphasis on readability and reduced code size (claimed to be a quarter of equivalent Pascal or C programs) anticipated modern concerns about code clarity. However, ABC's monolithic implementation and inability to interface with the underlying operating system or file system limited its adaptability, preventing it from evolving into a general-purpose systems language. Its legacy thus lies less in direct adoption and more in its conceptual contributions, especially the off-side rule for block structure, which Python famously adopted. ABC also demonstrated the viability of an integrated development environment with persistent workspaces and command completion for teaching and prototyping, ideas that later became common in educational and rapid-development tools.
Did You Know?
- ABC was developed from the B language, which was the first language to use indentation for block structure.
- Guido van Rossum, creator of Python, worked on the ABC system for several years in the mid-1980s.
- ABC programs are claimed to be typically around a quarter the size of equivalent Pascal or C programs.
- The full ABC system includes a structure editor, suggestions, static variables, and multiple workspaces.
Frequently Asked Questions
Who created ABC and where did it come from?
ABC was developed by Leo Geurts, Lambert Meertens, and Steven Pemberton while working at the Centrum Wiskunde & Informatica (CWI) in Amsterdam, the Netherlands.
What was ABC's most notable technical innovation?
Through its predecessor, the B language, ABC became the first programming language to use indentation rather than braces or keywords to define block structure, a convention that later became standard in many modern languages.
How is ABC connected to Python?
ABC's design philosophy and syntax choices directly influenced the creation of Python, which inherited the indentation-based block structure and the high-level, readability-first approach that ABC championed.
What was ABC originally meant to be used for?
It was built as an interactive, structured, high-level language intended to replace BASIC, Pascal, or AWK in educational settings and for quick prototyping, while explicitly not targeting systems-level programming.
What kind of language is ABC, and did it include anything beyond code?
ABC is an imperative, general-purpose programming language that shipped bundled with its own integrated development environment, making it a complete toolset rather than just a standalone compiler.
More in Dutch inventions 1-24
Spotted an error? Know more?
This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record
