Muriel - это язык, где единственный способ сделать цикл - создать квин и выполнить его. Ваша задача - создать свой собственный язык с этим свойством и реализовать его на уже существующем языке.
Мы определим Muriel-подобный язык следующим образом:
- Он имеет встроенную команду для выполнения кода на своем собственном языке, аналогичном
@
команде Мюриэль или Pythonexec
. - Тьюринг завершен.
- Если вы удалите встроенную команду выполнения, она больше не будет завершена по Тьюрингу.
Мюриэль похожа на Мюриэль с @
ее встроенной командой выполнения. Smurf также похож на Muriel (встроенная команда выполнения - x
). Python не похож на Muriel, поскольку он все еще завершен по Тьюрингу, если вы удалите его exec
.
Ваша задача - создать Muriel-подобный язык программирования, а затем обеспечить его реализацию на выбранном вами языке. Ваша оценка - это продолжительность реализации, которую вы пытаетесь минимизировать.
Ноты:
- Ваше встроенное исполнение не должно функционировать точно так же, как Мюриэл. Это зависит от вас, как он обрабатывает завершение дочерней программы, ошибки, определение объема и т. Д ...
- Язык, на котором вы пишете реализацию, сам по себе не может быть похож на Muriel. (Это так, что
@
это недействительная запись.) Она также должна существовать до этого поста.
code-golf
quine
language-design
PyRulez
источник
источник
eval
команд? (Например , в Pythonexec
иeval
) требовать удаления всех их потерять TCness?Ответы:
Python 3 и «Минимальное подмножество TC недогрузки, но с символами, которые были изменены
2019
, обращены и с0
верхом», 156 байтПопробуйте онлайн!
Пояснения в шапке, прокомментированный код в нижнем колонтитуле.
источник