Изменения

Перейти к: навигация, поиск

Тьюринг-полнота

1230 байт добавлено, 16:43, 8 января 2017
Assembly language
===Assembly language===
 
Язык Ассемблера сильно ограничен: он рассчитан на архитектуру с конечной памятью и работает с конечным набором регистров. Однако, не был бы он полным по Тьюрингу, не были бы Тьюринг-полны и другие языки программирования.
 
Всё необходимое для машины Тьюринга на asm можно сделать примерно так:
 
ADDS r0, r0, #1 ;сдвиг ленты вправо
ADDS r0, r0, #-1 ;сдвиг ленты влево
ADDS [r0], [r0], #1 ;инкремент значения, на которое "указывает" головка ленты
ADDS [r0], [r0], #-1 ;декремент значения, на которое "указывает" головка ленты
 
И далее использовать инструкцию ''BEQ'' или ей подобную, чтобы выполнять определённую последовательность команд при определённом текущем значении, таким образом обеспечив ветвление.
===Pascal===
192
правки

Навигация