ABC (programming language)

Short description: Programming language

ABCParadigms| multi-paradigm: imperative, procedural, structured

|

Designed by| Leo Geurts, Lambert Meertens, Steven Pemberton
Developer| Centrum Wiskunde & Informatica (CWI)
First appeared| January 1987; 39 years ago (1987-01)
Stable release|

1.05.02 / 1990; 36 years ago (1990)

Typing discipline| strong, polymorphic
OS| 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), 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]

## Contents

* 1 Features
* 2 Example
* 3 References
* 4 External links

## 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:

* 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

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. As of 2020[update], 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

## References

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. https://books.google.com/books?q=He-was-clearly-influenced-by-ALGOL-68. 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.
3. ↑ Hamilton, Naomi (2008-05-08). "The A-Z of Programming Languages: Python". Computerworld (IDG Communications). http://www.computerworld.com.au/index.php/id;66665771. 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". O’Reilly Media. http://www.onlamp.com/pub/a/python/2002/06/04/guido.html. "... 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". https://homepages.cwi.nl/~steven/abc/.

## External links

* ABC Programmer's Handbook

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/ABC (programming language). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=ABC_(programming_language)&oldid=4109"