Користувач:Науменко Данило КБ-11
Пісочниця[ред. | ред. код]
В | |
---|---|
Дата появи | 1969[1] |
Творці | Кен Томпсон |
Розробник | Кен Томпсон, Dennis Ritchie |
Система типізації | безтипова (все є Слово) |
Під впливом від | BCPL, PL/I |
Вплинула на | C |
Звичайні розширення файлів |
.b |
В - мова програмування, розроблена в Bell Labs в 1969. Це работа Кена Томпсона та Денніса Рітчі. В вперше з'явилася близько 1969.
В була розроблена з BCPL , і її ім'я може бути скороченням від BCPL. Цілком можливо, що її назва може походити від Bon[en], старішої та не пов'язаної, а скоріше зовсім іншою мовою програмування, яку Томпсон разробив для використання в Multics.[Примітка 1]
В була розроблена для рекурсивних, нечислових, незалежних від машин додатків, таких як системи і мови програмного забезпечення.[3]
Історія[ред. | ред. код]
Спочатку Кен Томпсон[2], а потім Денніс Рітчі[3] розробили B грунтуючись головним чином на мові BCPL , яку Томпсон використовував в проекті Multics. По суті, B була чистою версією BCPL, позбавленою будь-яких компонентів, без яких, як вважав Томпсон, можна впоратись, щоб вкластися в об'єм пам'яті, встановлений на мінікомп'ютерах того часу. Перехід від BCPL до B також включав зміни, внесені відповідно до переваг Томпсона (переважно у напрямку зменшення кількості непробельних символів в типовій програмі).[2] Велика частина типового ALGOL-подібного синтаксису BCPL було достатньо сильно змінено протягом цього процесу, наприклад, ":=" і "=" оператори, які були замінені на "=" для призначення, і "==" для тесту рівності. (Оператори "&" та "|" в BCPL пізніше було змінено на "&&" і "||" вібповідно, при переході до мови програмування, яка зараз відома як С.)[2] Оператор присвоювання знову став "=" мови програмування Рутішазера[en] Superplan, яка вплинула на Algol 58[en], додавши двокрапку.
Томпсон винайшов арифметичні оператори присвоювання для B, використовуючи x =+ y
, щоб додати y до x (в мові програмування C оператор пишеться +=
). B також представила оператори інкремента та декремента ("++" і "--"); Їх префіксне або постфіксне положення визначає, чи приймаються значення до або після зміни операнда. Ці нововведення були введені не в самих ранніх версіях В. Дехто вважає, що вони були створені для автоінкрементуємих та автодекрементуємих адресних типів DEC PDP-11. Це історично неможливо, оскільки ніякого PDP-11 в той час не було.[2]
В B не існує типів данних, або, точніше, він лише один: комп'ютерне слово. Більшість операторів (наприклад, ".", "+", "-", "*", "/") обробляли його як ціле число, а інші як посилання для розіменування (посилання). У багатьох інших відносинах вона виглядала як рання версія С. Існує кілька бібліотечних функцій, в тому числі ті, які віддалено нагадують функції з бібліотеки вводу-виводу[en] в С[3]
Ранні реалізації були розроблені для DEC PDP-7 та PDP-11 мінікомп'ютерів, використовувавших ранні версії Unix і Honeywell GE-600[en][4] 36-бітові комп'ютери під управлінням операційної системи ГСНК[en]. Найбільш ранні версії PDP-7, компілювали все через багатопотоковий код[en], і Річі написав компілятор за допомогою TMG , який виробляв машинний код. [5][6][7] В 1970 PDP-11 був придбаний та багатопотоковий код був використаний для порту; асемблер, DC і сама мова B були написані на B для запуску[en] комп'ютера. Рання версія Yacc була виготовлений з цією конфігурацією PDP-11. Річі взяв на себе обслуговування протягом цього періоду.[2][7]
Безтиповий характер B мав сенс на Honeywell, PDP-7 і багатьох інших старих комп'ютерах, але на PDP-11 з'являлися проблеми, оскільки було важко отримати доступ до символьних типів даних, які повністю підтримуються PDP-11 і більшістю сучасних комп'ютерів . Починаючи з 1971 Річі вніс зміни в мову при роботі компілятора при переведенні у машинний код, в першу чергу, додавши типи даних для змінних. Протягом 1971 і 1972 B перетворилася на "New-B" (NB)("Нова-В"), а потім C.
B продовжує використовуватися (станом на 2014) на ГСНК мейнфреймах,[8] і на деяких вбудованих систем через безліч причин, в тому числі через обмежену апаратну частину в невеликих системах; великі бібліотеки, інструменти, питання вартості ліцензій; та просто через достатньо хорошу роботу.[9] Вельми впливна AberMUD[en] була спочатку написана на B.
B майже вимерла, будучи витісненою C.
Приклади[ред. | ред. код]
Наступний приклад взятий з Users' Reference to B Кена Томпсона: [3]
/* наступна функція буде друкувати a невід'ємне число, n, на
базi b, де 2<=b<=10. Ця процедура використовує той факт, що
в наборі символів ASCII, цифри від 0 до 9 мають послідовні
значення кодів. */
printn(n, b) {
EXTRN putchar;
auto a;
if (a = n/b){ /* призначення, а не тест на рівність */
printn(a, b); /* рекурсія */
putchar(n % b + '0');
}
Дивіться також[ред. | ред. код]
Примітки[ред. | ред. код]
- ↑ " Її ім'я, швидше за все, являє собою скорочення від BCPL, хоча альтернативна теорія стверджує, що вона походить від Bon [ Thompson 69], пов'язаної мови, створеної Томпсоном під час роботи в Multics. Bon в свою чергу, була названа або на честь його дружини Бонні, або (відповідно до енциклопедії котирування в керівництві по її експлуатації), на честь релігії, ритуали якої включають в себе проговорювання магічних формул. "[2]
Список літератури[ред. | ред. код]
- ↑ http://www.britannica.com/EBchecked/topic/1663863/B
- ↑ а б в г д е DOI:10.1145/155360.155580
Нема шаблону {{Cite doi/10.1145/155360.155580}}.заповнити вручну - ↑ а б в г Thompson, Ken (7 January 1972). Users' Reference to B. Bell Laboratories. Процитовано 21 March 2014.
- ↑ bell-labs.com – Early Unix history and evolution, 9 April 2004
- ↑ TMG. multicians.org.
- ↑ Ritchie, Dennis M. The Development of the C Language. Bell Labs/Lucent Technologies.
- ↑ а б McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Технічний звіт). CSTR. № 139. Bell Labs.
- ↑ Thinkage UW Tools Package. Thinkage, Ltd. Процитовано 26 March 2014.
- ↑ Johnson and Kernighan. THE PROGRAMMING LANGUAGE B. Bell Laboratories. Процитовано 21 March 2014.
External links[ред. | ред. код]
- Manual page for b(1) from Unix First Edition
- The Development of the C Language, Dennis M. Ritchie. Оферти B в контексті BCPL і С.
- Users' Reference to B, Ken Thompson. Describes the PDP-11 version.
- Мова програмування B " ', SC Johnson І BW Керниган, Технічний звіт CS TR 8, Bell Labs (січні 1973). ГСНК Версія на Honeywell Обладнання.
- англійська/ГСНК/промисловість:/б/index.html B Мова Довідкове керівництво, Thinkage ТОВ Виробнича версія мови, яка використовується в ГСНК, в тому числі мови і середовища бібліотека.