ПК-ностальгия
HOME
Железо
Программы
Оборудование
Статьи и публикации
Фототаблица
Ссылки
Почта
Гостевая
ПОИСК
Новости Яndex
О сайте

Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?

StuhlbergR 2007 ©

Беседы о поколениях ЭВМ

Н. Бусленко, В. Бусленко

©   Издательство "Молодая гвардия", 1977 г.

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

ЭВМ второго поколения (окончание)

- Это уже что-то новое! Наконец-то машина пошла навстречу человеку!

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

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

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

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

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

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

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

НАЧАЛО
Для I:=1 шагом 1 до 250 000 сделать
сумма:=сумма+В(I);
ответ:=сумма/250 000;
КОНЕЦ

Впервые увидевшему эту запись, наверное, трудно догадаться, что это программа усреднения "250 тысяч чисел из массива В". Записана она по правилам, принятым в языке АЛГОЛ (ALGOL - расшифровывается как ALGOritmic Linguage, что в переводе с английского означает просто - алгоритмический язык).

АЛГОЛ, пожалуй, наиболее известный из машинных языков. Потребовалось немало усилий, чтобы наконец в 1960 году в Париже на специальном международном форуме принять АЛГОЛ-60 как Международный универсальный алгоритмический язык. На АЛГОЛе можно описывать практически любые вычислительные задачи; в этом смысле он является универсальным. Называя его алгоритмическим, создатели хотели подчеркнуть, что, помимо утилитарных целей составления и реализации конкретных машинных программ, АЛГОЛ служит удобным средством описания алгоритмов вообще (не только для целей программирования), средством накопления, обмена алгоритмами. Его иногда называют Алгоритмическим языком публикаций. Он по праву считается международным языком общения, так как служит своеобразным эсперанто программистов всех стран.

В 1968 году была опубликована новая версия АЛГОЛа - АЛГОЛ-68, который является, пожалуй, даже слишком универсальным. На нем можно описывать любые алгоритмы, даже не связанные с ЭВМ, например, "Алгоритм получения серной кислоты". Но эта универсальность пока не привлекла широкого потребителя.

Наиболее распространенными в области конкретных инженерных расчетов является язык ФОРТАН (это английское сокращение можно расшифровать как ФОРмульный ТРАНслятор). Из известных языков программирования он, пожалуй, первый. Его разработали еще в 1965 году в США сотрудники фирмы IBM. Наглядность, простота изучения, удобство компоновки общей программы, а также близость "словаря" ФОРТАНа к языку формул - традиционному языку инженеров и технических работников - завоевали ему заслуженную популярность. По имеющимся зарубежным данным, более 80 процентов инженерных расчетов ведется сейчас на ФОРТАНе. За двадцать лет применения ФОРТАНа накопилось огромное число разнообразнейших программ. Этот фонд является солидным "капиталом", приобщиться к которому стоит любому программисту.

Среди распространеннейших языков программирования находится и язык КОБОЛ (COBOL - COmputer Bisnes Oriented Linguage) - машинный язык, ориентированный на решение деловых экономических задач. Предназначен он для описания процедур обработки данных, операций над массивами информации и т.п. КОБОЛ является основным языком обработки экономической информации, автоматизации управления в народном хозяйстве и других деловых расчетов.

Наряду с АЛГОЛом, ФОРТАНом и КОБОЛом существуют и другие языки универсального назначения: СИМУЛа, ПЛ-1, а также множество специализированных языков, ориентированных на описание более узких классов задач.

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

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

Транслятор работает так, словно играет в известную игру, в которой требуется превратить слово "муха" в слово "слон", последовательно меняя в слове всего по одной букве. Каждый блок транслятора производит с текстом задачи лишь одну определенную группу преобразований. Следующий блок должен получить в наследство полностью "причесанный" текст. В результате многократной утюжки на месте "мухи" - программы на АЛГОЛе - появляется "слон" - та же задача, но представленная в виде машинных команд.

Трансляторы бывают двух типов: компилирующий и интерпретирующий.

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

