ABC (язык программирования)

ABC
Класс языка мультипарадигменный: императивный, процедурный, структурный
Появился в январь 1987 (1987-01)
Автор Лео Гёртс, Ламберт Мертенс, Стивен Пембертон
Разработчик Центр математики и информатики (CWI)
Выпуск 1.05.02 (1990 (1990))
Система типов сильная, полиморфная
Испытал влияние Сетл, Алгол 68[1]
Повлиял на Python
Сайт homepages.cwi.nl/… (англ.)
ОС Unix-подобные, Windows, MacOS и Atari TOS

ABC — императивный, процедурный, структурный высокоуровневый язык программирования общего назначения, а также интегрированная среда разработки, разработанные в Центре математики и информатики в Нидерландах в 1987 году[2].

Задумывался для использования в целях, аналогичных применению Бейсика, Паскаля и AWK — как язык для изучения программирования и использования непрограммистами в повседневной работе; не предназначался для системного программирования.

Поддерживает парадигму разработки программы сверху вниз. В языке вводится только пять базовых типов данных, не требующих предварительной декларации. Типы данных обеспечивают бесконечную арифметическую точность, неограниченные размеры строк и списков, а также другие возможности, упрощающие работу новичков. Программы на ABC не могут получить прямого доступа к файловой системе или функциям операционной системы. По утверждениям создателей программы на ABC в четыре раза меньше эквивалентных программ на Си или Паскале, при этом лучше читаемы.

Оригинальная IDE ABC включает редактор, интерпретатор и компилятор, доступные для Unix, Linux, DOS, Windows, Atari и Macintosh. Заявляется также поддержка разработки на ABC в интегрированной среде разработки Geany.

Основные разработчики — Ламберт Мертенс и Стивен Пембертон, среди участников группы разработки — будущий создатель Python Гвидо ван Россум[3][4][5], многие решения из ABC впоследствии нашли отражение в Python (в том числе реализации списков, строк, правило отступов).

Программа, возвращающая список слов в документе:

PUT {} IN collection
FOR line IN document:
  FOR word IN split line:
    IF word not.in collection:
      INSERT word IN collection
RETURN collection

Примечания

  1. Biancuzzi, Federico. Masterminds of Programming: Conversations with the Creators of Major Programming Languages / Federico Biancuzzi, Shane Warden. — O'Reilly Media, April 2009. — P. 32. — «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». — ISBN 978-0-596-51517-1.
  2. Computer Languages History Архивная копия от 7 января 2006 на Wayback Machine (англ.)
  3. The A-Z of Programming Languages: Python Архивировано 29 декабря 2008 года. (англ.)
  4. An Interview with Guido van Rossum Архивировано 15 апреля 2012 года. (англ.)
  5. The History of Python. Дата обращения: 2 марта 2021. Архивировано 23 января 2021 года.

Ссылки