День рождения Windows XP. Девять лет с нами.

Девять лет назад 25 октября 2001 года корпорация Microsoft представила операционную систему Windows XP. Презентация в Москве проводилась  в Политехническом музее одновременно с мероприятиями в США. Была организована интернет-трансляцию прямо из Нью-Йорка. Сейчас Windows XP несмотря на все усилия по ее похоронам, остается самой распространенной операционной системой. По данным на сентябрь 2010 года, Windows XP  удерживая за собой 51,7% рынка. И это при том, что после нее выпущены целых две операционные системы на продвижение которых потрачено не меренное количество денег и усилий.

Наброски к книге. Первые шаги программирования.

Состояние дел и проблемы.

Первые прообразы современных компьютеров появились в 40-х годах прошлого века. Программирование этих компьютеров осуществлялось при помощи кучи переключателей  на панели управления было весьма утомительным занятием. Со временем появилась возможность подключать к компьютеру устройства ввода информации с перфокарт и магнитной ленты. Это значит, что стало возможным один раз записать программу (последовательность команд), а выполнить ее столько раз сколько потребуется. Основная трудность при этом записать программу правильно. Поскольку программа в данном случае не что иное, как последовательности чисел (машинных слов) определенной структуры, человеку сложно работать с такой программой.

Поэтому возникает естественное желание сделать так, что бы человек работал не с набором чисел, а с чем-то более понятным ему.

Решение.

Каждой машинной команде можно сопоставить условное буквенное обозначение и разработать программу которая будет переводить условные обозначения в машинные коды.  В результате работ в этом направлении появились программы, предназначенные для преобразования условных обозначений в исполняемый машинный код. Такие программы стали называть ассемблерами, а языки, используемые для записи таких программ, — языками ассемблера, или, кратко, тоже ассемблерами.

Ниже приводится фрагмент программы на ассемблере для современного персонального компьютера.

@@1:   CMP AX,BX

JLE @@2

MOV BX,AX

@@2:   LOOP @@1

$3B $3C

$7E $02

$8B $D8

$2E $F7

Наброски к книге. Предисловие.

Многие полагают, что программирование появилось десять или двадцать лет назад, в крайнем случае, пятьдесят лет назад. На самом деле программирование появилось с появлением речи у человека. Как только один человек научился говорить, а другой человек понимать его, первый человек стал давать второму указания, что и как нужно делать. Например: «Иди к костру и выбери самый большой кусок мамонта и принеси его мне».  Я думаю, что те из читателей, кто уже знаком с основами программирования, без труда представят себе программу, описывающую это указание на одном из языков программирования.  С древних времен «бытовое» программирование практически не изменилось. Например,  посылая ребенка в магазин за молоком, родители дают ему инструкции: «Иди в магазин и купи литровый пакет молока, а если литровых пакетов не будет, то купи два пакета по 0,5 литра». И эту можно инструкцию легко представить написанной на одном из языков программирования. Таким образом «бытовое» программирование существует с древнейших времен и до наших дней, а примерно пятьдесят лет назад произошла техническая революция и появился первый компьютер которому можно и нужно было дать инструкцию, что и как делать. К несомненным плюсам компьютера следует отнести его послушность, он никогда не скажет в ответ на указания: «Иди сам к костру и выбирай свой кусок мамонта». Но по закону подлости или по закону диалектики там, где есть плюс, всегда есть минус. В нашем случае минус в том, что инструкции для компьютера должны быть четким и понятными для него. С этого момента начинается история программирования для компьютеров. Это история о том, как люди придумывали, как с наименьшими затратами сил и времени объяснять компьютерам, что и как они должны делать.

Далее в этой книге будет рассказ об основах программирования, но не так как в большинстве учебников: «Оператор – это …», «Объект – это …», а в историческом контексте. Кто и когда придумал различные конструкции и приемы программирования, зачем это было нужно и почему до этого никто не додумался раньше. На мой взгляд, такой подход более полезен, чем попытка на первом занятии понять, что такое объект и чем инкапсуляция отличается от полиморфизма. Если Вы со мной согласны, то вперед.

Фортран (FORTRAN).

Fortran второй язык программирования с которым мне пришлось иметь дело. В те далекие времена в подвале нашего университета еще стояли ЕС ЭВМ. Программирование этих монстров осуществлялось при помощи перфокарт (да, я такой древний, что помню перфокарты).

Как гласит официальная история, Fortran — первый язык программирования высокого уровня, имеющий транслятор. Он создан в период в 1954-1957 годах группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator, то есть, переводчик формул. Фортран идеально для своего времени подходил для научных и инженерных вычислений.

В университете мне пришлось решать с помощью фортрана и ЕС ЭВМ численные задачи, типа решения уравнения методом деления отрезка пополам или вычисления определенного интеграла методом Эйлера. По своему это были увлекательные и интересные задачи.

В заключении немного ностальгии в виде картинки перфокарты.

Перфокарта
Перфокарта

Сейчас это может показаться диким, но разглядывая на свет дырочки в перфокарте можно узнать, что на ней закодировано. Можно даже прорезать лезвием дырочку для того, что бы оперативно исправить.