ABC (язык программирования)
| ABC | |
|---|---|
| Класс языка | мультипарадигменный: императивный, процедурный, структурный |
| Появился в | январь 1987 |
| Автор | Лео Гёртс, Ламберт Мертенс, Стивен Пембертон |
| Разработчик | Центр математики и информатики (CWI) |
| Выпуск | 1.05.02 (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
Примечания
- ↑ 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.
- ↑ Computer Languages History Архивная копия от 7 января 2006 на Wayback Machine (англ.)
- ↑ The A-Z of Programming Languages: Python Архивировано 29 декабря 2008 года. (англ.)
- ↑ An Interview with Guido van Rossum Архивировано 15 апреля 2012 года. (англ.)
- ↑ The History of Python. Дата обращения: 2 марта 2021. Архивировано 23 января 2021 года.
Ссылки
- A Short Introduction to the ABC Language (англ.) (Краткое введение в язык ABC)
- ABC Programmer’s Handbook (англ.) (ABC: Справочник программиста)