Простой против вложенных - PullRequest
       15

Простой против вложенных

1 голос
/ 16 января 2011

Являются ли простые циклы такими же мощными, как вложенные циклы, с точки зрения полноты по Тьюрингу?

Ответы [ 2 ]

1 голос
/ 16 января 2011

С точки зрения полноты по Тьюрингу, да, они есть.

Доказательство: можно написать интерпретатор Brainf ***, используя простой цикл, например здесь:

http://www.hevanet.com/cristofd/brainfuck/sbi.c

0 голосов
/ 16 января 2011

Для циклов с фиксированным числом шагов (LOOP, FOR и аналогичных): представьте себе, что вся цель цикла - считать до n.Зачем делать разницу, если я повторяю i раза во внешнем цикле и j раза во внутреннем цикле, в отличие от n = i * j только в одном цикле?

Предположим, что нет WHILE, GOTO илианалогичные конструкции разрешены в программе (только присваивание, IF и фиксированные циклы).Затем все эти программы завершаются после конечного числа шагов.

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

Этим двум формам программ соответствуют два вида функций, которые исторически сложились в одно и то же время и которые примитивные рекурсивные функции и μ-рекурсивные функции .

Количество вложений в этом не играет роли.

...