Интерпретирующий транслятор осуществляет перевод в процессе решения задачи пооператорно. Такое преобразование носит характер интерпретации, то есть непосредственного "толкования" операторов алгоритмического языка на языке команд ЭВМ! Это можно пояснить на таком примере. Допустим, два человека получили письменные приказы на иностранном языке. Один, более терпеливый (компилятор), перевел весь приказ целиком и только потом начал его выполнять. Другой - нетерпеливый (интерпретатор) - переводил маленькими понятными кусочками и тут же выполнял переведенные инструкции. Конечно, нетерпеливый выполнит некоторые части приказа раньше, зато у терпеливого сам перевод будет лучше, может быть, им смогут воспользоваться и другие.

Так происходит и в машине. Компилирующие трансляторы дают более качественные программы для последующего использования; интерпретирующие системы предназначены в основном для решения одноразовых задач.

Транслятор, как это можно заметить, весьма хитрая программа, - средний транслятор содержит порядка 20-25 тысяч команд. Но это, как говорится, не предел. Ведь он не просто должен уметь переводить с АЛГОЛа, он обязан делать это не хуже, чем средний программист. Первые программы, созданные машинами, были в три-пять раз длиннее программ, составленных человеком. Это значит, что в столько же раз больше времени должно занять их выполнение. Иными словами, вместо одной машины потребовалось бы соответственно три или пять таких машин.

Один из первых в нашей стране трансляторов с АЛГОЛа создан в Вычислительном центре Сибирского отделения АН СССР. Это знаменитая система АЛЬФА. Ее создатели не без гордости показывают посетителям отчет о деятельности Вычислительного центра. В нем есть такие слова: "Применение системы АЛЬФА по сравнению с другими системами автоматического программирования, по крайней мере, вдвое сберегает машинное время на решение того же количества задач". Из пятидесяти тысяч команд, а именно столько их в АЛЬФЕ, сорок тысяч служат улучшению программы, то есть, сокращению числа операций. Опытный программист, соревнуясь с АЛЬФОЙ, может добиться с помощью своего богатого опыта и интуиции такого же результата, лишь потратив на получение программы значительно больше времени.

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

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

Чтобы представить, во что выливается подобная проблема, перечислим только названия наиболее часто встречающихся языков достаточно универсального назначения. Это известные нам АЛГОЛ, ФОРТАН, КОБОЛ, а также АЛГАМС, МАД, ДЖОВИАЛ, СИМСКРИПТ, СИМУЛА, СЛЭНГ, ПЛ, НЭДИС, GPSS, ОМЕГА и т.д. и т.п. Как видно, в области алгоритмических языков, также ощущаются последствия Вавилонского столпотворения. Но, кроме того, каждый тип ЭВМ, имеющий свою систему команд, нуждается еще и в своем трансляторе с одного и того же языка. Более того, даже ЭВМ одного, так сказать, семейства: БЭСМ, БЭСМ-4, БЭСМ-6 или "Минск-1", "Минск-2", "Минск-22", "Минск-32" - нуждаются каждый в своем трансляторе. Вот и получается, что даже для этого неполного перечня (15 языков и 7 машин) понадобится ни много ни мало, а 95 трансляторов. Есть о чем задуматься! Особенно тем, кто должен обеспечивать машины трансляторами, - программистам.

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

Но стоит лишь сделать небольшой подсчет, и все станет ясно. Для приведенного выше примера понадобится 15 трансляторов с 15 алгоритмических языков на промежуточный плюс 7 трансляторов с промежуточного языка на 7 типов ЭВМ, итого лишь 22 транслятора - экономия больше, чем в 4 раза!

[1]  [2]  [3]

Подраздел "Беседы о поколениях ЭВМ"

Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как "Мир ПК" или "Компьютерра". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны. Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный, пусть даже названия фирм здесь и присутствуют (уж без этого никуда). Ежели появятся какие претензии по оному поводу, прошу издания связаться со мной

Райво Штулберг


Rambler's Top100

Сайт мышонка Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое!

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