# B語言

B語言是一种通用的程序设计语言。自從被C語言取代之後，它幾乎已遭棄置。

設計者 肯·汤普森 肯·汤普森、丹尼斯·利奇 1969年，​53年前[1] 无类型（所有东西都是字） .b BCPL, PL/I, TMG（英语：TMG (language)） C语言

B語言大約是於1969年時由美國貝爾實驗室電腦科學家──肯·湯普森丹尼斯·利奇的支持下設計出來的。肯·湯普森最初想在UNIX上開發一個Fortran編譯器，但後來引進了BCPL的風格，形成一個新的語言。

## 例子

```/* 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;
/* Wikipedia note: auto declares a variable with automatic
storage (lifetime is function scope), not "automatic typing"
as in C++11. */

if (a = n / b)        /* assignment, not test for equality */
printn(a, b); /* recursive */
putchar(n % b + '0');
}
```
```/* The following program will calculate the constant e-2 to about
4000 decimal digits, and print it 50 characters to the line in
groups of 5 characters.  The method is simple output conversion
of the expansion
1/2! + 1/3! + ... = .111....
where the bases of the digits are 2, 3, 4, . . . */

main() {
extrn putchar, n, v;
auto i, c, col, a;

i = col = 0;
while(i<n)
v[i++] = 1;
while(col<2*n) {
a = n+1 ;
c = i = 0;
while (i<n) {
c =+ v[i] *10;
v[i++]  = c%a;
c =/ a--;
}

putchar(c+'0');
if(!(++col%5))
putchar(col%50?' ': '*n');
}
putchar('*n*n');
}
v[2000];
n 2000;
```

## 引用

1. ^ B - computer programming language. [2021-03-14]. （原始内容存档于2015-02-10）.
2. ^ Thompson, Ken. Users' Reference to B (PDF). Bell Laboratories. 7 January 1972 [21 March 2014]. （原始内容 (PDF)存档于17 March 2015）.