logo
АСУ ТП / ИДЗ №1 / Анализ сложных систем

14.5. Несогласованность языков программирования

Почему процесс программирования является таким длительным и есть ли какая-либо надежда ускорить его? По-видимому, основная причина состоит в различии между языком вычислительной машины и естественным языком. Как мы видели, для вычислительной машины нужно составить подробную программу ее действий. Очевидно различие между указаниями, которые вы должны дать машине, и указаниями, которые даются человеку, например: «Проинтегрируйте, пожалуйста, эту функцию от нуля до единицы». Кроме того, человек обладает большим запасом информации и здравым смыслом, которые он использует при своей работе. Он знает, например, что тяга ракеты не должна быть отрицательной.

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

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

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

Из этих языков-посредников в настоящее время лучше всего известен ФОРТРАН (FORTRAN от слов FORMULA TRANSLATOR - переводчик формул); существуют транслирующие программы, совершающие перевод с этого языка на язык многих вычислительных машин. Другими хорошо известными языками этого типа являются КОБОЛ и АЛГОЛ. На рис. 14.3 приведен пример программы, написанной на языке ФОРТРАН. В данном конкретном случае транслирующая программа преобразовала 14 фраз, написанных на этом языке, в 113 команд для вычислительной машины.

ФОРТРАН хорошо выполняет свое назначение, состоящее в сокращении труда при программировании, в тех случаях, когда соответствующие проблемы могут быть математизированы. Излишне говорить, что для многих проблем он совершенно непригоден. Существуют, конечно, определенные виды на будущее, но для осуществления новых систем требуется длительный подготовительный период, так же как и при программировании в настоящее время. Все эти системы являются также дорогостоящими; стоимость транслирующей программы с языка ФОРТРАН приблизительно равна 500 000 долл.