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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
У этого термина существуют и другие значения, см. B и Би
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.. — «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. Архивировано 11 июня 2015 года.

Ссылки[править | править код]