Како је наставник из 70-их изумео C, један од најутицајнијих програмских језика

Ако сте мислили да је C врста језика коју знају само шездесетогодишњи белци, грешите. Да, то је диносаурус међу данашњим програмским језицима, али и даље је врло активан у више области него што можете да помислите. Као прво, Unix је написан у C-у. Првобитно написан у асемблеру, језгро Униx је преписано у C давне 1973. године. Због тога је Униx могао да се преноси на различите уређаје, што му је помогло да постане популаран. Да није било тога, не бисмо имали све ове прелепе оперативне системе данашњице – помислите на Linux, Mac OS X, Android, iOS, Chrome OS и све оно што је потребно за рад вашег рутера.

Ако сте било када радили са базама података, дефинитивно сте користили и C, чак иако нисте били свесни тога! Системи за управљање базама података, као што су Орацле Датабасе, МyСQЛ и други, написани су у C-у. Већина њих је од тада преписана на C++, који је, такође, директни потомак C-а. Па чак иако за све што радите користите само Пyтхон, вероватно све време користите C. Ако се не одлучите за Jython, IronPython или PyPy, користите CPython. То је оригинална примена Pythona: пишете Python кôд, али преводилац – програм који преводи ваш кôд у нешто што машина разуме – заправо је исписан C.

Укратко, C је свуда. Није то само велики дебели диносаурус који је некако успео да преживи у модерном добу. Невероватно је успешан јер је изузетно користан. Због тога бисте могли да се изненадите кад вам кажемо да C до таквих висина није дошао преко низа успешних покушаја, већ преко десетогодишњег низа неуспеха. Можда не би ни постојао да није било наставника који је волео да програмира за време распуста.

Наставник који је био пријатељ Алана Тјуринга

Упознајте Кристофера Стрејчија. Рођен је 1916. године у утицајној британској породици, студирао је на Универзитету Кембриџ и тамо упознао многе познате научнике. Међутим, чинило се да је имао дугогодишњу тенденцију занемаривања студија, а његове резултате на испитима не треба ни спомињати. Вероватно због тога није наставио са студијама као многи његови вршњаци. Уместо тога, ратне године провео је у истраживањима употребе радара. После тога, запослио се као наставник у школи и радио све до 1951. године.

Живот му се потпуно променио када га је пријатељ упознао са британском Националном физичком лабораторијом. Стрејчи је школске распусте и празнике проводио у лабораторији са Pilot ACE, првим рачунаром са аутоматском рачунарском машином Алана Тјуринга. Стрејчи је имао намеру да научи рачунар како да игра даме. Решавање таквог логичког задатка било је изузетно у време када су се рачунари користили првенствено за брзо решавање једначина. У првом покушају није успео јер Pilot ACE није имао складишни капацитет за обављање таквог задатка. Можда вам величина меморије изгледа смешно, што је сасвим у реду, али не заборавите, то су биле педесете.

Стрејчи је успео да набави бољу машину, Ферранти Марк И, преко свог старог другара Алана Тјуринга. Уз савете свог пријатеља, коначно је успео. Вест о том необичном достигнућу брзо се проширила, а Стрејчи је ускоро добио позив да промовише развој информатике за британску владу.

Три Дејвида желе језик

У међувремену, у Кембриџу, универзитет желео да купи нови рачунар, што је у то време био велики подухват, а пошто је рачунар био потпуно нов, размишљали су о томе да измисле нови језик за њега. Било је јасно да је новом рачунару потребан нови оперативни систем, али не нужно и нови језик. Ипак, тројица истраживача, Дејвид Хартли, Дејвид Вилер и Дејвид Барон, желели су да се забаве стварајући нови језик. Поред тога, тројица Дејвида нису питали будуће кориснике о предностима и недостацима старих језика. На пример, Fortran ИВ се већ тада користио и био би погодан за тај посао. Тројица Дејвида су мислили да би без проблема могли да направе нешто боље. Назвали су га CPL, скраћеница од Цамбридге Программинг Лангуаге, да би касније променио назив у Combined Programming Language, пошто се неколико истраживача са универзитета у Лондону придружило тројици Дејвида. Присећајући се тих дана, Дејвид Хартли каже да је стварање новог језика била „тотална будалаштина“.

Језик се сувише закомпликовао

