B (linguaggio di programmazione)
B linguaggio di programmazione | |
---|---|
Autore | Ken Thompson, Dennis Ritchie |
Data di origine | 1969 |
Utilizzo | General purpose |
Paradigmi | Procedurale, Strutturato |
Tipizzazione | Statica, debole |
Estensioni comuni | .b
|
Influenzato da | BCPL, PL/I |
Ha influenzato | C |
Implementazione di riferimento | |
Sistema operativo | Unix, GCOS |
B è un linguaggio di programmazione derivato dal BCPL sviluppato intorno al 1969 da Ken Thompson e Dennis Ritchie presso i Laboratori Bell.
Essenzialmente si tratta di un BCPL privato di tutti quei componenti di cui Thompson ritenne di poter fare a meno, così da poterlo utilizzare sui minicomputer di quel tempo che avevano una quantità di memoria limitata.
Come il BCPL e il FORTH, il B aveva un unico tipo di dato, la parola. La maggior parte delle operazioni trattava la parola come un intero (i.e. +, -, *, /) ma altre come un indirizzo di memoria da dereferenziare. In molti altri casi assomigliava molto a una versione preliminare del C. Esistevano alcune librerie di funzioni, inclusa una che vagamente ricordava le funzioni che poi andranno a far parte della libreria I/O standard del C.
Le prime implementazioni furono per i minicomputer DEC PDP-7 e PDP-11 che utilizzavano il sistema operativo UNIX e per i mainframe a 36 bit Honeywell su sistema operativo GCOS.
Esempio
[modifica | modifica wikitesto]Il seguente esempio è estratto da "Users' Reference to B" di Ken Thompson. La seguente funzione stampa un numero non negativo, n, in base b, compresa tra 2 e 10. Questa routine sfrutta il fatto che nel sistema di caratteri ASCII i codici delle cifre da 0 a 9 hanno valori in sequenza.
printn(n,b) {
extrn putchar;
auto a;
if(a=n/b) /* assegnamento, non un test di eguaglianza */
printn(a, b); /* ricorsivo */
putchar(n%b + '0');
}