Русский
Русский
English
Статистика
Реклама

Ес эвм

Радик Ананян Вычислительную машину я не видел, пока мы не сделали ее сами

25.08.2020 20:14:31 | Автор: admin

Радик Оганесович Ананян один из первых сотрудников открывшегося в 1956 году Ереванского НИИ математических машин. В интервью музейному проекту DataArt он вспоминает, как работал новый институт, как создавались первые ЭВМ и как снимался короткометражный фильм Короткое замыкание, выигравший первое место на кинофестивале в Москве.

На фото Радика Ананяна работники института с коллегами на демонстрации 1 мая 1960 года. Сам фильм Короткое замыкание и еще одна лента Радика Оганесовича ниже в статье.

Фотограф и радиолюбитель


Родился я в 1934 году в Ереване. В школьные годы увлекся радиолюбительством. У моего школьного товарища был сосед Сергей Шахазизян. Он тогда то ли в институте учился, то ли уже работал. Сергей мне и объяснил, как устроены радиолампы тогда все делалось на них. С Сергеем мы сдружились, наверное, я ему понравился своими техническими наклонностями. Потом он работал в Доме радио и первым придумал устройство, которое позволяло при выключении микрофона избежать щелчка. Никто не мог от этого звука избавиться, а он это сделал. Очень талантливый парень, его давно уже нет с нами.

В школьные годы мне очень хотелось собрать усилитель, чтобы слушать музыку. Сергей подсказал как, и я сделал. По тем временам это было здорово, тем более что он был с электромотором на 78 оборотов для пластинок его я купил в Москве. Получился усилитель с проигрывателем. В дальнейшем я собирался сделать магнитофон. Когда в первый раз его увидел через окно одного учреждения, был потрясен. Благодаря журналу Радио, понял, как это работает. Правда, до сборки дело так и не дошло.


Ереван в 1940-х, площадь Ленина, теперь площадь Республики

В радиолюбительский кружок вы не ходили?

Нет. Мое радиолюбительство в чистом виде самодеятельность, развивалось оно благодаря Сергею Шахазизяну. Это был конец 1940-х годов, в школе еще даже предмета труд не было, его потом ввели.

Как в семье относились к вашему увлечению?

Нормально, наверное. Я всегда чем-то занимался, что-то чинил, строил.

Куда идти учиться после школы, вопросов не возникало?

Хотел поступить на архитектурный, но не прошел по рисованию. Еще со школьных лет я занимался фотографией. Первые мои цветные снимки были сделаны в 1947 году, когда в Ереване только появились бумага и пленка.


Радик Ананян

Это был сложный процесс?

Очень сложный. Чтобы напечатать одну цветную фотографию, приходилось сидеть всю ночь. Нужно было дождаться, чтобы родные легли спать, и я мог работать в темноте. Вода для проявки не должна была быть теплее 18 градусов С трудом я освоил это дело, но постоянно им не занимался. Тем более, в школьные годы ничего не зарабатывал, а это стоило огромных денег. По копейкам собирал, чтобы пленку одну купить.

НИИ математических машин


Что было после того, как вы не поступили в архитектурный?

Отслужил в армии и пошел работать в Институт физики радистом. Затем, перешел в НИИ математических машин. Параллельно стал заочно учиться в МЭИ, а с 3-го курса перевелся на очное отделение Ереванского политехнического института на факультет кибернетики. Т. к. учился на очном отделении, пришлось работать на полставки. Тогда же я организовал любительскую киностудию.


Кадр из фильма Короткое замыкание, реж. Радик Ананян, Ереванский НИИ математических машин, 1967 г.

Получив диплом, вы вернулись к прежней работе в НИИ?

Я вернулся еще до получения диплома, на последнем курсе. Позвали, потому что накопители на магнитной ленте для долговременной памяти, которыми я занимался, уже пошли в серию, их надо было сдавать приемной комиссии. Я был хорошо знаком со всеми узлами этих устройств, мне дали полный оклад и право являться на работу в свободное от учебы время с условием произвести испытания в срок и сдать готовые изделия.

Когда вы перешли в НИИ математических машин?

В январе 1957-го, можно сказать, в организационный период, потому что образовался ЕрНИИММ в октябре 1956-го. Тогда это было двухэтажное здание на окраине города. Кругом пшеничные поля. На сегодняшний день это уже часть города.

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


