В (Бі) (друга буква лат. алфавіту — B) — інтерпретована мова програмування, розроблена в AT&T Bell Telephone Laboratories. Вона є нащадком мови BCPL та попередником C (Сі). Мова B була розроблена Кеном Томпсоном та Деннісом Рітчі і вперше презентована в 1969 році.
B (Бі) | |
---|---|
Парадигма | процедурна |
Дата появи | 1969 |
Творці | Кен Томпсон, Денніс Рітчі: Bell Labs |
Розробник | Bell Laboratories і Кен Томпсон |
Діалекти | внутрішній стандарт |
Під впливом від | BCPL, (PL/I), TMG |
Вплинула на | Сі |
На неї сильно вплинула BCPL, і назва цієї мови, ймовірно, є скороченням від BCPL. Також, можливо, що назва походить від мови , більш ранньої, але не зв'язаної з Бі мови, яку Томпсон розробив для використання в Multics. Назва ж Bon походить або від імені дружини Томпсона Bonnie, або від назви старотібетської релігії Бон.
Історія
Кен Томпсон розробив Бі ґрунтуючись головним чином на мові BCPL, яку Томпсон використовував у проекті Multics. По суті, Бі була версією BCPL, позбавленою деяких компонентів, без яких, як вважав Томпсон, можна не виходити за об'єм пам'яті, встановлений на мінікомп'ютерах того часу. Перехід від BCPL до Бі також містив зміни у напрямку зменшення кількості непробільних символів в типовій програмі. Велика частина типового ALGOL-подібного синтаксису BCPL була вагомо змінена протягом цього процесу. Наприклад, оператор :=
був замінений на =
, =
для порівняння тексту був замінений на ==
. Пізніше оператори &
та |
в BCPL було змінено на &&
та ||
відповідно, при переході до мови програмування, яка зараз відома як Сі.[]
Томпсон запозичив арифметичні оператори присвоювання для Бі, використовуючи синтаксис x =+ y
(додати «y» до змінної «x») із мови програмування TMG. Додатково Томпсон винайшов оператори інкременту та декременту (++
та --
). Їх префіксне або постфіксне положення визначає, чи приймаються значення до або після зміни операнда. Ці нововведення були запроваджені не в перших версіях Бі.[] Дехто вважає, що вони були створені для автоінкрементних та автодекрементних типів адресування у машинному коді PDP-11, хоча це історично неможливо, оскільки PDP-11 в час створення Бі ще не було.
В Бі не існує типів даних, або, точніше, він лише один: комп'ютерне слово. Більшість операторів (наприклад, +
, -
, *
, /
) обробляли його як ціле число, а інші як посилання для розіменування посилання. У багатьох інших напрямках вона виглядала, як рання версія Сі. Існує кілька бібліотечних функцій, в тому числі ті, які віддалено нагадують функції з [en] в Сі.
Початково Бі було розроблено для мінікомп'ютерів DEC PDP-7 та PDP-11, на яких працювали ранні версії Unix. Кен Томпсон написав перший компілятор за допомогою мови програмвання TMG. Оскільки компілятор Бі використовував техніку нитевого коду (аналогічну сучасному байткоду), програми на Бі працювали повільно. Згодом покращенням швидкості Бі зайнявся Річі.
Безтиповий характер Бі був природним на PDP-7 і багатьох інших старих комп'ютерах, які не могли адресувати окремий байт, але на PDP-11 з'являлися проблеми, оскільки було важко отримати доступ до символьних типів даних, які PDP-11 повністю підтримував. Починаючи з 1971 Річі вніс зміни в мову при роботі компілятора та при переведенні у машинний код, в першу чергу, додавши типи даних для змінних. Протягом 1971 і 1972 Бі перетворилася на «New-B» (NB) («Нова-В»), а потім Сі.
Бі продовжують використовувати (станом на 2014) на [en] мейнфреймах і на деяких вбудованих системах, зважаючи на ряд причин, у тому числі через обмежену апаратну частину в невеликих системах; великі бібліотеки, інструменти, питання вартості ліцензій; та просто через достатньо хорошу роботу. Вельми впливова [en] була спочатку написана на Бі.
Зараз Бі майже зникла через витіснення її наступником — мовою Сі.
Приклади
// даний приклад рахує суму трьох послідовних цілих чисел main() { auto a, b, c, sum; a = 1; b = 2; c = 3; sum = a+b+c; putnumb(sum); }
Наступний приклад взятий з Users' Reference to B Кена Томпсона:
/* наступна функція буде друкувати невід'ємне число n, з основою 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'); }
Примітки
- . multicians.org. Архів оригіналу за 3 квітня 2017. Процитовано 29 березня 2015.
- Ritchie, Dennis M. The Development of the C Language. Bell Labs/Lucent Technologies. Архів оригіналу за 22 червня 2013. Процитовано 29 березня 2015.
- McIlroy, M. D. (1987). (PDF). CSTR (139). Bell Labs. Архів оригіналу (PDF) за 11 листопада 2017. Процитовано 29 березня 2015.
- Ritchie, Dennis M. (March 1993). The Development of the C Language. ACM SIGPLAN Notices. 28 (3): 201—208. doi:10.1145/155360.155580. Архів оригіналу за 22 червня 2013. Процитовано 29 березня 2015.
- . Thinkage, Ltd. Архів оригіналу за 27 березня 2014. Процитовано 26 березня 2014.
- . . Bell Laboratories. Архів оригіналу за 8 серпень 2007. Процитовано 21 березня 2014.
- (7 січня 1972). . Bell Laboratories. Архів оригіналу за 6 липень 2006. Процитовано 21 березня 2014.
Посилання
- Manual page for b(1) from Unix First Edition [ 21 березня 2015 у Wayback Machine.]
- The Development of the C Language [Архівовано 22 червня 2013 у WebCite], Dennis M. Ritchie. Оферти B в контексті BCPL і С.
- , Ken Thompson. Describes the PDP-11 version.
- , SC Johnson І BW Керніган, Технічний звіт CS TR 8, Bell Labs (січні 1973). Версія на Honeywell Обладнання.
- англійська/ГСНК/промисловість:/б/index.html B Мова Довідкове керівництво [ 4 серпня 2018 у Wayback Machine.], Thinkage ТОВ Виробнича версія мови, яка використовується в ГСНК, в тому числі як мова і бібліотека середовища.
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V Bi druga bukva lat alfavitu B interpretovana mova programuvannya rozroblena v AT amp T Bell Telephone Laboratories Vona ye nashadkom movi BCPL ta poperednikom C Si Mova B bula rozroblena Kenom Tompsonom ta Dennisom Ritchi i vpershe prezentovana v 1969 roci B Bi ParadigmaprocedurnaData poyavi1969TvorciKen Tompson Dennis Ritchi Bell LabsRozrobnikBell Laboratories i Ken TompsonDialektivnutrishnij standartPid vplivom vidBCPL PL I TMGVplinula naSi Na neyi silno vplinula BCPL i nazva ciyeyi movi jmovirno ye skorochennyam vid BCPL Takozh mozhlivo sho nazva pohodit vid movi bilsh rannoyi ale ne zv yazanoyi z Bi movi yaku Tompson rozrobiv dlya vikoristannya v Multics Nazva zh Bon pohodit abo vid imeni druzhini Tompsona Bonnie abo vid nazvi starotibetskoyi religiyi Bon IstoriyaKen Tompson rozrobiv Bi gruntuyuchis golovnim chinom na movi BCPL yaku Tompson vikoristovuvav u proekti Multics Po suti Bi bula versiyeyu BCPL pozbavlenoyu deyakih komponentiv bez yakih yak vvazhav Tompson mozhna ne vihoditi za ob yem pam yati vstanovlenij na minikomp yuterah togo chasu Perehid vid BCPL do Bi takozh mistiv zmini u napryamku zmenshennya kilkosti neprobilnih simvoliv v tipovij programi Velika chastina tipovogo ALGOL podibnogo sintaksisu BCPL bula vagomo zminena protyagom cogo procesu Napriklad operator buv zaminenij na dlya porivnyannya tekstu buv zaminenij na Piznishe operatori amp ta v BCPL bulo zmineno na amp amp ta vidpovidno pri perehodi do movi programuvannya yaka zaraz vidoma yak Si dzherelo Tompson zapozichiv arifmetichni operatori prisvoyuvannya dlya Bi vikoristovuyuchi sintaksis x y dodati y do zminnoyi x iz movi programuvannya TMG Dodatkovo Tompson vinajshov operatori inkrementu ta dekrementu ta Yih prefiksne abo postfiksne polozhennya viznachaye chi prijmayutsya znachennya do abo pislya zmini operanda Ci novovvedennya buli zaprovadzheni ne v pershih versiyah Bi dzherelo Dehto vvazhaye sho voni buli stvoreni dlya avtoinkrementnih ta avtodekrementnih tipiv adresuvannya u mashinnomu kodi PDP 11 hocha ce istorichno nemozhlivo oskilki PDP 11 v chas stvorennya Bi she ne bulo V Bi ne isnuye tipiv danih abo tochnishe vin lishe odin komp yuterne slovo Bilshist operatoriv napriklad obroblyali jogo yak cile chislo a inshi yak posilannya dlya rozimenuvannya posilannya U bagatoh inshih napryamkah vona viglyadala yak rannya versiya Si Isnuye kilka bibliotechnih funkcij v tomu chisli ti yaki viddaleno nagaduyut funkciyi z en v Si Pochatkovo Bi bulo rozrobleno dlya minikomp yuteriv DEC PDP 7 ta PDP 11 na yakih pracyuvali ranni versiyi Unix Ken Tompson napisav pershij kompilyator za dopomogoyu movi programvannya TMG Oskilki kompilyator Bi vikoristovuvav tehniku nitevogo kodu analogichnu suchasnomu bajtkodu programi na Bi pracyuvali povilno Zgodom pokrashennyam shvidkosti Bi zajnyavsya Richi Beztipovij harakter Bi buv prirodnim na PDP 7 i bagatoh inshih starih komp yuterah yaki ne mogli adresuvati okremij bajt ale na PDP 11 z yavlyalisya problemi oskilki bulo vazhko otrimati dostup do simvolnih tipiv danih yaki PDP 11 povnistyu pidtrimuvav Pochinayuchi z 1971 Richi vnis zmini v movu pri roboti kompilyatora ta pri perevedenni u mashinnij kod v pershu chergu dodavshi tipi danih dlya zminnih Protyagom 1971 i 1972 Bi peretvorilasya na New B NB Nova V a potim Si Bi prodovzhuyut vikoristovuvati stanom na 2014 na en mejnfrejmah i na deyakih vbudovanih sistemah zvazhayuchi na ryad prichin u tomu chisli cherez obmezhenu aparatnu chastinu v nevelikih sistemah veliki biblioteki instrumenti pitannya vartosti licenzij ta prosto cherez dostatno horoshu robotu Velmi vplivova en bula spochatku napisana na Bi Zaraz Bi majzhe znikla cherez vitisnennya yiyi nastupnikom movoyu Si Prikladi danij priklad rahuye sumu troh poslidovnih cilih chisel main auto a b c sum a 1 b 2 c 3 sum a b c putnumb sum Nastupnij priklad vzyatij z Users Reference to B Kena Tompsona nastupna funkciya bude drukuvati nevid yemne chislo n z osnovoyu b de 2 lt b lt 10 Cya procedura vikoristovuye toj fakt sho v nabori simvoliv ASCII cifri vid 0 do 9 mayut poslidovni znachennya kodiv printn n b EXTRN putchar auto a if a n b priznachennya a ne test na rivnist printn a b rekursiya putchar n b 0 Primitki multicians org Arhiv originalu za 3 kvitnya 2017 Procitovano 29 bereznya 2015 Ritchie Dennis M The Development of the C Language Bell Labs Lucent Technologies Arhiv originalu za 22 chervnya 2013 Procitovano 29 bereznya 2015 McIlroy M D 1987 PDF CSTR 139 Bell Labs Arhiv originalu PDF za 11 listopada 2017 Procitovano 29 bereznya 2015 Ritchie Dennis M March 1993 The Development of the C Language ACM SIGPLAN Notices 28 3 201 208 doi 10 1145 155360 155580 Arhiv originalu za 22 chervnya 2013 Procitovano 29 bereznya 2015 Thinkage Ltd Arhiv originalu za 27 bereznya 2014 Procitovano 26 bereznya 2014 Bell Laboratories Arhiv originalu za 8 serpen 2007 Procitovano 21 bereznya 2014 7 sichnya 1972 Bell Laboratories Arhiv originalu za 6 lipen 2006 Procitovano 21 bereznya 2014 PosilannyaManual page for b 1 from Unix First Edition 21 bereznya 2015 u Wayback Machine The Development of the C Language Arhivovano 22 chervnya 2013 u WebCite Dennis M Ritchie Oferti B v konteksti BCPL i S Ken Thompson Describes the PDP 11 version SC Johnson I BW Kernigan Tehnichnij zvit CS TR 8 Bell Labs sichni 1973 Versiya na Honeywell Obladnannya anglijska GSNK promislovist b index html B Mova Dovidkove kerivnictvo 4 serpnya 2018 u Wayback Machine Thinkage TOV Virobnicha versiya movi yaka vikoristovuyetsya v GSNK v tomu chisli yak mova i biblioteka seredovisha Div takozhMova programuvannya C BCPL Movi programuvannya