Можда је постављање Кристофера Стрејчија на чело пројекта, такође, била „тотална будалаштина“. Није се могло сумњати у његове рачунске способности, али изгледао је толико наклоњен пројекту да није могао да буде непристрасан. Због тога се развојни тим више бавио мањим проблемима, уместо да се ефикасно ухвати у коштац са великим. Ускоро је CPL био познат као Christopher’s Programming Language. Због свих ситних детаља које је тим применио на Стрејчијево инсистирање, језик је постао превише компликован. Када су желели да напишу компајлер, покушај и је пропао, јер је излазни машински кôд био неефикасан.

Језик је постао сувише једноставан

Када је Стрејчи отишао да неколико месеци проведе на MIT-у, Мартин Ричардс се придружио тиму за развој CPL и одлучио да га поједностави. Циљ је, наравно, био направити нешто што даје добар компајлер и ефикасан машински кôд. Тако је Ричардс направио БCPL од CPL-а – Басиц CPL. То је на неки начин био нови језик – али и признање да је стари CPL пропао. Када се, нешто касније, придружио Стрејчију на MIT-у, колега из Bell Labs-а је дошао да види шта њих двојица раде. Његов колега, Кен Томпсон, радио је на Multics-у, другом оперативном систему од кога је требало да се одустане. (На крају је преживео, али то је друга прича.)

Томпсон се, коначно, посветио развоју Unixa, једног од најчешће коришћених оперативних система до данас. Успео је да инсталира Униx на мали рачунар, PDP-7, али BCPL је и даље био превише обиман да би могао да стане на ту исту машину. Оставио је само она својства за која је сматрао да су најважнија, а нови језик назвао је B.

C је рођен – коначно

Денис Ричи је, 1971. године, усвојио B и додавао му функције да би могао да се користи на моћнијим рачунарима. Тај језик назвао је NB – New B. Томпсон је у међувремену радио на преписивању Униxа на језик високог нивоа. У то време је већина оперативних система још увек била написана на асемблеру и због тога је свако морао да развије нови оперативни систем кад год би купио нови рачунар. За разлику од тога, Униx високог нивоа радио је на било ком рачунару. Томпсон је покушао да користи NB за тај задатак, али није успео. Ричи и он су затим додавали једно по једно својство у NB док није успео да напише Униx. Треба нагласити да су додали структуре, којих, у то време, није било ни у једном другом језику. Пошто су структуре биле довољно велика промена, њих двојица су могли да објаве да су направили нови језик. Тако је, 1973. године, рођен C!

Споро ширење пожара

Бројни творци C-а – иако сигурни у себе – нису могли да предвиде да ће се језик толико брзо проширити. Један од фактора успеха могао је бити тај што је мини рачунар ПДП-11 био изузетно популаран. Било је јефтино да се на њега инсталира Униx, а C је дошао са Unixom. С обзиром на то да се у то време већина рачунара користила на универзитетима, многи студенти су после дипломирања били упознати са C-ом, што му је помогло да се прошири у многим привредним гранама, али и многим курсевима на универзитетима. Коначно, књига Програмски језик C, Брајана Кернигана и Дениса Ричија, била је танка и сажета, посебно за приручник о програмском језику. То је додатно прокрчило пут за почетнике.

Упркос годинама, C је можда виталнији од вашег деде

На крају, C је успео иако је његов развојни пут био необично трновит. Успех овог програмског језика резултат је неуспешног развоја CPL-а који је био превише компликован, БCPL-а који је био превише једноставан, још једноставнијег Б-а, и мало сложенијег, али ипак једноставног НБ-а. Да Томпсон није себи поставио задатак да препише Униx, C можда никад не би ни настао. Бивши наставник Кристофер Стрејчи је на почетку сувише искомпликовао много што-шта и тако изазвао низ неуспеха. Ипак, без њих, C можда не би угледао светло дана. Карактеристике C-а су свуда. Велики концепти, као што су структуре, али и мале ствари, као што је ++ и оператор повећања и смањења, данас се могу наћи у многим језицима. Не би их било без C-а. Његови потомци – C++, C#, и тако даље, такође, не би постојали.

То је што се тиче наследника C-а. Такође је изузетно брз и сигуран језик, због чега се неизбежно користи у сложеним областима, као што су роботика, рачунарски вид, IoT и још много тога. То не значи да се и језици, као што је Python, не користе, посебно у почетку. Али завршни корак – она фина глазура – често је написана у C-у или C++. Да, C је диносаурус ако је критеријум годиште. Ипак, могу да се опкладим да је спретнији и окретнији од вашег деде! Можда чак и од вашег унука!

ПРОРАЧУН ИЗНОСА ЗА ПЛАЋАЊЕ

Датум: 28.09.2021

Курс НБС евра на данашњи дан: 117.58

динара

Динарски износ *