Interested Article - Би (язык программирования)
- 2021-07-28
- 1
Би (вторая буква английского алфавита — B ) — интерпретируемый язык программирования, разработанный в AT&T Bell Telephone Laboratories . Является потомком языка BCPL и непосредственным предшественником Си . Би был в основном произведением Кена Томпсона при содействии Денниса Ритчи и был опубликован в 1969 году .
На язык B сильно повлиял BCPL, и его название, скорее всего, является сокращением от BCPL. Возможно также, что его название происходят от языка , более раннего, но не связанного с B и весьма несхожего, языка программирования, который Томпсон разработал для использования в Multics . Название последнего, в свою очередь, происходит от имени жены Томпсона Bonnie либо от названия старотибетской религии бон .
Язык B был разработан для рекурсивных , нечисловых, машинно-независимых приложений, таких как программное обеспечение операционных систем и языков программирования . Это был бестиповый язык, с единственным типом данных, который представлял собой естественный формат слова памяти базовой машины, каким бы он ни был. В зависимости от контекста слово обрабатывалось как целое число или адрес памяти .
Поскольку машины с обработкой 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');
}
См. также
Примечания
- Ritchie, Dennis M. // ACM SIGPLAN Notices. — 1993. — Март ( т. 28 , № 3 ). — С. 201—208 . — doi : . 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.».
- Thompson, Ken . Bell Laboratories (7 января 1972). Дата обращения: 21 марта 2014. 17 марта 2015 года.
Ссылки
- (англ.)
- (англ.)
- 2021-07-28
- 1