Разработка ЭВМ Арагац велась во втором отдела ЕрНИИММ, 1958 г.

Постепенно институт развивался, построили новые корпуса, жилой массив. Большущий комплекс там и институт был, и завод. Я стал ведущим инженером, последний год работы в институте занимался закрытой темой.

Расскажите о первых днях работы в ЕрНИИММ.

Большинство принятых на работу сотрудников сразу отправляли на стажировку в разные города Союза Пензу, Ленинград, Минск. В Пензе, например, был завод вычислительной техники, если не ошибаюсь, выпустивший М-3 одну из первых машин в СССР мы ее потом копировали. Те, кто не уехал набираться опыта, читали книжку японского автора Ицхоки Импульсная техника. Чем мы будем конкретно заниматься, тогда мало кто понимал. Потом мы получили первый осциллограф. Черный, большой. Позже появились маленькие, СИ-1.

У каждого из нас было место за лабораторным столом. Инженеры и техники сами собирали для себя блоки питания под разное напряжение, которое мы получали от наших же генераторов.


Коллега Радика Ананяна Сурен Айрапетян собирает блок питания. ЕрНИИММ, 1960 г.

Когда вы впервые увидели вычислительную машину?

Я машину не видел, пока мы не сделали ее сами. Называлась она Арагац в честь нашей горы. Большущая, работала на радиолампах. Т. к. лампы нагревались, нужна была мощная вентиляция. Из-за нее мы все неоднократно болели.


Восхождение на Арагац, 01.08.1958 г. Второй справа Радик Ананян

Архитектуру машины разработали в вашем институте?

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

Наш отдел занимался внешними устройствами. Колоссальное достижение большой куб на ферритовых кольцах (каждый бит), который мог хранить 4 килобайта.


Накопитель на магнитной ленте (НМЛ) для первых ЭВМ, ЕрНИММ, 1960 г.

Для памяти использовали два вида магнитных носителей магнитные ленты и магнитные барабаны. В дальнейшем применяли магнитные диски пензенского завода. Диски друг на друга ставились штук по 1020, смотря, какая конфигурация устройства, а магнитные головки между ними считывали и записывали. Когда начинались сбои, диск доставали и чистили спиртом. Под это дело командированные сотрудники все время у меня просили спирт. У меня было два вида нормальный спирт и технический. Когда нормальный кончился, говорю: Технический не дам отравитесь. Они: Если бы травились, половины бы завода уже не было! Оказалось, они его тоже пили.


Ячейка усилителя и формирователя ЭВМ Арагац. ЕрНИИММ, 1958 г.

Вы помните, как запустился первый Арагац?

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

Были нормативы по времени работы без перебоев?

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


В конструкторском бюро ЕрНИИММ, 1960-е гг.

Полупроводниковые машины тоже ваши собственные разработки?

Да, абсолютно. Потом уже пошла интеграция. Ввод делает один город, вывод другой. Если память не изменяет, из периферийных устройств у нас в разработке остались только магнитные ленты.


Перед испытанием накопителя на магнитной ленте. Второй слева Радик Ананян, Ереванский НИИ математических машин, 1960 г.

ЕС ЭВМ


Ваш институт занимался и ЕС ЭВМ. Как это было? Координация шла из Москвы?

В то время по всем отраслям создавались головные институты. Головным по вычислительной технике для нас был НИЦЭВТ. Они заведовали всем хозяйством где что будут делать. Каждый институт в Союзе разрабатывал свою систему. На наш институт была возложена разработка средних машин: ЕС1030, ЕС1045.

За основу ЕС брали IBM. Они у вас были?

Нет, вначале мы исключительно книгами пользовались. Когда в СССР вышла книга IBM-360, в Армении ее сразу раскупили. Кроме нашего института, стали появляться другие организации, которые занимались вычислительной техникой и смежными отраслями. В 90-е все это грохнулось.


Торжественное заседание, посвященное 10-летию ЕрНИИММ, 1966 г.

Каким было отношение к проекту ЕС в Армении?

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

Когда вы занимались разработками, на каком языке велась документация?

На русском. По всему Советскому Союзу было так, чтобы можно было лучше понимать друг друга. Вот в академических институтах, тем более по гуманитарным предметам, уже национальные языки использовались.

Досуг и спорт



