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