Языки программирования: история и развитие

Xakep, номер #042, стр. 042-026-1

Краткий экскурс в историю, которую нужно знать

Нагорский Артем aka Cordex (cordex@real.xakep.ru)

Привет, дружище! Наверняка, благодаря ][ и рубрике "Кодинг" в частности ты значительно поднялся и преуспел в программировании: стал писать проги, заточенные под свои хацкерские нужды, выкладывать их в Сеть и т.д. Все это, конечно, хорошо, но знаешь ли ты историю того языка, на котором программируешь, как он развивался? А других? Или вообще, как они появились и развивались? Нет? Ай, как плохо, надо бы и знать ради общего развития =). Поэтому в этой статье я расскажу тебе об основных вехах развития современных языков программирования. Действительно, эту историю нужно знать...

С чего все начиналось

В далекие-далекие времена, когда еще не было современных языков программирования, люди, а точнее программисты тех времен, имели дело непосредственно с машинным кодом. Естественно, такие люди очень ценились, и к ним предъявлялись огромные требования, такие, как превосходное знание машинного кода, всей архитектуры тех компьютеров (напомню, что основным носителем информации был не винт, как сейчас, а обыкновенные перфокарты и перфоленты). Но все-таки программы того времени были достаточно простые из-за ряда причин, таких, как сложность машинного кода, его отладки и, конечно, самой примитивности вычислительных машин. И первым шагом у компьютерной цивилизации был переход к Ассемблеру.

Assembler

Может показаться, что это событие не было из ряда вон выходящим: мол, как были машинные коды, так и остались. Однако это не так. Да, программирование в машинных кодах осталось, но она стало символическим кодированием машинных команд. Это был огромный шаг вперед, теперь программисту вовсе не нужно было разбираться в программировании команд на аппаратном уровне. В программировании на Ассемблере стало возможным использование меток, что облегчало в значительной мере отладку программ. Появилась возможность разработки целой серии вычислительных машин с одинаковой или сходной системой команд, что можно назвать первым подобием переносимости кода. Ассемблер нес в себе еще одну революционность для программирования: появилось два представления программ на нем: в машинных кодах и в чистом, откомпилированном виде. Но, по мере развития Ассемблера, его постоянного усложнения, дизассемблирование, т.е. перевод из одного представления программы в другой, становилось все более трудным делом. Надо отметить, что в итоге автоматическое дизассемблирование стало невозможным - для этой цели стали появляться специальные программы-дизассемблеры.

Fortran

Первый язык программирования высокого уровня под названием Фортран (Fortran) был разработан в 1954 году Джоном Бэкусом, работником корпорации IBM в Нью-Йорке. Данное событие, как ты понимаешь, было очень значимым: впервые в истории человечества программист мог отвлечься от разборок со сложными машинными кодами и вздохнуть с облегчением =). Самым главным и принципиальным отличием Фортрана от Ассемблера была концепция подпрограмм. Хотя в наше время это и не в новинку, тогда это было действительно новым. Для разработчиков достигнуть этого стоило небывалых усилий: скажу лишь, что сама работа над компилятором продолжалась более двух лет! В апреле 1957 года компилятор был полностью готов и мог быть использован на машинах IBM-704. Несмотря на это, большинство программистов встретили Фортран недовольно. Они считали гораздо более эффективным и надежным написать небольшой код вручную, чем получить его как часть компиляции. Но время идет, требования к жизни становятся жестче: не обошло это и программирование. Вскоре стало понятно, что компилятор для программиста не враг, а друг, особенно это становится заметно при реализации больших проектов. Преимуществом Фортрана было и то, что он был достаточно легким для обучения. Вскоре он стал более или менее признан и использовался на шести различных моделях компьютеров фирмы IBM. Но, несмотря на все это, новый язык не был лишен и недостатков, что, в конечном счете, привело к появлению Фортрана II. Одним из основных преимуществ новой версии над старой была способность присоединять программы на ассемблере. Затем создавались еще несколько версий этого языка вплоть до Фортрана версии IV. Этот язык программирования использовался (и используется по сей день) для различных научных расчетов и вычислений. Роль Фортрана была огромна, и одна из них дала понять всем ведущим программистам, что будущее за языками высокого уровня.

Содержание  Вперед на стр. 042-026-2

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114