Каким был обычный рабочий день в институте?

В каждом отделе по-своему. У кого-то хорошая работа была, у кого-то такая, что сделаешь не сделаешь все равно. Ближе к моменту сдачи изделия начинался аврал. Времени не хватало, и вечером и ночью сидели. После этого нам давали отгулы. Неделю отдохнешь, потом начинаешь снова накаляться.


Сотрудники ЕрНИИММ на демонстрации, 7 ноября 1959 г.

После сдачи перед отдыхом был праздник?

Естественно. Когда сдавали машину, в ресторане устраивали банкет для себя и комиссии. Деньги собирали, с приглашенных не брали.

Каким еще был в институте совместный отдых?

Ходили в горы. Организовывал это то ли комсомольский комитет, то ли профсоюзный. Они всегда занимались досугом работников, помогали в каких-то вопросах. Если машину надо выделяли. Надо палатку покупали. В то время было все что надо для таких мероприятий.


Восхождение на Арагац, сентябрь 1958 г. Слева Радик Ананян

Был у нас и радиокружок учили азбуку Морзе, играли в Охоту на лис. Это такой радиолюбительский спорт. Каждый делал себе усилитель, который работал на направленную антенну. Лиса это передатчик, спрятанный где-то в горах и дающий сигнал через какой-то интервал времени. Ты его ищешь. На старте соревнований 1030 охотников, потом они разбегаются по разным направлениям, потому что у каждого прибор показывает свое. Кто первый найдет лису, тот выиграет.


В радиоклубе ЕрНИИММ, 1960 г.

Создание вычислительного центра


Почему вы ушли из ЕрНИИММ?

В 1976 году Совету министров Армении понадобился инженер, знакомый с вычислительной техникой. Меня рекомендовали туда на должность заведующего отделом. В то время в СССР организовывалась сеть Вычислительных центров. Головной Вычислительный центр правительства Советского Союза, также ВЦ стали открывать во всех республиках, потом во всех министерствах и разных крупных управлениях.

Сначала я был начальником пункта информации и связи. Потом создал отдел с этим пунктом и стал заведующим. Так и работал до 1993 года.

Когда вы перешли на новое место, работа оказалась заметно другой?

Она очень сильно отличалась. В институте мы создавали что-то, а здесь эксплуатировали. Пункт информации и связи как бы вычислительный центр. Я его называл конечные выходные устройства машины. Сама она находилась в Москве.

Т. е. у вас была модемная связь с московской машиной?

Да. Я поэтому и сказал как бы вычислительный центр. Настоящий вычислительный центр мы сделали позже мне поручили его создать. Купили машину, потом, когда появились компьютеры, стали создавать сети. Но это уже другая история.

Что было после 1993 года?

Разочаровавшись во всех новшествах после развала СССР, я подал заявление и уехал за границу. С 2000 до 2004 года жил в Питере, потом еще 4 года в Канаде. Вернулся в Ереван и больше не хочу уезжать.


Ненужные блоки ячеек, 1963 г.

Первые персональные компьютеры



В монтажном секторе ЕрНИИММ, 1963 г.

Когда вы впервые познакомились с персональным компьютером?

Помню, купил сыну БК. Он без экрана, надо было подключать к телевизору и кассетному магнитофону. Клавиатура была своя, и больше ничего. Сын играл, когда был маленьким. Первые нормальные компьютеры мы получили в 1988-м, когда случилось землетрясение. Тогда нам все помогали, и фирма IBM прислала 10 современных компьютеров с принтером. Их распределили по большим городам в зоне землетрясения. Через них мы получали сведения по всем работам, касающимся восстановления страны.

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

Короткое замыкание и награды



С коллегами на демонстрации 1 мая 1962 г.

Как развивалась вычислительная техника в Армении времен СССР? Было что-то свое?

Трудно сказать. Поначалу мы совсем ничего не знали. Постепенно, когда стали делать машины, уже могли идти в ногу со всей нашей наукой. Нас всегда старались несколько опустить, это, наверное, естественно. Но у нас уже были хорошие специалисты. Везде они появились Вильнюс этим делом занимался, Минск, Киев Я все время проводил в командировках. Иногда поручал поездки кому-то другому, чтобы самому не ехать. Бывал везде, где отрасль работала. Сначала ездили обсуждать вопросы по созданию. Когда изделие поставлялось заказчику, приходилось ехать, чтобы научить его эксплуатировать, ремонтировать.

