7 , 10 байт, 27 символів
115160723426754314105574033
Спробуйте в Інтернеті!
Упаковане представлення цієї програми на диску є ( xxd
формат):
00000000: 269c 3a71 6f63 308b 7c0d &.:qoc0.|.
Пояснення
Ми спостерігали цю послідовність чисел раніше, в Automate Saving the World , яка стосувалася друку цифр через регулярні проміжки часу, що робило її цікавою через необхідність використання дуже старої мови. Набагато новіші мови можуть мати свої повороти, що робить цей виклик цікавим. (Так, цей абзац, і насправді причина, чому я почав писати цю відповідь, - це фактично лише спосіб зв'язати всі пов'язані з цим проблеми на бічній панелі; зазвичай це роблять люди, використовуючи коментарі, але мені не вистачає реп. .)
Перше, що слід зауважити, це те, що 7 складається повністю з цифр, тому надходження бонусів тут навряд чи спрацює (хоча якщо ви розглядаєте програму як послідовність октетів, жоден з них не відповідає представленням ASCII будь-якого з початкових чисел , тож ви можете вимагати преміювання в цьому сенсі). Наступне, що слід зазначити, - це 7 команд для відтворення послідовності команд, яка, ймовірно, створила певний фрагмент даних; тож ми могли б інтерпретувати втрачені номери 4815162342
як розділ самої програми 7?
Відповідь "не зовсім". Найпроблемніша частина - це друге число 8
,. 7 програм написано в восьмериці; немає такої кількості, як 8. Отже, для початку запуску рядка доведеться друкувати інакше.
Таким чином, база програми базується на 7 програмі "Привіт, світ":
5431410557403
543141055 string literal
7 separate data from code
4 rearrange stack: {program's source}, empty element, {literal}
0 escape {the literal}, appending it to {the empty element}
3 output {the escaped literal}, pop {the program's source}
з уникнутим буквальним буквою на мові, що залежить від домену, інтерпретується так:
5 output format: US-TTY using pairs of digits in the string
43 select character set: digits and common symbols
14 "4"
10 "8"
55 forget the set output format
Після цього надходить додатковий 3
, який виводить залишився елемент стека (і виходить через недостатній стек). Цей елемент задається на початку програми, і щоб уникнути неперевершеного 6
(який трохи схожий на дужку закриття), ми створюємо його за допомогою коду, а не записуємо його безпосередньо як дані. (Зверніть увагу, що 7
на початку програми є два маються на увазі символи, що тут актуально):
{77}115160723426
7 empty stack element
7 11516 append "1151"
0 append "6"
723246 append "2324"
Це створює наступне буквальне:
115162324
1 set output format: literally as octal
15162324 "15162324"
який виходить друкованим.