B (programmeringsspråk)

B.
Bell Laboratories og Ken Thompson
Generell informasjon
Paradigme Imperativ ( prosedyremessig )
Dukket opp i 1969
Designet av Kenneth L. Thompson , Dennis M. Ritchie
type system ingen typer
implementeringer flere
påvirket av BCPL
har påvirket C

B er navnet på et programmeringsspråk utviklet ved Bell Labs , forgjengeren til programmeringsspråket C.

Det var stort sett et verk av Kenneth L. Thompson med bidrag av Dennis M. Ritchie , først utgitt i 1969 [ referanse nødvendig ] .

Historikk

B var i hovedsak en forenkling av BCPL -språket , og fjernet alle komponenter som Thompson anså som brukbare for å passe til minnet til datidens minidatamaskiner . Språket inkluderte også noen endringer i samsvar med Thompsons preferanser (mest for å redusere antall tegn i et typisk program).

I likhet med BCPL og FORTH hadde B bare én datatype , som tilsvarte et maskinord . De fleste operatører behandlet det som et heltall; for eksempel + (addisjon), - (subtraksjon), * (multiplikasjon) eller / (divisjon). Andre operatører behandlet den som en minneadresse som skal refereres til: en peker . B tilbød operatører som tillot deg å få adressen til en gitt variabel, eller skrive til adressen pekt på av en pekervariabel.

De tidligste implementeringene var for PDP-7 og PDP-11 minidatamaskiner som kjører eldre versjoner av UNIX ; og for 36-bits Honeywell stormaskiner som kjører GCOS -systemet .

Evolusjon

Den typeløse naturen til B var fornuftig på Honeywell, PDP-7 og mange andre eldre datamaskiner, men det var et problem på PDP-11 fordi det var vanskelig å få tilgang til datategntyper som PDP-11 og de fleste moderne datamaskiner støttes. Fra og med 1971 gjorde Ritchie endringer i språket samtidig som han konverterte kompilatoren sin til å produsere eget maskinspråk . Det mest bemerkelsesverdige var tillegget av forskjellige datatyper for variabler.

I løpet av 1971 og 1972 utviklet B seg først til "New B" ( New B , NB ) og senere til C. Senere, tidlig i 1973, ble en forprosessor lagt til på forespørsel fra Alan Snyder.

Innsatsen var fullstendig nok i år til at UNIX -kjernen for PDP-11 ble skrevet om i C.

I løpet av perioden 1972-1973 var det behov for å portere den til Honeywell 635 og IBM 360/370, så Mike Lesk skrev den "bærbare I/O-pakken" som skulle bli "standard I/O" ( standard I / O). /O eller stdio ) av C-språket.

B fortsatte å bli brukt inn på 1990 -tallet på Honeywell stormaskiner og visse innebygde systemer av en rekke årsaker, inkludert bruk av begrenset maskinvare i disse systemene; omfattende biblioteker, verktøy; eller rett og slett fordi det var godt nok til å få jobben gjort.

Navn

B var sterkt påvirket av BCPL, og navnet var sannsynligvis en sammentrekning av "BCPL". Imidlertid kan navnet ha vært basert på Bon-programmeringsspråket , et eldre, ikke-relatert B-språk designet av Thompson for bruk i MULTICS .

Eksempler

Følgende eksempelfunksjon er hentet fra Users' Reference to B av Ken Thompson:

/* Følgende funksjon skriver ut et ikke-negativt tall, n, i grunntallet b, hvor 2<=b<=10. Denne rutinen benytter seg av det faktum at i ASCII-tegnsettet har sifrene 0 til 9 sekvensielle kodeverdier. */ printn ( n , b ) { ekstern putchar ; bil til ; if ( a = n / b ) /* oppgave, ingen likhetssjekk */ printn ( a , b ); /* tilbakevendende */ putchar ( n % b + '0' ); }

Dette eksempelprogrammet i B bruker funksjonen ovenfor for å legge til tre tall, og skrive ut resultatet på skjermen.

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

Eksterne lenker