В заграничных командировках бывали?

Я нет. Один раз поехал из-за кино в Чехословакии был фестиваль по 16-миллиметровым фильмам.

Расскажите про киностудию в институте.

Я ее создал, потому что меня очень интересовало кино. Сначала в ней было три человека, потом немного больше. Маленьким коллективом снимали фильмы. Артист, которого вы видели в Коротком замыкании, работал у нас ведущим конструктором. Этот фильм мы сняли к 10-летию института, но он не был первым. Один из наших ребят был в Японии и оттуда привез 8-миллиметровый киноаппарат. На нем мы сняли фильм, который назывался Я, он, она. В нем тоже играли институтские работники. Сюжет такой. Человек в лотерею выиграл машину, абсолютно не понимая, как на ней ездить. Он пишет объявление, что ищет инструктора по вождению. Наш конструктор как будто безработный и немного аферист, который как бы все умеет, но не умеет ничего. Он говорит, что научит, хотя сам не знает, как ехать. В результате у них авария происходит.

Героя, который хотел научиться, играл как раз парень, ездивший в Японию. У него была своя Волга. Требовалась вторая машина. В институте их было очень мало, всего у нескольких человек. И вот свой старый Москвич предоставил наш главный инженер, ему сейчас 102 года. Сделали сцену столкновения обратная съемка там была. Потом по сценарию герой понимает, что его обманывают, бежит за аферистом, чтобы его побить. Оказалось, на улице эту сцену не снять толпа собралась. Рядом Дом моды, в котором меня знали я там когда-то фотографировал. Пошел к ним, попросил сделать как бы показ моделей. Аферист вбегает туда, снимает пиджак и ходит по подиуму, будто сам одежду показывает.

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


Фильм Короткое замыкание, реж. Радик Ананян, 1967 г.

За Короткое замыкание вы получили какие-то награды?

В Ереване было общество кинолюбителей. Когда там узнали, что у нас есть 40-минутный фильм, попросили показать. Затем на республиканском конкурсе мы заняли 1-е место, и общество отправило наш фильм в Москву на Всесоюзный кинофестиваль любительских фильмов в честь 50-летия советской власти. У них был регламент не более 20 минут. Я уже и сам думал, что надо сокращать. Нам, конечно, интересно было смотреть на самих себя, но это неинтересно постороннему зрителю.

Когда сокращал, много драматичных моментов было резать жалко. Но сделал на 20:17 минут даже эпизод с участием директора НИИ вырезал. Я и режиссером был, и руководителем. Сам проявлял, делал звук. В итоге мы получили диплом за первое место среди 16 мм фильмов, а конструктор Саркисов за лучшую роль.

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


Гангстеры против ЭВМ вфильме Радика Ананяна Ограбление произойдет вполдень. Лента участвовал вконкурсе 16-мм фильмов вБрно в1968г. Из-за недавнего подавления Пражской весны обстановка была напряженной, поэтому Радик Ананян оказался одним извсего лишь двоих представителей СССР нафестивале. Вторым был один изчленов жюри. Вкадре можно увидеть ЭВМ Арагац иНаири.
Подробнее..

О русском языке в программировании

03.01.2021 18:23:42 | Автор: admin

Введение

Начну с мелочи. Удобно ли сейчас организована типичная смена раскладки клавиатуры? В смысле переключения на русский/латинский? На мой взгляд, в смартфонах и то удобнее. Не надо нажимать одновременно все эти Shift и Alt. На моем первом домашнем компьютере Электроника-901 (он же ai-PC16) было даже две специальных пустых клавиши примерно там, где сейчас клавиши-окна. Одна переключала на русскую раскладку постоянно, а другая - временно (на время нажатия). Это гораздо удобнее. Впрочем, самый удобный вариант переключения в свое время я сделал сам из массивной педали от швейной машинки Тула, просто соединив ее двумя проводами с контактами DTR и DSR разъема RS-232. В этом случае если программно установить бит DTR в 1, то наличие сигнала DSR означает, что педаль нажата, иначе отпущена. Переключать раскладку без рук оказалось очень эргономично. Увы, по мере распространения новых интерфейсов, RS-232 постепенно сошел на нет и сейчас в ноутбуке педаль просто некуда подключить.

