Ugrás a tartalomhoz

„B (programozási nyelv)” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[nem ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Korrektúra szükséges
fordítás sablon a szerző alapján
1. sor: 1. sor:
{{korrektúra}}
{{korrektúra}}


{{Programozási nyelv infobox}}A '''B''' egy programozási nyelv, amelyet a Bell Labs fejlesztett ki 1969 körül. [[Kenneth Lane Thompson|Ken Thompson]] és [[Dennis M. Ritchie|Dennis Ritchie]] fejlesztette ki.
{{Programozási nyelv infobox}}
A '''B''' egy programozási nyelv, amelyet a Bell Labs fejlesztett ki 1969 körül. [[Kenneth Lane Thompson|Ken Thompson]] és [[Dennis M. Ritchie|Dennis Ritchie]] fejlesztette ki.


A B a BCPL- ből származik, és neve valószínűleg a BCPL összehúzódása lehet. Thompson munkatársa, Dennis Ritchie feltételezte, hogy a név Bon, egy korábbi, de nem rokon programozási nyelvre épülhet, amelyet Thompson a [[Multics|Multics-hoz]] tervezett. {{jegyzet*|"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 [[Bon|a religion]] whose rituals involve the murmuring of magic formulas."<ref name="chist">{{cite journal| first = Dennis M.| last = Ritchie| author-link = Dennis Ritchie| title = The Development of the C Language| date=March 1993 | journal = ACM SIGPLAN Notices| volume = 28 | issue = 3| pages = 201–208| url = http://www.bell-labs.com/usr/dmr/www/chist.html| doi = 10.1145/155360.155580}}</ref>}}
A B a BCPL- ből származik, és neve valószínűleg a BCPL összehúzódása lehet. Thompson munkatársa, Dennis Ritchie feltételezte, hogy a név Bon, egy korábbi, de nem rokon programozási nyelvre épülhet, amelyet Thompson a [[Multics|Multics-hoz]] tervezett. {{jegyzet*|"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 [[Bon|a religion]] whose rituals involve the murmuring of magic formulas."<ref name="chist">{{cite journal| first = Dennis M.| last = Ritchie| author-link = Dennis Ritchie| title = The Development of the C Language| date=March 1993 | journal = ACM SIGPLAN Notices| volume = 28 | issue = 3| pages = 201–208| url = http://www.bell-labs.com/usr/dmr/www/chist.html| doi = 10.1145/155360.155580}}</ref>}}


A B-t rekurzív, nem numerikus, gépfüggetlen alkalmazásokhoz, például rendszer- és nyelvi szoftverekhez tervezték. <ref name="bur">{{Cite web |first=Ken |author=Thompson |authorlink=Ken Thompson (computer programmer) |title=Users' Reference to B |date=7 January 1972 |accessdate=21 March 2014 |publisher=Bell Laboratories |url=https://www.bell-labs.com/usr/dmr/www/kbman.pdf |archiveurl=https://web.archive.org/web/20150317033259/https://www.bell-labs.com/usr/dmr/www/kbman.pdf |archivedate=17 March 2015}}</ref> Típus nélküli nyelv volt, az egyetlen adattípus az alapul szolgáló gép természetes [[Szó (számítástechnika)|memória szóformátuma volt]], bármi is legyen az. A kontextustól függően a szót [[Egész számok|egész számként]] vagy memóriacímként kezelték.
A B-t rekurzív, nem numerikus, gépfüggetlen alkalmazásokhoz, például rendszer- és nyelvi szoftverekhez tervezték.<ref name="bur">{{Cite web |first=Ken |author=Thompson |authorlink=Ken Thompson (computer programmer) |title=Users' Reference to B |date=7 January 1972 |accessdate=21 March 2014 |publisher=Bell Laboratories |url=https://www.bell-labs.com/usr/dmr/www/kbman.pdf |archiveurl=https://web.archive.org/web/20150317033259/https://www.bell-labs.com/usr/dmr/www/kbman.pdf |archivedate=17 March 2015}}</ref> Típus nélküli nyelv volt, az egyetlen adattípus az alapul szolgáló gép természetes [[Szó (számítástechnika)|memória szóformátuma volt]], bármi is legyen az. A kontextustól függően a szót [[Egész számok|egész számként]] vagy memóriacímként kezelték.


Amint az [[ASCII]] feldolgozással rendelkező gépek általánossá váltak, nevezetesen a [[PDP–11|Bellhez érkezett DEC PDP-11]], fontossá vált a memória szavakba töltött karakteradatok támogatása. A nyelv tipizálatlanságát hátránynak tekintették, ami Thompsont és Ritchie-t arra késztette, hogy dolgozzon ki egy új, belső és felhasználó által definiált típusokat támogató nyelv kibővített változatát, amely [[C (programozási nyelv)|C programozási nyelv]] lett.
Amint az [[ASCII]] feldolgozással rendelkező gépek általánossá váltak, nevezetesen a [[PDP–11|Bellhez érkezett DEC PDP-11]], fontossá vált a memória szavakba töltött karakteradatok támogatása. A nyelv tipizálatlanságát hátránynak tekintették, ami Thompsont és Ritchie-t arra késztette, hogy dolgozzon ki egy új, belső és felhasználó által definiált típusokat támogató nyelv kibővített változatát, amely [[C (programozási nyelv)|C programozási nyelv]] lett.


== Történelem ==
== Történelem ==
Körülbelül 1969, Ken Thompson és később Dennis Ritchie <ref name="bur" /> fejlesztette ki a B-t, főként a Thompson BCPL nyelvre építve, amelyet a [[Multics]] projektben használtak. B lényegében a BCPL-rendszertől megfosztották minden olyan alkatrészt, amelyet Thompson úgy érzett, hogy nélkülözheti annak érdekében, hogy az az akkori miniszámítógépek memóriakapacitásának megfelelő legyen. A BCPL-B átmenet magában foglalta azokat a változtatásokat is, amelyek Thompson preferenciáihoz igazodtak (főként egy tipikus program nem fehér szóközű karaktereinek csökkentése mentén). [[ALGOL|A BCPL tipikus ALGOL-]] szerű szintaxisának nagy része meglehetősen erősen megváltozott ebben a folyamatban. Az értékadó operátor <code>:=</code> változott <code>=</code>, valamint az egyenlő operátor <code>=</code> váltotta <code>==</code> .
Körülbelül 1969-ben Ken Thompson és később Dennis Ritchie<ref name="bur" /> fejlesztette ki a B-t, főként a Thompson BCPL nyelvre építve, amelyet a [[Multics]] projektben használtak. Lényegében a BCPL-rendszert megfosztották minden olyan elemtől, amelyről Thompson úgy érezte, hogy nélkülözheti annak érdekében, hogy az az akkori miniszámítógépek memóriakapacitásának megfelelő legyen. A BCPL-B átmenet magában foglalta azokat a változtatásokat is, amelyek Thompson preferenciáihoz igazodtak (főként egy tipikus program nem fehér szóközű karaktereinek csökkentése mentén). A BCPL tipikus [[ALGOL]]-szerű szintaxisának nagy része meglehetősen erősen megváltozott ebben a folyamatban. Az értékadó operátor <code>:=</code> változott <code>=</code>, valamint az egyenlő operátor <code>=</code> váltotta <code>==</code>.


Thompson "kétcím-hozzárendelési operátorokat" <code>x =+ y</code> szintaxissal, hogy y-t adjon x-hez (C-ben az operátor <code>+=</code> ír). Ez a szintaxis Douglas McIlroy TMG- implementációjából származott, amelyben először B fordítóját hajtották végre (és a TMG-hez az ALGOL 68 <code>x +:= y</code> szintaxisából érkezett). <ref>{{Cite web |author=Michael S. Mahoney |authorlink=Michael Sean Mahoney |url=https://www.princeton.edu/~hos/mike/transcripts/mcilroy.htm |title=Interview with M.D. McIlroy |date=18 August 1989 |work=Princeton.edu}}</ref> Thompson tovább ment, feltalálva a növekmény és csökkentés operátorokat ( <code>++</code> és <code>--</code> ). Prefix , esetleg postfix pozíciójuk determinálja, hogy az értéket az operandus módosítása előtt , esetleg után vesszük-e. Ez az újítás nem a B legkorábbi verzióiban volt. Dennis Ritchie szerint az állampolgárok sok esetben azt feltételezték, hogy a DEC PDP-11 automatikus növekményes , továbbá automatikus csökkentési címmódjaihoz lettek létrehozva, de ez történelmileg lehetetlen, mivel a gép A B kifejlesztésekor még nem léteznek.
Thompson "kétcím-hozzárendelési operátorokat" <code>x =+ y</code> szintaxissal, hogy y-t adjon x-hez (C-ben az operátor <code>+=</code> ír). Ez a szintaxis Douglas McIlroy TMG- implementációjából származott, amelyben először B fordítóját hajtották végre (és a TMG-hez az ALGOL 68 <code>x +:= y</code> szintaxisából érkezett).<ref>{{Cite web |author=Michael S. Mahoney |authorlink=Michael Sean Mahoney |url=https://www.princeton.edu/~hos/mike/transcripts/mcilroy.htm |title=Interview with M.D. McIlroy |date=18 August 1989 |work=Princeton.edu}}</ref> Thompson tovább ment, feltalálva a növekmény és csökkentés operátorokat (<code>++</code> és <code>--</code>). Prefix, esetleg postfix pozíciójuk determinálja, hogy az értéket az operandus módosítása előtt, esetleg után vesszük-e. Ez az újítás nem a B legkorábbi verzióiban volt. Dennis Ritchie szerint az állampolgárok sok esetben azt feltételezték, hogy a DEC PDP-11 automatikus növekményes, továbbá automatikus csökkentési címmódjaihoz lettek létrehozva, de ez történelmileg lehetetlen, mivel a gép A B kifejlesztésekor még nem léteznek.


A for hurok pontosvesszőjét Ken Thompson kölcsönkapta Stephen Johnson munkájából. <ref name="ken">{{Cite web |title=VCF East 2019 -- Brian Kernighan interviews Ken Thompson |author=Ken Thompson |url=https://www.youtube.com/watch?v=EY6q5dv_B-o&t=2330 |quote="I saw Johnson's semicolon version of the for loop and I put that in [B], I stole it." |accessdate=2020-11-16}}</ref>
A for hurok pontosvesszőjét Ken Thompson kölcsönkapta Stephen Johnson munkájából.<ref name="ken">{{Cite web |title=VCF East 2019 -- Brian Kernighan interviews Ken Thompson |author=Ken Thompson |url=https://www.youtube.com/watch?v=EY6q5dv_B-o&t=2330 |quote="I saw Johnson's semicolon version of the for loop and I put that in [B], I stole it." |accessdate=2020-11-16}}</ref>


B típus nélküli, pontosabban egyetlen adattípusa van: a számítógépes szó. A legtöbb szolgáltató (pl <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code> ) kezeljük ezt, mint egy egész, de mások kezelik, mint egy memória cím is másolunk . Sok más szempontból nagyon hasonlított a C korai verziójára. Van néhány könyvtárfunkció, köztük olyanok, amelyek homályosan hasonlítanak a C szabványos I / O könyvtárának <ref name="bur" /> Thompson szavai szerint: "B és a régi a régi C nagyon hasonló nyelv volt, kivéve az összes típust [C-ben]". <ref name="ken" />
A B típus nélküli, pontosabban egyetlen adattípusa van: a számítógépes szó. A legtöbb szolgáltató (pl <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code> ) kezeljük ezt, mint egy egész, de mások kezelik, mint egy memória cím is másolunk. Sok más szempontból nagyon hasonlított a C korai verziójára. Van néhány könyvtárfunkció, köztük olyanok, amelyek homályosan hasonlítanak a C szabványos I / O könyvtárának<ref name="bur" /> Thompson szavai szerint: "B és a régi a régi C nagyon hasonló nyelv volt, kivéve az összes típust [C-ben]".<ref name="ken" />


A korai megvalósításokat a korai [[Unix|Unixot]] használó DEC PDP-7 és [[PDP–11|PDP-11]] minikomputerek, valamint a GCOS operációs rendszert futtató Honeywell {{Nowrap|[[GE-600 series|GE 645]]}} <ref name="Evolution">{{Cite journal|first=Dennis M.|author=Ritchie|title=The Evolution of the Unix Time-sharing System|url=https://www.bell-labs.com/usr/dmr/www/hist.html|archiveurl=https://web.archive.org/web/20150611114353/https://www.bell-labs.com/usr/dmr/www/hist.html|archivedate=11 June 2015|journal=AT&T Bell Laboratories Technical Journal|volume=63|year=1984|pages=1577–1593}}</ref> 36 bites nagygépek végezték. A legkorábbi PDP-7 implementációk szálkódra fordultak, és Ritchie írt egy fordítót a TMG segítségével, amely gépi kódot készített. <ref>{{Cite web |url=http://www.multicians.org/tmg.html |title=TMG |publisher=multicians.org}}</ref><ref>{{Cite web |url=https://www.bell-labs.com/usr/dmr/www/chist.html |archiveurl=https://web.archive.org/web/20150611114355/https://www.bell-labs.com/usr/dmr/www/chist.html |archivedate=11 June 2015 |title=The Development of the C Language |first=Dennis M. |author=Ritchie |authorlink=Dennis Ritchie |publisher=Bell Labs/Lucent Technologies}}</ref> 1970-ben beszereztek egy PDP-11-et és menetes kódot használtak a port számára; egy assembler, dc és maga a B nyelv B betűvel íródott a számítógép [[Bootstrap|indításához.]] A yacc korai verzióját készítették ezzel a PDP-11 konfigurációval. Ritchie ebben az időszakban vállalta a karbantartást.<ref name="reader">{{cite web| url=http://www.cs.dartmouth.edu/~doug/reader.pdf| title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986| author=M. D. McIlroy| year=1987| work=CSTR| publisher=Bell Labs}}</ref>
A korai megvalósításokat a korai [[Unix|Unixot]] használó DEC PDP-7 és [[PDP–11|PDP-11]] minikomputerek, valamint a GCOS operációs rendszert futtató Honeywell {{Nowrap|[[GE-600 series|GE 645]]}}<ref name="Evolution">{{Cite journal|first=Dennis M.|author=Ritchie|title=The Evolution of the Unix Time-sharing System|url=https://www.bell-labs.com/usr/dmr/www/hist.html|archiveurl=https://web.archive.org/web/20150611114353/https://www.bell-labs.com/usr/dmr/www/hist.html|archivedate=11 June 2015|journal=AT&T Bell Laboratories Technical Journal|volume=63|year=1984|pages=1577–1593}}</ref> 36 bites nagygépek végezték. A legkorábbi PDP-7 implementációk szálkódra fordultak, és Ritchie írt egy fordítót a TMG segítségével, amely gépi kódot készített.<ref>{{Cite web |url=http://www.multicians.org/tmg.html |title=TMG |publisher=multicians.org}}</ref><ref>{{Cite web |url=https://www.bell-labs.com/usr/dmr/www/chist.html |archiveurl=https://web.archive.org/web/20150611114355/https://www.bell-labs.com/usr/dmr/www/chist.html |archivedate=11 June 2015 |title=The Development of the C Language |first=Dennis M. |author=Ritchie |authorlink=Dennis Ritchie |publisher=Bell Labs/Lucent Technologies}}</ref> 1970-ben beszereztek egy PDP-11-et és menetes kódot használtak a port számára; egy assembler, dc és maga a B nyelv B betűvel íródott a számítógép [[Bootstrap|indításához.]] A yacc korai verzióját készítették ezzel a PDP-11 konfigurációval. Ritchie ebben az időszakban vállalta a karbantartást.<ref name="reader">{{cite web| url=http://www.cs.dartmouth.edu/~doug/reader.pdf| title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986| author=M. D. McIlroy| year=1987| work=CSTR| publisher=Bell Labs}}</ref>


A B atipicitása értelmes a Honeywell, a PDP-7 , továbbá sok régebbi számítógépen, de ez nehézséget jelent a PDP-11 részére, mert nehéz elegánsan hozzáférni ahhoz, ami a PDP-11 , valamint a legmodernebb számítógépekkel rendelkezik. Karakter adattípus teljesen támogatott. 1971-től Ritchie megváltoztatta a nyelvet, miközben a fordítót konvertálta gépi kód előállítására, vagyis a változók adatainak megadásával. 1971 , ezen kívül 1972 között B "Új B" -vé (NB), majd C-vé fejlődött.
A B atipicitása értelmes a Honeywell, a PDP-7, továbbá sok régebbi számítógépen, de ez nehézséget jelent a PDP-11 részére, mert nehéz elegánsan hozzáférni ahhoz, ami a PDP-11, valamint a legmodernebb számítógépekkel rendelkezik. A karakter adattípus teljesen támogatott. 1971-től Ritchie megváltoztatta a nyelvet, miközben a fordítót konvertálta gépi kód előállítására, vagyis a változók adatainak megadásával. 1971–1972-ben B "Új B"-vé (NB), majd C-vé fejlődött.


B majdnem kihalt, a [[C (programozási nyelv)|C nyelv]] helyettesítette. Ugyanakkor továbbra is a GCOS nagyszámítógépek as of 2014 ) <ref name="uwtools">{{Cite web |title=Thinkage UW Tools Package |accessdate=26 March 2014 |publisher=Thinkage, Ltd. |url=http://www.thinkage.ca/english/gcos/product-uwtools.shtml}}</ref> és egyes [[Beágyazott rendszer|beágyazott rendszereken]] ( as of 2000 ) különböző okokból: korlátozott hardver kis rendszerekben, kiterjedt könyvtárak, szerszámok, licencelési költségek, és egyszerűen elég jó a munkához. <ref name="plb">{{Cite web |author=Johnson and Kernighan |authorlink=Stephen C. Johnson |title=THE PROGRAMMING LANGUAGE B |accessdate=21 March 2014 |publisher=Bell Laboratories |url=https://www.bell-labs.com/usr/dmr/www/bintro.html |archiveurl=https://web.archive.org/web/20150611114355/https://www.bell-labs.com/usr/dmr/www/bintro.html |archivedate=11 June 2015}}</ref> A nagy hatású AberMUD eredetileg B nyelven íródott.
A B majdnem kihalt, a [[C (programozási nyelv)|C nyelv]] helyettesítette. Ugyanakkor továbbra is a GCOS nagyszámítógépek<ref name="uwtools">{{Cite web |title=Thinkage UW Tools Package |accessdate=26 March 2014 |publisher=Thinkage, Ltd. |url=http://www.thinkage.ca/english/gcos/product-uwtools.shtml}}</ref> és egyes [[Beágyazott rendszer|beágyazott rendszereken]] különböző okokból: korlátozott hardver kis rendszerekben, kiterjedt könyvtárak, szerszámok, licencelési költségek, és egyszerűen elég jó a munkához.<ref name="plb">{{Cite web |author=Johnson and Kernighan |authorlink=Stephen C. Johnson |title=THE PROGRAMMING LANGUAGE B |accessdate=21 March 2014 |publisher=Bell Laboratories |url=https://www.bell-labs.com/usr/dmr/www/bintro.html |archiveurl=https://web.archive.org/web/20150611114355/https://www.bell-labs.com/usr/dmr/www/bintro.html |archivedate=11 June 2015}}</ref> A nagy hatású AberMUD eredetileg B nyelven íródott.


== Példák ==
== Példák ==
82. sor: 83. sor:
==Hivatkozások==
==Hivatkozások==
{{jegyzetek}}
{{jegyzetek}}

== Fordítás ==
{{fordítás|en|B (programming language)|oldid=1019273499}}
 
 
==További információk==
==További információk==
* ''[http://man.cat-v.org/unix-1st/1/b B (1) kézikönyv oldala a Unix First Edition kiadványból]''
* ''[http://man.cat-v.org/unix-1st/1/b B (1) kézikönyv oldala a Unix First Edition kiadványból]''
* ''[https://www.bell-labs.com/usr/dmr/www/chist.html A C nyelv fejlődése]'', [[Dennis M. Ritchie]] . B-t helyezi a BCPL és a [[C (programozási nyelv)|C]] összefüggésbe.
* ''[https://www.bell-labs.com/usr/dmr/www/chist.html A C nyelv fejlődése]'', [[Dennis M. Ritchie]] a B-t helyezi a BCPL és a [[C (programozási nyelv)|C]] összefüggésbe.
* ''[https://www.bell-labs.com/usr/dmr/www/kbman.html A felhasználók hivatkozása B-re]'', Ken Thompsonra. Leírja a [[PDP–11|PDP-11]] verziót.
* ''[https://www.bell-labs.com/usr/dmr/www/kbman.html A felhasználók hivatkozása B-re]'', Ken Thompsonra. Leírja a [[PDP–11|PDP-11]] verziót.
* ''[https://www.bell-labs.com/usr/dmr/www/bintro.html A programozási nyelv B]'', SC Johnson & BW Kernighan, CS TR 8 műszaki jelentés, Bell Labs (1973. január). A GCOS verzió a Honeywell berendezésen.
* ''[https://www.bell-labs.com/usr/dmr/www/bintro.html A programozási nyelv B]'', SC Johnson & BW Kernighan, CS TR 8 műszaki jelentés, Bell Labs (1973. január). A GCOS-verzió a Honeywell berendezésen.
* ''[http://www.thinkage.ca/english/gcos/expl/b/index.html B Nyelvi kézikönyv]'', Thinkage Ltd. A GCOS-on használt nyelv gyártási verziója, beleértve a nyelvet és a futásidejű könyvtárat is.
* ''[http://www.thinkage.ca/english/gcos/expl/b/index.html B Nyelvi kézikönyv]'', Thinkage Ltd. A GCOS-on használt nyelv gyártási verziója, beleértve a nyelvet és a futásidejű könyvtárat is.



A lap 2021. június 21., 08:54-kori változata

B
Paradigmaprocedurális programozás
Megjelent1969
TervezőKenneth Lane Thompson
Fejlesztő
Hatással volt ráBCPL

A B egy programozási nyelv, amelyet a Bell Labs fejlesztett ki 1969 körül. Ken Thompson és Dennis Ritchie fejlesztette ki.

A B a BCPL- ből származik, és neve valószínűleg a BCPL összehúzódása lehet. Thompson munkatársa, Dennis Ritchie feltételezte, hogy a név Bon, egy korábbi, de nem rokon programozási nyelvre épülhet, amelyet Thompson a Multics-hoz tervezett. [* 1]

A B-t rekurzív, nem numerikus, gépfüggetlen alkalmazásokhoz, például rendszer- és nyelvi szoftverekhez tervezték.[2] Típus nélküli nyelv volt, az egyetlen adattípus az alapul szolgáló gép természetes memória szóformátuma volt, bármi is legyen az. A kontextustól függően a szót egész számként vagy memóriacímként kezelték.

Amint az ASCII feldolgozással rendelkező gépek általánossá váltak, nevezetesen a Bellhez érkezett DEC PDP-11, fontossá vált a memória szavakba töltött karakteradatok támogatása. A nyelv tipizálatlanságát hátránynak tekintették, ami Thompsont és Ritchie-t arra késztette, hogy dolgozzon ki egy új, belső és felhasználó által definiált típusokat támogató nyelv kibővített változatát, amely C programozási nyelv lett.

Történelem

Körülbelül 1969-ben Ken Thompson és később Dennis Ritchie[2] fejlesztette ki a B-t, főként a Thompson BCPL nyelvre építve, amelyet a Multics projektben használtak. Lényegében a BCPL-rendszert megfosztották minden olyan elemtől, amelyről Thompson úgy érezte, hogy nélkülözheti annak érdekében, hogy az az akkori miniszámítógépek memóriakapacitásának megfelelő legyen. A BCPL-B átmenet magában foglalta azokat a változtatásokat is, amelyek Thompson preferenciáihoz igazodtak (főként egy tipikus program nem fehér szóközű karaktereinek csökkentése mentén). A BCPL tipikus ALGOL-szerű szintaxisának nagy része meglehetősen erősen megváltozott ebben a folyamatban. Az értékadó operátor := változott =, valamint az egyenlő operátor = váltotta ==.

Thompson "kétcím-hozzárendelési operátorokat" x =+ y szintaxissal, hogy y-t adjon x-hez (C-ben az operátor += ír). Ez a szintaxis Douglas McIlroy TMG- implementációjából származott, amelyben először B fordítóját hajtották végre (és a TMG-hez az ALGOL 68 x +:= y szintaxisából érkezett).[3] Thompson tovább ment, feltalálva a növekmény és csökkentés operátorokat (++ és --). Prefix, esetleg postfix pozíciójuk determinálja, hogy az értéket az operandus módosítása előtt, esetleg után vesszük-e. Ez az újítás nem a B legkorábbi verzióiban volt. Dennis Ritchie szerint az állampolgárok sok esetben azt feltételezték, hogy a DEC PDP-11 automatikus növekményes, továbbá automatikus csökkentési címmódjaihoz lettek létrehozva, de ez történelmileg lehetetlen, mivel a gép A B kifejlesztésekor még nem léteznek.

A for hurok pontosvesszőjét Ken Thompson kölcsönkapta Stephen Johnson munkájából.[4]

A B típus nélküli, pontosabban egyetlen adattípusa van: a számítógépes szó. A legtöbb szolgáltató (pl +, -, *, / ) kezeljük ezt, mint egy egész, de mások kezelik, mint egy memória cím is másolunk. Sok más szempontból nagyon hasonlított a C korai verziójára. Van néhány könyvtárfunkció, köztük olyanok, amelyek homályosan hasonlítanak a C szabványos I / O könyvtárának[2] Thompson szavai szerint: "B és a régi a régi C nagyon hasonló nyelv volt, kivéve az összes típust [C-ben]".[4]

A korai megvalósításokat a korai Unixot használó DEC PDP-7 és PDP-11 minikomputerek, valamint a GCOS operációs rendszert futtató Honeywell GE 645[5] 36 bites nagygépek végezték. A legkorábbi PDP-7 implementációk szálkódra fordultak, és Ritchie írt egy fordítót a TMG segítségével, amely gépi kódot készített.[6][7] 1970-ben beszereztek egy PDP-11-et és menetes kódot használtak a port számára; egy assembler, dc és maga a B nyelv B betűvel íródott a számítógép indításához. A yacc korai verzióját készítették ezzel a PDP-11 konfigurációval. Ritchie ebben az időszakban vállalta a karbantartást.[8]

A B atipicitása értelmes a Honeywell, a PDP-7, továbbá sok régebbi számítógépen, de ez nehézséget jelent a PDP-11 részére, mert nehéz elegánsan hozzáférni ahhoz, ami a PDP-11, valamint a legmodernebb számítógépekkel rendelkezik. A karakter adattípus teljesen támogatott. 1971-től Ritchie megváltoztatta a nyelvet, miközben a fordítót konvertálta gépi kód előállítására, vagyis a változók adatainak megadásával. 1971–1972-ben B "Új B"-vé (NB), majd C-vé fejlődött.

A B majdnem kihalt, a C nyelv helyettesítette. Ugyanakkor továbbra is a GCOS nagyszámítógépek[9] és egyes beágyazott rendszereken különböző okokból: korlátozott hardver kis rendszerekben, kiterjedt könyvtárak, szerszámok, licencelési költségek, és egyszerűen elég jó a munkához.[10] A nagy hatású AberMUD eredetileg B nyelven íródott.

Példák

A következő példák Ken Thompson által a Felhasználók B-hivatkozásából (Users' Reference to B)[2]

/* 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;

Megjegyzések

  1. "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."[1]

Hivatkozások

  1. Ritchie, Dennis M. (1993. március 1.). „The Development of the C Language”. ACM SIGPLAN Notices 28 (3), 201–208. o. DOI:10.1145/155360.155580.  
  2. a b c d Thompson: Users' Reference to B. Bell Laboratories, 1972. január 7. [2015. március 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. március 21.)
  3. Michael S. Mahoney: Interview with M.D. McIlroy. Princeton.edu, 1989. augusztus 18.
  4. a b Ken Thompson: VCF East 2019 -- Brian Kernighan interviews Ken Thompson. (Hozzáférés: 2020. november 16.) „"I saw Johnson's semicolon version of the for loop and I put that in [B], I stole it."”
  5. Ritchie (1984). „The Evolution of the Unix Time-sharing System”. AT&T Bell Laboratories Technical Journal 63, 1577–1593. o. [2015. június 11-i dátummal az eredetiből archiválva].  
  6. TMG. multicians.org
  7. Ritchie: The Development of the C Language. Bell Labs/Lucent Technologies. [2015. június 11-i dátummal az eredetiből archiválva].
  8. M. D. McIlroy: A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986. CSTR. Bell Labs, 1987
  9. Thinkage UW Tools Package. Thinkage, Ltd.. (Hozzáférés: 2014. március 26.)
  10. Johnson and Kernighan: THE PROGRAMMING LANGUAGE B. Bell Laboratories. [2015. június 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. március 21.)

Fordítás

Ez a szócikk részben vagy egészben a B (programming language) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.  

További információk