Возможности вычислительных машин и человеческий разум



         

Глава 3. Как работают вычислительные машины - стр. 29


00110101000000000000000001111011.

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

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

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

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


Содержание  Назад  Вперед