Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Features  





2 Example  





3 Implementations  





4 Further reading  





5 References  





6 External links  














ABC (programming language)






العربية
Azərbaycanca

Български
Čeština
Deutsch
Español
فارسی
Français
Galego

Հայերեն
Italiano
עברית
Magyar

Bahasa Melayu
Nederlands

Oʻzbekcha / ўзбекча

Polski
Português
Română
Русский
Slovenčina
Српски / srpski
Svenska
Türkçe
Українська


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


ABC
Paradigmsmulti-paradigm: imperative, procedural, structured
Designed byLeo Geurts, Lambert Meertens, Steven Pemberton
DeveloperCentrum Wiskunde & Informatica (CWI)
First appearedJanuary 1987; 37 years ago (1987-01)
Stable release

1.05.02 / 1990; 34 years ago (1990)

Typing disciplinestrong, polymorphic
OSUnix-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 PascalorC programs, and more readable.[5] 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 (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, the latest version is 1.05.02, and it is ported to Unix, DOS, Atari, and Apple MacOS.

Example[edit]

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

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.

Further reading[edit]

More details on ABC can be found in the book "The ABC Programmer's Handbook" by Leo Geurts, Lambert Meertens and Steven Pemberton (ISBN 0-13-000027-2). A newsletter and mailing list were available from CWI.

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
  • ^ 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.
  • ^ 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, ...
  • ^ 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.
  • ^ Pemberton, Steven (2012-02-22). "The ABC Programming Language: a short introduction". Centrum Wiskunde & Informatica (CWI). Amsterdam. Retrieved 2020-09-04.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=ABC_(programming_language)&oldid=1222810736"

    Categories: 
    Computer science in the Netherlands
    Dutch inventions
    Educational programming languages
    Information technology in the Netherlands
    Persistent programming languages
    Procedural programming languages
    Programming languages created in the 1980s
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles containing potentially dated statements from 2020
    All articles containing potentially dated statements
    Articles with J9U identifiers
    Articles with LCCN identifiers
     



    This page was last edited on 8 May 2024, at 01:46 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki