^"
>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p:1: error: declaration expected
Спробуйте в Інтернеті !: Befunge-93 , C
Завдяки randomdude999 за те, що для роботи імені файлів потрібні відповідні лапки.
Потрібно зберегти під назвою файлу ^"\n>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p, де \nзнаходиться новий рядок. Через це TIO для C не працює точно так, як було призначено. Тестовано для роботи на Lubuntu.
Пояснення (C):
Програма не може компілювати, і tcc радісно виводить ім’я файлу як частину повідомлення про помилку. На основі початку коду можна отримати кілька помилок компіляції. ^на початку дає нам declaration expected, що є коротким і не містить таких проблемних символів ". З іншого боку, розробники gcc і clang дуже песимістичні, і вони вирішили вивести відразу кілька помилок, що не дуже приємно, тому ми не використовуємо їх компілятори.
Пояснення (Befunge-93):
Befunge зручна для quines тим, що його код також може використовуватися як символьні дані, завдяки "команді, яка перемикає рядковий режим. На початку ми виконуємо кілька марних операцій стеку, потім видаємо pкоманду (put), яка розміщує символ NUL у (0, 1). Потім ми відображаємо вказівник інструкцій зліва і починаємо читати все як рядок. Це потрібно зробити ліворуч, через характер LIFO стека. Після обгортання та досягнення "символу знову, рядок закінчується. Зауважте, що символ NUL замінив на$символу, створюючи розмежувач посередині через рядок. Потім натискаємо 3 числа на стек і перестрибуємо через NUL (адже він, на жаль, висить інтерпретатора, коли запускається як інструкція). Тут повинна бути виконана статична частина повідомлення про помилку. Більшість його символів не мають жодного оперу, але pкоманда споживає три аргументи (отже, чому ми натиснули 3 числа, інакше частина рядка буде з'їдена тут), а :& 1символи висувають до стека 4 значення, якими ми протидіємо з інструкцією a pта $(pop та discard). Потім виконується деяка арифметика для натискання кодів ASCII для, ^"\n>#001p#"і, нарешті, цикл виводить усі значення на стеку як символи, поки не знайде символ NUL і не припиниться.