Skip to content
Surf Wiki
Save to docs
technology/programming-languages

From Surf Wiki (app.surf) — the open knowledge base

ABC (programming language)

Programming language


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

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

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
Info: 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.

Want to explore this topic further?

Ask Mako anything about ABC (programming language) — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report