Книга: Программируя Вселенную. Квантовый компьютер и будущее науки

Универсальный компьютер

Универсальный компьютер

Мы уже знаем, что Вселенная вычисляет, записывая и трансформируя информацию. Поэтому все то, что мы видим вокруг, можно назвать вселенским, или универсальным компьютером. Однако у этого названия есть другое, более техническое значение. В информатике тоже есть понятие «универсальный компьютер» – это устройство, которое можно запрограммировать так, что оно будет обрабатывать биты информации любым желаемым способом. Обычные цифровые компьютеры, такие, на каком я пишу эту книгу, – это универсальные компьютеры, а их языки – универсальные языки. Люди способны производить универсальные вычисления, и человеческие языки универсальны. Почти все системы, которые можно запрограммировать на выполнение произвольно длинных последовательностей простых преобразований информации, являются универсальными.

Универсальный компьютер может сделать с информацией почти все что угодно. Изобретатели универсальных компьютеров и универсальных языков, Алонзо Черч и Алан Тьюринг, выдвинули гипотезу, что на универсальном компьютере может быть выполнена любая возможная математическая манипуляция, то есть что универсальный компьютер может создавать математические построения любого уровня сложности. Но сам он не должен быть сложной машиной; все, что он должен уметь, – это брать биты, по одному или по два за раз, и выполнять с ними простые операции. Чтобы совершить любое желаемое преобразование над сколь угодно большим набором битов, достаточно многократно выполнять операции всего с одним или двумя битами за раз. Любая машина, которая может выполнить такую последовательность простых логических операций, является универсальным компьютером.

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

Конечно, на Mac программа может работать медленнее, чем на PC, и наоборот. Программа, написанная для универсального компьютера определенного типа, на нем обычно работает быстрее, чем ее «переводная» версия на другом компьютере. Но эта переведенная программа все равно будет работать. Можно показать, что любой универсальный компьютер может не только имитировать любой другой универсальный компьютер, но и делать это эффективно. При переводе программы с одного компьютера на другой она будет работать медленнее, но ненамного.

Оглавление книги


Генерация: 0.058. Запросов К БД/Cache: 0 / 3
поделиться
Вверх Вниз