Jump to content
Wikipedia The Free Encyclopedia

ABC (programming language)

From Wikipedia, the free encyclopedia
Programming language
ABC
Paradigms multi-paradigm: imperative, procedural, structured
Designed by Leo Geurts, Lambert Meertens, Steven Pemberton
Developer Centrum Wiskunde & Informatica (CWI)
First appearedJanuary 1987; 38 years ago (1987-01)
Stable release
1.05.02 / 1990; 35 years ago (1990)
Typing discipline strong, polymorphic
OS Unix-like, Windows, MacOS, and Atari TOS
Websitehomepages.cwi.nl/~steven/abc/
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

[edit ]

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:

  • 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. As of 2020[update] , the latest version is 1.05.02, for Unix, MS-DOS, Atari ST, and MacOS.

Example

[edit ]

An example function to collect the set of all words in a document:[6]

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

[edit ]

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

[edit ]
  1. ^ Biancuzzi, Federico; Warden, Shane (April 2009). Masterminds of Programming: Conversations with the Creators of Major Programming Languages. O'Reilly Media. p. 32. ISBN 978-0-596-51517-1 . Retrieved December 14, 2009. 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. ^ Pemberton, Steven (January 1987). "An Alternative Simple Language and Environment for PCs". IEEE Software. 4 (1): 56–64. doi:10.1109/MS.1987.229797. S2CID 12788361.
  3. ^ Hamilton, Naomi (2008年05月08日). "The A-Z of Programming Languages: Python". Computerworld. IDG Communications. Archived from the original on 2008年12月29日. Retrieved 2020年09月04日. ... I figured I could design and implement a language 'almost, but not quite, entirely unlike' ABC, improving upon ABC's deficiencies, ...
  4. ^ Stewart, Bruce (2002年06月04日). "An Interview with Guido van Rossum". ONLamp.com. O’Reilly Media. Archived from the original on 2013年03月13日. Retrieved 2020年09月04日. ... in my head I had analyzed some of the reasons it had failed.
  5. ^ Pemberton, Steven (2012年02月22日). "The ABC Programming Language: a short introduction". Centrum Wiskunde & Informatica (CWI). Amsterdam. Retrieved 2020年09月04日.
  6. ^ This article is based on material taken from ABC at 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.

Further reading

[edit ]

AltStyle によって変換されたページ (->オリジナル) /