Napisz program, który wypisze komunikat o błędzie składni kompilatora lub interpretera. Komunikat o błędzie powinien wprowadzać w błąd, aby opiekunowie kodu mieli dni, by dowiedzieć się, że błąd został sfałszowany, co oznacza, że powinieneś zaciemnić (i ukryć swój zamiar). Ponadto błąd musi być możliwie jak najdokładniejszy i powinien poprawnie odnosić się do kodu.
W przypadku zgodnych języków załóż, że opiekun kodu zrobi to compile program.p && ./program
w wierszu poleceń, aby skompilować ORAZ uruchomić program, co oznacza, że nie może odróżnić, czy dane wyjściowe pochodzą z kompilatora czy z samego programu. Załóżmy również, że Twój opiekun kodu włączy komunikaty o błędach składni.
Dla odniesienia, oto przykład, który zrobiłem: https://gist.github.com/359604
DATA
Sekcja koduje ciąg komunikatu o błędzie, a hash %abcdef
jest tabela dekodowania. Błąd wydrukował odwołania do ukośników odwrotnych, co powoduje, że opiekun kodu spróbuje policzyć ukośniki odwrotne.
Zgłoszenia będą oceniane według:
- Kod ma zwodniczo oczywistą intencję
/6
- Kod poprawnie odtwarza błąd
/16
(punkt zaczyna się od 16 i dzieli przez odpowiednie współczynniki dla każdej niedokładności)- Prawidłowa wielkość liter: 4
- Prawidłowy numer wiersza i numer kolumny: 4
- Prawidłowe sformułowanie: 2 dla każdego niepoprawnego słowa
- Podany numer linii wprowadza w błąd opiekuna kodu
/3
Na przykład,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
otrzymuje 8 (16/2) poprawności za brakujące „nieoczekiwane” przed „tokenem”, normalny interpreter Pythona wyświetla
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
Jeśli punkt „kod poprawnie odtwarza błąd” jest poniżej 1, Twój wpis jest dyskwalifikowany.
W przypadku remisu przedstawię dodatkowe czynniki oceny.