?

Log in

No account? Create an account
 
 
04 October 2008 @ 07:40 pm
Записки программиста  
                                                          Мой первый компьютер

 

Моим первым компьютером (машиной, как говорили тогда) была М-20 Института Теоретической и Экспериментальной Физика (ИТЭФ).  Это была, кажется, первая реально серийная машина в СССР сделанная еще на электронных лампах; она занимала половину большого  двухэтажного особняка и выглядела примерно так: http://code.google.com/p/m20/

 

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

 

Интересно, что для начального периода советской вычислительной техники характерно отсутствие какой-либо техники для работы с текстовой информациеи. Устройство печати на М20 могло печатать только числа на узких рулонах бумаги, похожих на современную туалетную бумагу. Ввод – с перфокарт и устройства подготовки данных на перфокарты были приспособлены для ввода только цифровой информации, используя для набора восмеричную или десятичную систему счисления. Устройства печати техтов (АЦПУ) появились в 60-х,  а нормальные перфораторы (карточные) и терминалы – прктически только с появлением серии компьютеров ЕСЭВМ. Этим объясняется насколько особое развитие программирования в СССР на начальном этапе, в частности – очень запоздалое внедрение языков программирования, даже ассемблера.

 

М20 имела оперативную пвмять 4096 ячеек по 45 разрядов; несколько магнитных барабанов такой же емкости, очень медленные магнитные ленты – собственно и все.

 

Машина была «персональной» - никакой поддержки для того, чтобы ее можно было использовать дла нескольких задач или несколькими людьми сразу не было. Машинное время распределялось – обычно на неделю вперед.

 

Отсутствие поддержки для обработки текстовой информации и ограниченные ресурсы процессора практически не позволяли использовать язаки программирования – хотя несколько коллективов энтузиастов и работали над компайлерами (они тогда назывались трансляторы) с языков (глвным образом это был алгол-60), сколько-нибуди широкое применение использование языков получило позже. Основная масса программистов писала программы «в кодах» - то есть кодирую техт программы в 8-чной системе. Написание програм, даже небольших, при такой технологии было искусством, ошибки в программах были бедствием, а о каком-либо сопровождении или будущей модификации кода трудно было думать.

 

Изменил эту практику, правда в не слишком широких кругах своей «школы» Александр Львович Брудно – он придумал «программирование в содержательных обозначениях» - некий символический код для писания программы отличающийся высокой наглядностью и легко транслируемый вручную в машинный код. Делать такую трансляцию можно было научить лаборантов – техников, но даже если трансляцию осуществлял сам программист, наличие наглядного, содержательного текста кардинально облегчало дальнейшую работу с программой.

 

Надо сказать, что Брудно вместе со соими последователями А. С. Кронродом и другими придумали также и методику создания программ со множеством правил – позже аналогичные методики и правила повторно изобретались на западе под названием структурное программирование и другими.

Программирование в содержательных обозначениях было программированием на уровне комманд процессора. Позже, с переходом на ассемблер мы немало потеряли – наглядность записи,  включая возможность рисовать стрелки и любые придуманные значки. Првда, хранимость исходного текста и автоматическая трансляция/компиляция, которые му плучили взамен стоили того. А наглядность – частично вернулась позже, с более развитыми языками программирования. И методика дезайна и конструирования програм никуда не делись – разве что техника расширялась с появлением таких вещей, как макроязыков, абстрактных типов данных, объектов и многого другого.

 

Еще одна перемена, постепенно происходившая в этот период – это осознание того, что во многих случаях прграмма создается не на один раз. Или она может использоваться другими на других компьютерах, или подвергаться изменения для использования в несколько других целях. В 1965 году, когда я первый раз подощел к М20 существовал лишь в лючшем случае  десяток подобных машин и все в засекреченных огранизациях. Через несколько лет уже стали выпускаться несколько совместимых с М20 серий (БЭСМ-3, БЭСМ-4, М-220 и др.) равно как и другие серии с другой архитектурой. Использование одной и той же программы на разных машинах стало более обычным делом.