Samiksha Jaiswal (Editor)

ABC (programming language)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer
  
CWI

Typing discipline
  
strong, polymorphic

Stable release
  
1.05.02

Paradigm
  
multi-paradigm: imperative, procedural, structured

Designed by
  
Leo Geurts, Lambert Meertens, Steven Pemberton

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.

Contents

The language had a major influence on the design of the Python programming language (as a counterexample); Guido van Rossum, who developed Python, previously worked for several years on the ABC system in the early 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.
  • Does not require 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. 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

    References

    ABC (programming language) Wikipedia