Кстати, дарю идею фирмам, выпускающим всякую USB-ерунду, вроде пластикового хамелеона, периодически высовывающего язык: выпустить USB-устройство в виде педали, при нажатии на которую эмулируются нажатия заданных пользователем клавиш. Правда уже есть USB-руль с педалями, но там все-таки много лишнего. Наиболее очевидное использование нового простого устройства переключение раскладки клавиатуры без помощи рук.

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

Но, повторю, громоздкое переключение - это мелочь, не проблема, а, скорее, следствие отношения к использованию русского языка как к чему-то второстепенному и не стоящему внимания. Хотя и эта мелочь нет-нет, да и напомнит о себе, хотя бы в виде модной, но глупой аббревиатуры КВТ (вместо RSDN) на форумах сайта RSDN.RU.

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

Естественность использования родного языка

Язык неразрывно связан с мышлением. Например, когда я пишу текст программы, я невольно мысленно произношу требуемое действие. Конечно, оно не звучит внутри голосом Левитана и даже не всегда это именно звуки, но что-то типа: если и а и б нулевые, то уходим в мыслях проносится. На типичном современном языке программирования эту мысль в виде программного текста я должен выразить как-нибудь так:

if (a==0 && b==0) return;

Т.е. мысленно про себя произношу если, уходим, а писать все-таки должен if, return. Незаметно приходится все время переводить, пусть и в самой простейшей форме. Поэтому для меня более естественна запись того же оператора в виде:

если a=0 и b=0 тогда возврат;

Я именно так и пишу. И это вовсе не псевдокод, а реальный оператор языка [1], где ключевые слова имеют русские эквиваленты, не требуется различать присваивание и сравнение (а, значит, не нужно удвоение символов), и логические операции можно писать просто как И, ИЛИ, НЕ. Оператор больше стал похож на мысленную фразу и перевод с мысленного русского на программный английский уже не требуется.

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

Например, когда моя жена училась в Московском математическом техникуме, основы программирования им преподавали с помощью специального языка (нечто вроде псевдокода), который так и назывался: Русский Алгоритмический Язык, сокращенно РАЯ. (Смешно. Выходит, в нашей семье жена знакома с языком РАЯ, а муж с языком Ада). На мой взгляд, это был мудрый прием. Родной язык, конечно, не панацея и не обеспечивал выпуск суперпрограммистов, но то, что он способствовал более глубокому пониманию основ на самом важном начальном этапе несомненно.

Разумные границы использования

Попытки превратить язык программирования в национальный или, наоборот, избавиться от национальных особенностей в тексте программы были предприняты еще более полувека назад. Я имею в виду языки Кобол и АПЛ.

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

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

На мой взгляд, программные тексты должны иметь золотую середину между этими крайностями. Они, конечно, не должны быть слишком многословными и этим напоминающими старинные поваренные книги, но и шарады из цепочек значков и скобок (можно вспомнить Лисп, где встречалось до двадцати скобок подряд) это тоже не идеал. А если в тексте программы все же используются не одни значки, но и слова, то лучше, чтобы они были на родном языке.

Опыт использования родного языка

Если обратиться к собственному опыту использования родного языка, то считаю, что мне в какой-то мере даже повезло: период обучения и освоения пришелся на время, когда русский язык использовался не то, чтобы широко, но вполне естественно, поскольку применялись программные и аппаратные средства отечественной разработки. Как программист я начинал с БЭСМ-6, операционной системы ОС-Диспак, транслятора БЭСМ-АЛГОЛ и диалоговой программы Пульт (при этом работа за терминалом VT-340 очень напоминала работу за первыми персональными компьютерами). В те времена даже в кодовой таблице сначала шел русский алфавит, а затем латинские буквы, отличающиеся по написанию от кириллицы. Вся документация была, естественно, на русском, например, в описании команд БЭСМ-6 все аббревиатуры команд были кириллицей, не было никаких MOV или JMP.

