НОВОСТИ    БИБЛИОТЕКА    КАРТА САЙТА    ССЫЛКИ    О ПРОЕКТЕ  

предыдущая главасодержаниеследующая глава

Язык машин

Язык машин
Язык машин

Специальные приемы записи 
информации с целью передачи 
ее электронно-вычислительной машине. 

Шоколадная помадка и "Алгол"

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

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

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

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

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

Именно эти характеристики "не устраивают" машину. Она требует однозначности, конкретности, точности. Поэтому задачу переводят с "человеческого языка" на машинный: специальным кодом (двоичным кодом - 0 и 1) записывают перечень команд, которые должна проделать машина, чтобы решить задачу. Этот перечень команд, их последовательность называется программой. Она распределяет все действия машины, дает описание всех вычислительных процессов.

Вот как выглядит запись на машинном языке: 0001-0000001010. Для непосвященного ясно одно: это какая-то кодированная запись. Но какая? А вот машина прочитает ее так: "сложить число из ячейки номер десять в оперативной "памяти" с числом, стоящим в сумматоре".

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

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

Но, кроме достоинств, у машинного языка есть и недостатки. И главный, чрезвычайно существенный, заключается в том, "что каждый класс машин "разговаривает" на своем собственном, только ему понятном "диалекте". Оказывается, за годы существования быстродействующих электронных "счетчиков" появилось 4700 искусственных языков! "КОБОЛ", "ФОРТРАН", "ДЖОВИАЛ", "АЛЬФА", "АПЗ", "АЛКОПОЛ", "МАТЕМАТИК" - все не перечислишь.

Сколько такая "разговорная разобщенность" вызывает трудностей! Чтобы задания, сформулированные для одной машины, передать машине другой конструкции, программисты вынуждены его перепрограммировать. Опять затраты труда, времени!

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

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

Эта задача труднее, гораздо сложнее, чем простое перечисление набора команд в программе.

Для чего нужен язык автоматического программирования?

Всегда для одной цели: помочь программисту сообщить машине, что она должна делать.

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

Рецепт приготовления шоколадной помадки
Рецепт приготовления шоколадной помадки

Возьмем рецепт приготовления шоколадной помадки (см. рисунок на стр. 330).

Вы, конечно, обратили внимание, что рецепт делится на две части. В первой - описание того, что требуется для приготовления помадки. Во второй - перечислены процедуры, которые надо последовательно выполнять, чтобы решить задачу: приготовить помадку.

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

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

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

Например, операторы "смешать", "охладить", "взбивать", "разрезать на части", "помешивать" относятся к процессу приготовления пищи. А для вычислительных процессов свойственны другие операторы: "извлечь квадратный корень", "возвести в 24-ю степень", "присвоить значение", "повторять следующие вычисления, пока..."

* * *

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

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

Вторую причину (очень важную) - создание единого машинного языка - вы знаете.

И вот появился единый язык, на котором, как предполагают, будут "говорить" все машины мира. Он возник не сразу. Долго шла подготовительная работа. Наконец в 1958 году в Цюрихе собрали международную конференцию. И лишь к 1960 году международные организации, связанные с вычислительной техникой, создали рабочую группу, которая исправила обнаруженные ошибки, устранила очевидные двусмысленности, внесла большую ясность - короче, усовершенствовала язык, известный теперь под названием "Алгол-60", что означает "алгоритмический язык".

'Вавилонская башня' машинных языков
'Вавилонская башня' машинных языков

Перед описанием этого машинного языка стоит эпиграф: "То, что может быть сказано, должно быть сказано ясно, а то, o о чем невозможно говорить, - о том следует молчать".

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

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

Язык типа "Алгол-60" принято называть универсальным языком, поскольку он предназначен для самых разных машин. Но... Тут на пути ученых опять встают ограничения. Оказывается, даже универсальный язык - не истинно универсален. Его ограничивает ориентация: "поле его деятельности", круг его задач.

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

Но бывают задачи, в которых самое главное как раз форма и характер данных. Это задачи обработки информации. У них свои особенности: как обработать большие массивы данных, как их систематизировать при повторяющихся операциях, и т. п.

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

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

Шоколадная помадка и 'Алгол'
Шоколадная помадка и 'Алгол'

предыдущая главасодержаниеследующая глава

Вам нужна подземная дренажная емкость? Здесь вам помогут.











© ROBOTICSLIB.RU, 2001-2019
При копировании материалов проекта обязательно ставить ссылку на страницу источник:
http://roboticslib.ru/ 'Робототехника'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь