Цвет сверхдержавы - красный 4 Восхождение. часть 2
Шрифт:
— Может и транслироваться, но задача трансляции в этом случае тоже упрощается, — ответил академик. — Ещё более важное свойство языка — можно комбинировать несколько операторов — «слов», в более сложное «слово», и сразу же обращаться к нему в программе. Вновь определённое слово заносится на вершину словаря языка. Смотрите.
Лебедев напечатал:
15 SPACES
На мониторе отобразилось Ok, перед которым было напечатано 15 пробелов.
— Теперь я выведу звёздочку, у неё код 42, — академик набрал на клавиатуре
42 EMIT
Нажал ввод и на экране появилась звёздочка «*»
— Чтобы каждый раз не писать, язык позволяет определить новые слова, —
: ЗВЕЗДА 42 EMIT ;
: ПОЛЕ 15 SPACES ;
: ЗВЕЗДЫ 0 DO ЗВЕЗДА LOOP ;
— Определение нового слова начинается с двоеточия и заканчивается точкой с запятой. Теперь, если ввести команду:
ПОЛЕ 3 ЗВЕЗДЫ
— Мы получим три звёздочки, отодвинутые от края экрана на 15 пробелов, — улыбнулся Лебедев. — Поняли принцип, Андрей Петрович?
Язык, который был нужен для решения задач, стоящих перед робототехникой, и который Лебедев показывал Ершову, назывался Forth. В 1959-м его ещё не существовало. Теперь предстояло адаптировать Forth к вновь разработанным советским ЭВМ.
(пример взят из книги Лео Броуди «Начальный курс программирования на языке Forth» и опробован на реализации gforth для Ubuntu, с русскими словами, приведёнными в тексте.)
— Принцип гениальный, Сергей Алексеич, — улыбнулся Ершов. — Этак можно будет по человечески написать 30 ПОВОРОТ ПО ЧАСОВОЙ, а не раскидывать значения в восьмеричном виде по регистрам и ячейкам памяти, да ещё адреса ячеек где-то хранить... Только вот надо бы основной словарь языка тоже перевести на русский.
— Да хоть на малаялам, просто обозначим слова основного словаря цифровыми кодами, а в конкретной локализации эти коды будут вызываться мнемониками на русском, английском, или вообще на суахили, — усмехнулся Лебедев. — Займётесь? Исходники я дам.
— Да с удовольствием! — обрадовался Ершов.
— На мехмате МГУ под руководством Николая Петровича Брусенцова недавно сделали очень необычную машину «Сетунь» с троичной логикой. ЭВМ использует ферритовые логические элементы, и получилась на редкость дешёвой и компактной, — продолжил Лебедев. — Я собираюсь рекомендовать её правительству для серийного производства, в первую очередь, в качестве управляющей машины и учебной ЭВМ для ВУЗов. Надо в первую очередь реализовать Forth для этой машины, а затем — для управляющей ЭВМ УМ-1НХ, которую разрабатывают в Зеленограде товарищи Старос и Берг. Потом будем внедрять его и на других наших ЭВМ, но «Сетунь» и УМ-1НХ — в первую очередь.
(В 1980 г Н.П. Брусенцовым был разработан язык ДССП, напоминающий несколько усложнённый Forth
— Да мне это самому интересно, — ответил Ершов. — Ведь, если подумать, то машина, работающая на таком языке, может сама себя программировать. В смысле, не просто транслировать программу в машинные коды автоматически, а определять новые слова в процессе работы и тут же их использовать. Это же один из путей создания искусственного интеллекта.
— Искусственный интеллект — проблема весьма интересная, но ей мы займёмся позже, — слегка охладил его Лебедев. — Сейчас надо сосредоточить все усилия на управляющих ЭВМ для промышленности.
Ершов с энтузиазмом взялся за дело. Основной словарь Forth был переведён на русский язык, ещё некоторое время ушло на адаптацию языка к машинным кодам ЭВМ «Сетунь». Для скорости вначале реализовали не все слова основного словаря, а лишь те, что были необходимы для управления манипулятором, рассчитывая дополнить словарь в следующей версии.
Параллельно несколько программистов писали на Forth программу для управления манипулятором. Наконец её впервые запустили на реальной ЭВМ. Две недели работали в три смены, вылавливая ошибки. Затем подключили к «Сетуни» манипулятор. Архитектура языка сильно упрощала отладку. Каждую команду, каждое
Общий объём программы на Forth оказался даже меньше, чем объём памяти для машинных кодов, реализующих её «внутри» ЭВМ. Программа была написана «почти человеческим» языком, что привело в восторг заводских технологов МЗМА, на котором опробовали новую систему.
В конце июня образец гибкой производственной ячейки под управлением ЭВМ «Сетунь», оснащённый манипулятором и управляющей программой на Forth, показали в США на «Выставке достижений советской науки, техники и культуры» (АИ, см. гл. 04-12). Но целью разработки и внедрения была не «показуха» в Штатах. Пока программисты совершенствовали свою реализацию языка Forth и переносили её на разрабатываемую Старосом ЭВМ УМ-1НХ, к работе подключился Институт автоматики и телемеханики (ИАТ АН СССР), которым с 1951 года руководил академик Вадим Александрович Трапезников.
Программисты ИАТ по достоинству оценили возможности Forth в части управления оборудованием и робототехникой. Они, совместно со специалистами ЭНИМС, взяли на себя внедрение новых технологий, сначала на МЗМА. (АИ) Затем планировалось внедрять гибкие производственные ячейки на Горьковском автозаводе, на заводе «Коммунар» в Запорожье, где изготавливалась IFA «Спутник», и далее везде. И это было только начало.
В 1950-х годах в Институте автоматики и телемеханики, под руководством чл.-корр. АН СССР Михаила Александровича Гаврилова была выдвинута идея автоматизации процессов проектирования оптимальных систем управления. Первоначально она была реализована в комплексе аппаратуры, получившем название автоматического синтезатора. При помощи автоматического синтезатора удавалось находить оптимальный закон, связывающий вход и выход управляющей части системы, а потом по найденному алгоритму управления переходить к синтезу управляющей части с таким же или близким алгоритмом. Наконец, при помощи автоматического синтезатора выбиралась требуемая структурная схема, которая затем использовалась в основе проектирования реальной системы управления.
Переход промышленности на широкое применение станков с программным управлением требовал внедрения новых устройств и технологий. В 1958 году могилёвский завод «Электродвигатель» освоил серийное производство шаговых двигателей, а челябинский завод «Электромашина» запустил в серию линейные электродвигатели нескольких типоразмеров, необходимые для электроэрозионных станков, а также станков гидравлической, плазменной и лазерной резки. (АИ) До этого данные типы двигателей изготавливались только в небольших количествах, в лабораторных условиях. На этих двигателях собирались станки с программным управлением, разрабатываемые в ЭНИМС.
Передача разработок периферийных устройств ввода-вывода из Пензенского филиала СКБ-245 в НИИСчётмаш происходила постепенно, тем более, что некоторые из этих устройств уже были в достаточно высокой степени готовности, и передача их разработки в другую организацию на этом этапе лишь отодвинула бы окончание работ. В то же время в НИИСчётмаш разработки периферийных устройств по заданию министерства электронной промышленности уже велись, и решение Шокина лишь зафиксировало сложившееся положение дел.