В отличие от ЕС-ЭВМ, в направлении БЭСМ (и Эльбрус) все оставалось по-русски. Правда, до тех пор, пока не появилась разработка дубнинского ядерного центра мониторная система Дубна, в составе которой был ассемблер (тогда такие языки назывались автокодами) со странным именем Мадлен. Так как транслятор сначала переводил на него, некоторые сообщения об ошибках выдавались на уровне ассемблера. И все они были по-английски! Получалось, что одни советские программисты писали сообщения для других советских программистов не на родном языке. Разумеется, Дубна изначально была предназначена для совместной работы где-нибудь в ЦЕРН, поэтому там и было все в международном варианте. Но нам она была поставлена как отечественная система и при этом бесцеремонно отодвинула от родного языка. Например, аббревиатуры команд в Мадлен стали не такими как в исходной документации на БЭСМ-6, что вызывало непонимание и раздражение.

Еще через несколько лет (для меня в 1987 году) в части родного языка все перевернулось с появлением американских персональных компьютеров. Объективно и естественно в первое время никакого русского языка там не было в принципе. Но поскольку это требовалось для набора текстов, приспосабливать их под родной язык все-таки пришлось. Т.е. пришлось перепрошивать ПЗУ видеокарт, наклеивать переводные картинки кириллицы на боковые стенки клавиш, учиться писать драйверы клавиатуры, попутно привыкая к аббревиатурам системы команд x86. Очень скоро русификацией компьютеров и принтеров уже занимались во многих организациях, имеющих ПК, и дело было поставлено буквально на поток. Но при этом русификацией получаемых вместе с компьютерами трансляторов обычно никто не занимался, в лучшем случае лишь переводились руководства.

Возможно, я стал одним из первых, кто озаботился этим и то лишь потому, что полученный вместе с IBM-PC/XT транслятор с языка PL/1 не позволял писать по-русски даже комментарии: все символы с кодом больше 7FН воспринимались им как управляющие. Из-за этого на первых порах комментарии выглядели как теперешние SMS по-русски с телефонов, не имеющих кириллицы. Но разрабатывать программы, не используя родной язык, было для меня совершенно недопустимым. Первое исправление транслятора, которое разрешило кириллицу, оказалось очень легким и привело к мысли дизассемблировать весь транслятор, чтобы стать полноправным владельцем и постепенно сделать его целиком русским. Учитывая, что в PL/1 ключевые слова не зарезервированы, можно иметь одновременно два варианта слов: английский и русский. Поэтому уже написанные программы можно было оставить английскими, зато новые программы можно было писать уже по-русски.

Впоследствии в транслятор было внесено множество доработок, приведенных в [1]. По части русификации были добавлены русские ключевые слова, включая И-ИЛИ-НЕ вместо знаков &, ! и ~. Такой перевод логических операций на русский сразу сделал тексты программ гораздо легче воспринимаемыми. Диагностические сообщения также были переведены и расширены. Много ли существует современных программных средств, которые выдают сообщения об ошибках на русском языке? А ведь это первое, с чем сталкиваются новички. Им и так-то бывает нелегко разобраться, что именно вызвало ошибку, а тут еще и сообщения не на родном языке. Поэтому часто даже вполне внятные сообщения начинают восприниматься ими одинаково: транслятор ругается, а поиск ошибок в тексте производится бессистемным образом, вне связи с полученным сообщением.

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

Но большинство программистов моего поколения перешли на языки с Си-образным синтаксисом и практически перестали использовать в текстах программ кириллицу.

Заключение

На первый взгляд кажется, что сейчас никаких проблем с русским языком нет. Действительно, давно локализованы на национальные языки операционные системы, офисные программы и игры, а кириллица наносится на клавиши заводским способом. Но если обратится к программированию, то здесь русский язык почти полностью вытеснен. Конечно, есть и исключения, например, Бухгалтерия 1С. При этом я ни в коем случае не призываю создавать специально русские языки программирования (остряки сразу же добавят: православные). Напомню, что даже в самом первом международном документе по языку программирования [2] предполагалось три уровня его представления: эталонный, язык публикаций и конкретные представления. Т.е. с самого начала предполагалось, что знаки языка могут быть различными в разных странах, однако должно быть сохранено однозначное соответствие с эталонным представлением.

Сам я использую язык PL/1, созданный на Западе (большей частью в Великобритании), наличие готового транслятора с которого было в свое время даже одним из аргументов принятия в СССР решения копировать IBM 360 в виде ЕС ЭВМ. Но, возможно, обоснованное на тот момент решение в своей программной части в дальнейшем не было подкреплено развитием первоначально скопированного эталона. Конечно, сейчас с позиции послезнания легко советовать, что надо было делать тогда. Впрочем, и тогда многим это было понятно: урок освоения ОС ЕС ясен: можно, и иногда нужно осваивать отдельные образцы зарубежного программного обеспечения, но нельзя становиться на путь постоянного следования за ними [3].

