Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
ABC (programming language)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Programming language}} {{Infobox programming language |name = ABC |logo = |paradigms = [[Multi-paradigm programming language|multi-paradigm]]: [[Imperative programming|imperative]], [[Procedural programming|procedural]], [[Structured programming|structured]] |designers = Leo Geurts, [[Lambert Meertens]], [[Steven Pemberton]] |developer = [[Centrum Wiskunde & Informatica]] (CWI) |released = {{Start date and age|1987|01}} |latest release version = 1.05.02 |latest release date = {{Start date and age|1990}}<!-- If known, add |mm|dd --> |typing = [[Strong and weak typing|strong]], [[Polymorphism (computer science)|polymorphic]] |implementations = | operating system = [[Unix-like]], [[Windows]], [[MacOS]], and [[Atari TOS]] |dialects = |influenced by = [[SETL]], [[ALGOL 68]]<ref>{{cite book |page=32 |url=https://books.google.com/books?q=He-was-clearly-influenced-by-ALGOL-68 |access-date=December 14, 2009 |last1=Biancuzzi |first1=Federico |last2=Warden |first2=Shane |title=Masterminds of Programming: Conversations with the Creators of Major Programming Languages |publisher=[[O'Reilly Media]] |date=April 2009 |isbn=978-0-596-51517-1 |quote=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]]}}</ref> |influenced = [[Python (programming language)|Python]] }} '''ABC''' is an [[Imperative programming|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]].<ref>{{cite journal |title=An Alternative Simple Language and Environment for PCs |first1=Steven |last1=Pemberton |author1-link=Steven Pemberton |date=January 1987 |journal=IEEE Software |volume=4 |issue=1 |pages=56β64 |doi=10.1109/MS.1987.229797|s2cid=12788361 }}</ref> It is interactive, structured, [[High-level programming language|high-level]], and intended to be used instead of [[BASIC]], [[Pascal (programming language)|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 (programming language)|Python]], developed by [[Guido van Rossum]], who formerly worked for several years on the ABC system in the mid-1980s.<ref>{{cite magazine |last=Hamilton |first=Naomi |date=2008-05-08 |url=http://www.computerworld.com.au/index.php/id;66665771 |title=The A-Z of Programming Languages: Python |magazine=Computerworld |publisher=IDG Communications |url-status=dead |archive-url=https://web.archive.org/web/20081229095320/http://www.computerworld.com.au/index.php/id%3B66665771 |archive-date=2008-12-29 |quote=... I figured I could design and implement a language 'almost, but not quite, entirely unlike' ABC, improving upon ABC's deficiencies, ... |access-date=2020-09-04}}</ref><ref>{{cite web |last=Stewart |first=Bruce |date=2002-06-04 |url=http://www.onlamp.com/pub/a/python/2002/06/04/guido.html |title=An Interview with Guido van Rossum |website=ONLamp.com |publisher=OβReilly Media |url-status=dead |archive-url=https://web.archive.org/web/20130313095540/http://www.onlamp.com/pub/a/python/2002/06/04/guido.html |archive-date=2013-03-13 |quote=... in my head I had analyzed some of the reasons it had failed. |access-date=2020-09-04}}</ref> ==Features== Its designers claim that ABC [[Computer program|programs]] are typically around a quarter the size of the equivalent [[Pascal (programming language)|Pascal]] or [[C (programming language)|C]] programs, and more readable.<ref>{{cite web |last=Pemberton |first=Steven |date=2012-02-22 |url=https://homepages.cwi.nl/~steven/abc/ |title=The ABC Programming Language: a short introduction |website=[[Centrum Wiskunde & Informatica]] (CWI) |place=Amsterdam |access-date=2020-09-04}}</ref> Key features include: *Only five basic [[data type]]s *No required variable declarations *Explicit support for [[top-down programming]] *Statement nesting is indicated by [[indent style|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 application|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 variable]]s (persistent), and multiple workspaces, and is available as an [[Interpreter (computer software)|interpreter]]β[[compiler]]. {{As of|2020}}, 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 <code>words</code> in a document:<ref>{{FOLDOC|ABC}}</ref> 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 ([https://homepages.cwi.nl/~steven/abc/programmers/handbook.html ISBN 0-13-000027-2]). A newsletter and mailing list were available from CWI. ==References== {{Reflist}} ==External links== *[https://homepages.cwi.nl/~steven/abc/programmers/handbook.html ABC Programmer's Handbook] {{Authority control}} {{DEFAULTSORT:Abc}} [[Category:Computer science in the Netherlands]] [[Category:Dutch inventions]] [[Category:Educational programming languages]] [[Category:Information technology in the Netherlands]] [[Category:Persistent programming languages]] [[Category:Procedural programming languages]] [[Category:Programming languages created in the 1980s]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:As of
(
edit
)
Template:Authority control
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:FOLDOC
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Search
Search
Editing
ABC (programming language)
Add topic