Існує багато проблем, які кажуть "інтерпретувати X", де X - проста мова. На мою думку, це занадто нудно. Щоб дати людям, що зволікають в Інтернеті, щось цікаве зробити, ви можете спробувати зробити це завдання:
Виклик
Виберіть мову $LANG
. $LANG
може бути будь-якою повною мовою програмування або повним підмножиною мови програмування. Пам’ятайте, що якщо ви пропустите функцію своєї мови $LANG
для інтерпретації, ви також не повинні використовувати її для власної програми, оскільки ваша публікація також повинна бути написана $LANG
.
Напишіть компілятор / перекладач для $LANG
написаного в $LANG
. Ви можете використовувати всі засоби (включаючи eval
та друзів) своєї мови, які доступні для написання цього компілятора. Щоб зробити завдання більш складним, існує одне обмеження: Ви маєте змогу інтерпретувати / компілювати всі дійсні програми, $LANG
крім самого вашого перекладача / компілятора. Якщо трапляється, що програма, яку слід інтерпретувати / компілювати, - це ваш інтерпретатор чи компілятор (незалежно від імені файлу), ваша програма повинна зробити щось зовсім не пов'язане з функціональністю інтерпретатора чи компілятора (наприклад, переробки або друку Hello, world!
).
Щоб зробити це завдання ще складнішим, ваша програма не повинна читати власне джерело при складанні чи інтерпретації.
Технічні умови
- Це завдання - код гольфу. Виграє подання з найменшими значеннями, що є правильним. У випадку зрівноваження рішення, яке було подано першим, виграє.
- Ваша програма / сценарій має читати програму, яку слід інтерпретувати з файлу. Ви можете жорстко кодувати його шлях та ім'я. Коли файл читається, ви можете або компілювати його в інший файл (Це повинен бути виконаний у вашій системі), або запустити його безпосередньо. Якщо
$LANG
не вистачає можливостей читання файлів, ви можете вибрати інший спосіб читання у відповідному коді$LANG
. Ви не можете вибрати$LANG
як підмножину іншої мови, але з вилученими можливостями читання файлів. - Діють звичайні правила гольф-коду. Тобто: ваша особиста мова для домашніх тварин, яку ви створили тільки для вирішення цього завдання, заборонена, якщо рішення стає тривіальним за її допомогою (наприклад, визначення одночасної програми, яка точно реалізує рішення). Зловживання правилами заохочується.