Мой опыт энтузиаста-дилетанта (без профильного образования), показывает, что разобраться в существующем компиляторе не так уж и трудоемко. Коллектив из 4-5 человек где-нибудь в Академгородке сделал бы это быстро и качественно, например, с компилятором IBM для PL/1. Т.е. дизассемблировал бы его и научился транслировать и собирать точную копию исходного. И это надо было делать, конечно, не для русификации, а для того, чтобы стать хозяином транслятора и с этой стартовой площадки продолжить его развитие дальше, уже независимо ни от кого, снабжая армию пользователей ЕС ЭВМ качественным и, главное, совершенствующимся продуктом. А перевод на русский язык компилятора и других утилит был бы всего лишь бонусом, облегчающим сопровождение и использование. Но транслятор с языка PL/1 на ЕС ЭВМ так и не был освоен. Я делаю такой вывод потому, что он так и не был русифицирован, хотя попытки развить язык и были [5].

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

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

Однако, на мой взгляд, языки программирования имеют гораздо больше общих черт с обычными языками, чем абстрактное математическое или химическое представление. Если человек думает по-русски, в большинстве случаев он никогда не начнет думать по-английски. Запрещая использовать элементы родного языка при изучении основ программирования, мы изначально ставим наших школьников и студентов в отстающее положение по сравнению с их англоязычными сверстниками.

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

Использование русского языка отражает и общее состояние дел в развитии программирования. Пока в СССР шли собственные разработки - использовался, естественно, и русский язык, например, в таком выдающемся проекте, как Эль-76, где были задействованы большие силы всей страны: в разработке ПО для Эльбруса участвовал ряд университетов, включая Таллин и Кишинев. Прекратились разработки вот русский язык и исчез, а попытки возрождения, например, проект Национальной Программной Платформы, терпят неудачу.

Русский язык это то, что всех нас (и программистов и не программистов) объединяет. Использование родного языка в программировании является и признаком независимого развития этой отрасли и одновременно объективной базой такого развития.

Напоследок приведу исторический анекдот: когда Петр Первый организовывал выпуск нового российского рубля (монеты), ему советовали все надписи сделать на латыни, иначе, мол, такие деньги не будут принимать за границей. Спасибо тому скажу, кто придумает, как оставить деньги в Отечестве, а не тому, кто выведет их иноземцам ответил Петр.

Литература

1. Д.Ю. Караваев К вопросу о совершенствовании языка программирования RSDN Magazine #4 2011

2. А.П. Ершов, С.С. Лавров, М.Р. Шура-Бура Алгоритмический язык АЛГОЛ-60. Пересмотренное сообщение. Москва Мир 1965

3. Г.С. Цейтин Доклад Итоги освоения ОС ЕС (заметки пользователя) 29.08.1983

4. В.М. Табаков Специализированная система гиперпрограммирования для языка ПЛ/1 : диссертация кандидата физико-математических наук : 05.13.11. Калинин, 1984.

Подробнее..

Почему в EBCDIC буквы идут не подряд?

07.10.2020 20:16:52 | Автор: admin

Стандарт ASCII был принят в 1963, и сейчас вряд ли кто-нибудь использует кодировку, первые 128 символов которой отличались бы от ASCII. Тем не менее, до конца прошлого века активно использовалась EBCDIC стандартная кодировка для мейнфреймов IBM и их советских клонов ЕС ЭВМ. EBCDIC остаётся основной кодировкой в z/OS стандартной ОС для современных мейнфреймов IBM Z.

То, что сразу бросается в глаза при взгляде на EBCDIC то, что буквы идут не подряд: между I и J и между R и S остались неиспользованные позиции (на ЕС ЭВМ по этим промежуткам распределили символы кириллицы). Кому могло придти в голову кодировать буквы с неравными пропусками между соседними буквами?

Само название EBCDIC ("Extended BCDIC") намекает на то, что эта кодировка в отличие от ASCII создавалась не на пустом месте, а на основе шестибитной кодировки BCDIC, которая использовалась начиная с IBM 704 (1954):

