Jump to content

ABC (programming language)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by MichaelMaggs (talk | contribs) at 21:31, 17 April 2019 (Importing Wikidata short description: "Programming language" (Shortdesc helper)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ABC
Paradigmmulti-paradigm: imperative, procedural, structured
Designed byLeo Geurts, Lambert Meertens, Steven Pemberton
DeveloperCWI
Stable release
1.05.02
Typing disciplinestrong, polymorphic
Websitehomepages.cwi.nl/~steven/abc/
Influenced by
SETL & ALGOL 68[1]
Influenced
Python

ABC is an imperative general-purpose programming language and programming environment developed at CWI, 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 not meant to be a systems-programming language but is intended for teaching or prototyping.

The language had a major influence on the design of the Python programming language; Guido van Rossum, who developed Python, previously worked for several years on the ABC system in the mid 1980s.[2][3]

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:

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

The full ABC system includes a programming environment with syntax-directed editing, suggestions, persistent variables, and multiple workspaces - and is available as an interpreter/compiler, currently at version 1.05.02, and ported to Unix, DOS, Atari, and Apple Macintosh.

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

Notes

  1. ^ "He 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 Federico Biancuzzi; Shane Warden (April 2009). Masterminds of Programming: Conversations with the Creators of Major Programming Languages. O'Reilly Media. p. 32. ISBN 0-596-51517-0. Retrieved December 14, 2009.
  2. ^ The A-Z of Programming Languages: Python Archived 2008-12-29 at the Wayback Machine. "...I figured I could design and implement a language 'almost, but not quite, entirely unlike' ABC, improving upon ABC's deficiencies...", Computerworld (2008-08-05). Retrieved on 2014-07-08.
  3. ^ An Interview with Guido van Rossum. "... in my head I had analyzed some of the reasons it had failed..." ONLamp.com. Retrieved on 2013-07-08. archived copy

References

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.

Books