Кіріспе

Процедуралық бағдарламалау тілі — Bell Labs зертханасында жасалған бағдарламалау тілі. B — 1969 жыл шамасында Кен Томпсон мен Деннис Ричи Bell Labs зертханасында жасаған бағдарламалау тілі. B тілі BCPL-ден туындаған, ал оның атауы BCPL-дің қысқартылған түрі болуы мүмкін. Томпсонның әріптесі Деннис Ричи бұл атаудың бұрынғы, бірақ байланысы жоқ, Multics жүйесінде пайдалану үшін Томпсон жасаған Bon бағдарламалау тіліне негізделген болуы мүмкін деп болжады. B тілі рекурсивті, сандық емес, машинаға тәуелсіз қолданбалар, мысалы, жүйелік және тілдік бағдарламалық қамтамасыздар үшін жасалған. Бұл типсіз тіл болатын, онда деректердің жалғыз түрі – негізгі машинаның табиғи жад сөзінің форматы ғана еді. Контекстке байланысты, сөз бүтін сан немесе жад адресі ретінде қарастырылатын. ASCII өңдеу мүмкіндігі бар машиналар, әсіресе Bell Labs-ке келген DEC PDP 11, кеңінен таралғанда, жад сөздерінде сақталған таңбалық деректерді қолдау маңызды болды. Тілдің типсіздігі кемшілік ретінде қарастырылды, бұл Томпсон мен Ричиге жаңа ішкі және пайдаланушы анықтаған типтерді қолдайтын тілдің кеңейтілген нұсқасын жасауға мүмкіндік берді, ол C бағдарламалау тіліне айналды.

Тарих

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 тілінде жазылған.