Кіріспе
Процедуралық бағдарламалау тілі — Bell Labs зертханасында жасалған бағдарламалау тілі. B — 1969 жыл шамасында Кен Томпсон мен Деннис Ричи Bell Labs зертханасында жасаған бағдарламалау тілі. B тілі BCPL-ден туындаған, ал оның атауы BCPL-дің қысқартылған түрі болуы мүмкін. Томпсонның әріптесі Деннис Ричи бұл атаудың бұрынғы, бірақ байланысы жоқ, Multics жүйесінде пайдалану үшін Томпсон жасаған Bon бағдарламалау тіліне негізделген болуы мүмкін деп болжады. B тілі рекурсивті, сандық емес, машинаға тәуелсіз қолданбалар, мысалы, жүйелік және тілдік бағдарламалық қамтамасыздар үшін жасалған. Бұл типсіз тіл болатын, онда деректердің жалғыз түрі – негізгі машинаның табиғи жад сөзінің форматы ғана еді. Контекстке байланысты, сөз бүтін сан немесе жад адресі ретінде қарастырылатын. ASCII өңдеу мүмкіндігі бар машиналар, әсіресе Bell Labs-ке келген DEC PDP 11, кеңінен таралғанда, жад сөздерінде сақталған таңбалық деректерді қолдау маңызды болды. Тілдің типсіздігі кемшілік ретінде қарастырылды, бұл Томпсон мен Ричиге жаңа ішкі және пайдаланушы анықтаған типтерді қолдайтын тілдің кеңейтілген нұсқасын жасауға мүмкіндік берді, ол C бағдарламалау тіліне айналды.
a programming language developed at Bell Labs
B is a programming language developed at Bell Labs circa 1969 by Ken Thompson and Dennis Ritchie. B was derived from BCPL, and its name may possibly be a contraction of BCPL. Thompson's coworker Dennis Ritchie speculated that the name might be based on Bon, an earlier, but unrelated, programming language that Thompson designed for use on Multics. B was designed for recursive, non numeric, machine independent applications, such as system and language software. It was a typeless language, with the only data type being the underlying machine's natural memory word format, whatever that might be. Depending on the context, the word was treated either as an integer or a memory address. As machines with ASCII processing became common, notably the DEC PDP 11 that arrived at Bell Labs, support for character data stuffed in memory words became important. The typeless nature of the language was seen as a disadvantage, which led Thompson and Ritchie to develop an expanded version of the language supporting new internal and user defined types, which became the C programming language.
Тарих
1969 жылы Кен Томпсон өсім мен кему операторларын (++ және --) ойлап тауып, одан әрі дамытты. Олардың префикстік немесе постфикстік орналасуы операнд өгертілгенге дейін немесе кейін мәннің алынуын анықтайды. Бұл жаңалық B тілінің алғашқы нұсқаларында болған жоқ. Деннис Ричидің сөзіне сәйкес, көптеген адамдар олар DEC PDP 11 машинасының автоматты өсім және автоматты кему адрестеу режимдері үшін жасалғанын болжады, бірақ бұл тарихи жағынан мүмкін емес, себебі B тілі алғаш рет жасалып жатқан кезде бұл машина әлі болған жоқ. B тілінде тип болмайды, немесе дәлірек айтқанда, бір дерек типі бар: компьютерлік сөз. Көптеген операторлар (мысалы, +, -, *, /) оны бүтін сан ретінде қарастырды, ал басқалары оны деректерді алуға болатын жад адресі ретінде қарастырды. Көптеген жайттарда ол C тілінің ерте нұсқасына ұқсас болды. Онда кітапханалық бірнеше функциялар бар, оның ішінде C тіліндегі стандартты I/O кітапханасының функцияларына ұқсас функциялар да кездеседі. GCOS операциялық жүйесінде жұмыс істейтін 36 биттік мейнфреймдер. PDP 7 машинасының алғашқы нұсқалары тізбекті кодқа компиляцияланды, ал Ричи машиналық кодты құратын TMG компиляторын жазды. 1970 жылы PDP 11 сатып алынды және порттау үшін тізбекті код қолданылды; Ассемблер, және B тілінің өзі компьютерді бастапқы жүктеу үшін B тілінде жазылды. Осы PDP 11 конфигурациясымен yacc-тің алғашқы нұсқасы жасалды. Ричи осы кезеңде оны күтіп ұстауды өз міндетіне алды. Сондай-ақ, кейбір кіріктірілген жүйелерде (2000 жылдан бастап) түрлі себептермен қолданылды: шағын жүйелердегі аппараттық құралдардың шектеулігі, кең кітапханалар, құралдар, лицензиялық ақылар және жай ғана жұмысқа жарамды болуы. Көп әсер еткен AberMUD бастапқыда B тілінде жазылған.