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 had a major influence on the design of the language Python, developed by Guido van Rossum, who formerly worked for several years on the ABC system in the mid-1980s.[3] [4]

Features

Its designers claim that ABC programs are typically around a quarter the size of the equivalent Pascal or C programs, and more readable.[5] 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, and it is ported to Unix, DOS, Atari, and Apple 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

More details on ABC can be found in the book "The ABC Programmer's Handbook" by Leo Geurts, Lambert Meertens and Steven Pemberton (ISBN 0-13-000027-2). A newsletter and mailing list were available from CWI.

External links

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. 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.
  4. 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.
  5. Web site: Pemberton . Steven . 2012-02-22 . The ABC Programming Language: a short introduction . Centrum Wiskunde & Informatica (CWI) . Amsterdam . 2020-09-04.