Непосредственной обратной совместимости нет: удобной чертой BCDIC, утраченной при переходе к EBCDIC, было то, что цифрам 0-9 соответствуют коды 0-9. Тем не менее, разрывы в семь кодов между I и J и в восемь кодов между R и S в BCDIC уже были. Откуда же они взялись?

История (E)BCDIC начинается одновременно с историей IBM задолго до электронных компьютеров. IBM образовалась в результате слияния четырёх компаний, из которых самой технологически продвинутой была "Tabulating Machine Company", основанная в 1896 Германом Холлеритом изобретателем табулятора. Первые табуляторы просто подсчитывали число перфокарт, пробитых в определённом месте; но в 1905 Холлерит начал производство десятичных табуляторов. Каждая карта для десятичного табулятора состояла из полей произвольной длины, и числа, записанные в этих полях в привычной десятичной форме, суммировались по всей колоде. Разбивка карты на поля задавалась соединением проводов на коммутационной панели табулятора. Например, на этой перфокарте Холлерита, хранящейся в Библиотеке Конгресса, очевидным образом выбито число 23456789012345678, неизвестно как разделённое на поля:

Самые внимательные могли заметить, что на карте Холлерита 12 рядов для отверстий, хотя для цифр достаточно десяти; а в BCDIC для каждого значения старших двух битов используются только 12 кодов из 16 возможных.

Конечно же, это не случайное совпадение. Изначально Холлерит предназначал дополнительные ряды для "специальных отметок", которые не суммировались, а просто подсчитывались как в самых первых табуляторах. (Сегодня мы бы назвали их "битовыми полями".) Кроме того, среди "специальных отметок" можно было задать group indicators: если при табуляции требовались не только окончательные суммы, но и промежуточные, то табулятор останавливался, когда обнаруживал изменение любого из group indicators, и оператор должен был переписать промежуточные суммы с цифровых табло на бумагу, обнулить табло, и возобновить табуляцию. Например, при подсчёте бухгалтерских балансов группа карт могла соответствовать одной дате или одному контрагенту.

К 1920, когда Холлерит уже ушёл на пенсию, вошли в употребление "печатающие табуляторы", которые подключались к телетайпу и могли сами печатать промежуточные суммы, не требуя вмешательства оператора. Сложность теперь заключалась в том, чтобы определить, к чему относится каждое из напечатанных чисел. В 1931 IBM решила при помощи "специальных отметок" обозначать буквы: отметка в 12-том ряду обозначала букву от A до I, в 11-том от J до R, в нулевом от S до Z. Новый "алфавитный табулятор" мог печатать название каждой группы карт вместе с промежуточными суммами; при этом непробитый столбец превращался в пробел между символами. Заметьте, что S обозначается комбинацией отверстий 0+2, а комбинация 0+1 изначально не использовалась из опасения, что два отверстия рядом в одном столбце могут вызвать механические проблемы в считывателе.

Теперь на таблицу BCDIC можно посмотреть немного под другим углом:

За исключением того, что 0 и пробел переставлены местами, старшие два бита определяют "специальную отметку", которую с 1931 пробивали в перфокарте для соответствующего символа; а младшие четыре бита определяют цифру, пробиваемую в основной части карты. Поддержка символов & - / добавилась в табуляторы IBM в 1930-х, и кодировка этих символов в BCDIC соответствует пробиваемым для них комбинациям отверстий. Когда понадобилась поддержка ещё большего числа символов, то в качестве дополнительной "специальной отметки" стали пробивать ряд 8 таким образом, в одном столбце могло быть до трёх отверстий. Такой формат перфокарт сохранился практически неизменным до конца века. В СССР оставили IBM-овские кодировки латиницы и пунктуации, а для букв кириллицы пробивали сразу по нескольку "специальных отметок" в рядах 12, 11, 0 не ограничиваясь тремя отверстиями в одном столбце.

Когда создавался компьютер IBM 704, то над кодировкой символов для него долго не думали: взяли кодировку, уже используемую тогда в перфокартах, и лишь 0 "поставили на место". В 1964, при переходе от BCDIC к EBCDIC, младшие четыре бита каждого символа оставили без изменений, хотя немного перетасовали старшие биты. Таким образом формат перфокарт, выбранный Холлеритом в начале прошлого века, оказал влияние на архитектуру всех компьютеров IBM, до IBM Z включительно.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru