Siirry sisältöön

B (ohjelmointikieli)

Wikipediasta
B
Yleinen suoritusmalli käännetty
Muistinhallinta manuaalinen
Kehittäjä Ken Thompson, Dennis Ritchie
Vaikutteet BCPL
Vaikuttanut C

B on aluksi Ken Thompsonin ja myöhemmin Dennis Ritchien kehittämä BCPL-kieleen perustuva järjestelmäohjelmointikieli.[1][2][3] Kieli on kehitetty Bell Labsissa noin vuonna 1969 PDP-7:lle.[1]

Kielellä oli osuus C-kielen suorana edeltäjänä ja Unix-käyttöjärjestelmän kehityksessä.[1] Kieli on käännettävä kieli ilman tyyppijärjestelmää.[4] B-kielen kehityksessä Thompson tuskaili muistimäärän rajoitteiden kanssa kirjoittaessan B:n uudestaan. Jokaisen ominaisuuden lisäys kieleen kasvatti kääntäjän kokoa, mutta uuden ominaisuuden käyttö toteutuksessa vähensi sen muistitarvetta. Kieleen lisättiin muun muassa =+ -operaattori Algol 68:n mukaan (myöhemmin += C-kielessä), sekä ++ ja -- -operaattorit. PDP-7 oli vielä liian rajoittunut kielen laajamittaiseen käyttöön. Ritchie lisäsi ristiinkääntäjän GE-635 -koneen konekieleen: kääntäjä tuotti 36-bittiselle suurtietokoneelle koodia 18-bittisellä koneella ajettaessa. Kun Unix-projekti sai käyttöönsä PDP-11-koneen kielen rajoitteet tulivat ilmeisiksi ja Ritchie kehitti laajennetun kielen NB ("new B"), joka johti C-kieleen.[5]

Kielessä on jo useita C-kieleen päätyneitä konsepteja ja ominaisuuksia kuten lvalue ja rvalue (nk. oikea ja vasen arvo), aaltosulkujen käyttö ohjelmalohkoissa ja unary toiminnot.[3]

Esimerkki B-kielen ohjelmasta:[4]

main( ) {
  auto a, b, c, sum;

  a = 1; b = 2; c = 3;
  sum = a+b+c;
  putnumb(sum);
}
  1. a b c Ritchie, Dennis M.: The Development of the C Language bell-labs.com. Viitattu 24.7.2017.
  2. THE PROGRAMMING LANGUAGE B bell-labs.com. Viitattu 27.7.2017.
  3. a b Thompson, Ken: Users' Reference to B bell-labs.com. Viitattu 27.7.2017.
  4. a b Kernighan, B. W.: A TUTORIAL INTRODUCTION TO THE LANGUAGE B bell-labs.com. Arkistoitu 3.4.2017. Viitattu 27.7.2017.
  5. Dennis M. Ritchie: The development of the C programming language dl.acm.org. tammikuu 1996. doi:10.1145/234286.1057834 Viitattu 6.1.2026. (englanniksi)

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.