Напишіть програму, яка виводить повідомлення про помилку синтаксису компілятора чи інтерпретатора. Повідомлення про помилку повинно вводити в оману, щоб утримувачі коду потребували днів, щоб з’ясувати, що помилка підроблена, це означає, що вам слід придушити (і приховати свій намір). Також помилка повинна бути якомога точнішою і повинна правильно посилатися на код.
Для мов, що дотримуються, припустімо, що ваш підтримуючий код буде робити compile program.p && ./program
в командному рядку компіляцію І запуск програми, це означає, що він не може розрізнити, чи є вихід від компілятора або самої програми. Крім того, припустімо, що у Вашого коду буде ввімкнено повідомлення про помилки синтаксису.
Для довідки, ось приклад, який я зробив: https://gist.github.com/359604
DATA
Секція кодує рядок повідомлення про помилку, і хеш %abcdef
є таблицею декодування. Помилка, надрукована посиланнями на косої риски, завдяки якій утримувач коду спробує підрахувати зворотні риски.
Записи будуть класифіковані за:
- Кодекс має оманливо очевидний намір
/6
- Код відтворює помилку правильно
/16
(ваш пункт починається з 16 і ділиться на відповідні коефіцієнти для кожної неточності)- Правильна капіталізація: 4
- Правильний номер рядка та номер стовпця: 4
- Правильне формулювання: 2 для кожного неправильного слова
- Посилання на номер рядка вводить в оману підтримку коду
/3
Наприклад,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
отримує 8 (16/2) правильності пропуску "несподіваного" перед "токеном", відображається звичайний інтерпретатор Python
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
Якщо ваш пункт "Код відтворює помилку правильно", пункт під 1, ваш запис дискваліфікується.
У разі нерівності я буду використовувати додаткові коефіцієнти оцінювання.