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

Перейти к навигацииПерейти к поиску
B
Класс языкапроцедурный
Тип исполненияинтерпретируемый
Появился в1969
АвторКен Томпсон, Денис Ритчи: Bell Labs
Система типовстатическая
Диалекты внутренний стандарт
Испытал влияниеBCPL
Повлиял наC

Би (вторая буква английского алфавитаB) — интерпретируемый язык программирования, разработанный в AT&T Bell Telephone Laboratories. Является потомком языка BCPL и непосредственным предшественником Си. Би был в основном произведением Кена Томпсона при содействии Денниса Ритчи и был опубликован в 1969 году.

На язык B сильно повлиял BCPL, и его название, скорее всего, является сокращением от BCPL. Возможно также, что его название происходят от языка Bon, более раннего, но не связанного с B и весьма несхожего, языка программирования, который Томпсон разработал для использования в Multics. Название последнего, в свою очередь, происходит от имени жены Томпсона Bonnie либо от названия старотибетской религии бон[1].

Язык B был разработан для рекурсивных, нечисловых, машинно-независимых приложений, таких как программное обеспечение операционных систем и языков программирования.[2] Это был бестиповый язык, с единственным типом данных, который представлял собой естественный формат слова памяти базовой машины, каким бы он ни был. В зависимости от контекста слово обрабатывалось как целое число или адрес памяти.

Поскольку машины с обработкой ASCII-символов были уже обычным явлением, в частности DEC PDP-11, полученные фирмой Bell, стала важна поддержка символьных данных, помещённых в слова памяти. Бестиповая природа языка B была отмечена как недостаток, который заставил Томпсона и Ритчи разработать расширенную версию языка, поддерживающую новые внутренние и определяемые пользователем типы данных, которая стала языком программирования C (Си).

Примеры

  main() 
  {
     auto a, b, c, sum;
     a = 1; b = 2; c = 3;
     sum = a+b+c;
     putnumb(sum); 
  }

Следующий пример взят из книги «Users' Reference to B» Кена Томпсона:

/* The following function will print a non-negative number, n, to
   the base b, where 2<=b<=10.  This routine uses the fact that
   in the ASCII character set, the digits 0 to 9 have sequential
   code values.  */

printn(n, b) {
        extrn putchar;
        auto a;

        if (a = n / b)        /* assignment, not test for equality */
                printn(a, b); /* recursive */
        putchar(n % b + '0');
}

См. также

Примечания

  1. Ritchie, Dennis M. The Development of the C Language // ACM SIGPLAN Notices. — 1993. — Март (т. 28, № 3). — С. 201—208. — doi:10.1145/155360.155580. Архивировано 28 марта 2015 года.. — «Its name most probably represents a contraction of BCPL, though an alternate theory holds that it derives from Bon [Thompson 69], an unrelated language created by Thompson during the Multics days. Bon in turn was named either after his wife Bonnie, or (according to an encyclopedia quotation in its manual), after a religion whose rituals involve the murmuring of magic formulas.».
  2. Thompson, Ken Users' Reference to B. Bell Laboratories (7 января 1972). Дата обращения: 21 марта 2014. Архивировано 17 марта 2015 года.

Ссылки