Muriel - это язык, где единственный способ сделать цикл - создать квин и выполнить его. Ваша задача - создать свой собственный язык с этим свойством и реализовать его на уже существующем языке.
Мы определим Muriel-подобный язык следующим образом:
- Он имеет встроенную команду для выполнения кода на своем собственном языке, аналогичном
@команде Мюриэль или Pythonexec. - Тьюринг завершен.
- Если вы удалите встроенную команду выполнения, она больше не будет завершена по Тьюрингу.
Мюриэль похожа на Мюриэль с @ее встроенной командой выполнения. Smurf также похож на Muriel (встроенная команда выполнения - x). Python не похож на Muriel, поскольку он все еще завершен по Тьюрингу, если вы удалите его exec.
Ваша задача - создать Muriel-подобный язык программирования, а затем обеспечить его реализацию на выбранном вами языке. Ваша оценка - это продолжительность реализации, которую вы пытаетесь минимизировать.
Ноты:
- Ваше встроенное исполнение не должно функционировать точно так же, как Мюриэл. Это зависит от вас, как он обрабатывает завершение дочерней программы, ошибки, определение объема и т. Д ...
- Язык, на котором вы пишете реализацию, сам по себе не может быть похож на Muriel. (Это так, что
@это недействительная запись.) Она также должна существовать до этого поста.
evalкоманд? (Например , в Python execи eval) требовать удаления всех их потерять TCness?