Введение

Процедурный язык программирования – язык программирования, разработанный в Bell Labs.

B – это язык программирования, разработанный в Bell Labs около 1969 года Кеном Томпсоном и Деннисом Ричи. Язык B был создан на основе BCPL, и его название, возможно, является сокращением от BCPL. Коллега Томпсона, Деннис Ричи, предположил, что название могло быть основано на Bon – более раннем, но не связанном с ним языке программирования, разработанном Томпсоном для использования в Multics. B был предназначен для рекурсивных, нечисловых, машинно-независимых приложений, таких как системное и языковое программное обеспечение. Это был язык без типизации, единственным типом данных был естественный формат машинного слова, каким бы он ни был. В зависимости от контекста, слово интерпретировалось либо как целое число, либо как адрес памяти. С распространением машин с поддержкой обработки ASCII, особенно DEC PDP 11, поступившей в Bell Labs, важной стала поддержка символьных данных, хранящихся в машинных словах. Отсутствие типизации в языке рассматривалось как недостаток, что побудило Томпсона и Ричи разработать расширенную версию языка с поддержкой новых встроенных и определяемых пользователем типов, которая впоследствии стала языком программирования C.

История

Примерно в 1969 году Кен Томпсон пошел дальше, изобретя операторы инкремента и декремента (++ и --). Положение их в префиксной или постфиксной форме определяет, берется ли значение до или после изменения операнда. Это нововведение отсутствовало в самых ранних версиях B. По словам Денниса Ричи, многие полагали, что они были созданы для режимов автоматического инкремента и декремента адресов DEC PDP-11, но это исторически невозможно, так как машина не существовала, когда B была впервые разработана. B – язык без типов, или, точнее, имеющий один тип данных: компьютерное слово. Большинство операторов (например, +, -, *, /) рассматривали его как целое число, но другие – как адрес памяти для разыменования. Во многих других аспектах он был очень похож на раннюю версию C. Существует несколько библиотечных функций, некоторые из которых отдаленно напоминают функции из стандартной библиотеки ввода-вывода в C. 36-битные мэйнфреймы, работающие под операционной системой GCOS. Самые ранние реализации для PDP-7 компилировались в потоковый код, и Ричи написал компилятор, использующий TMG, который генерировал машинный код. В 1970 году был приобретен PDP-11, и для портирования использовался потоковый код; ассемблер, , и сам язык B были написаны на B для начальной загрузки компьютера. Ранняя версия yacc была создана с использованием этой конфигурации PDP-11. Ричи взял на себя поддержку в этот период, а также на некоторых встраиваемых системах (по состоянию на 2000 год) по различным причинам: ограниченные аппаратные ресурсы в небольших системах, обширные библиотеки, инструменты, проблемы с лицензионными отчислениями и просто достаточная пригодность для решения задач. Высоко влиятельная AberMUD изначально была написана на B.