Escreva um programa que imprima a mensagem de erro de sintaxe do compilador ou intérprete. A mensagem de erro deve ser enganosa, para que os mantenedores de código levem dias para descobrir que o erro foi falsificado, ou seja, você deve ofuscar (e ocultar sua intenção). Além disso, o erro deve ser o mais exato possível e deve fazer referência ao código corretamente.
Para idiomas cumpridos, suponha que seu mantenedor de código faça compile program.p && ./program
na linha de comando para compilar E executar o programa, ou seja, ele não pode distinguir se a saída vem do compilador ou do próprio programa. Além disso, suponha que seu mantenedor de código ative as mensagens de erro de sintaxe.
Para referência, aqui está um exemplo que eu fiz: https://gist.github.com/359604
A DATA
seção codifica a sequência de mensagens de erro e o hash %abcdef
é a tabela de decodificação. O erro imprimiu referências às barras invertidas, o que faz com que um mantenedor de código tente contar as barras invertidas.
As inscrições serão classificadas por:
- O código tem uma intenção enganosamente óbvia
/6
- O código reproduz o erro corretamente
/16
(seu ponto começa com 16 e divide pelos fatores correspondentes para cada imprecisão)- Capitalização correta: 4
- Número correto da linha e número da coluna: 4
- Redação correta: 2 para cada palavra incorreta
- O número da linha referenciado engana o mantenedor do código
/3
Por exemplo,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
obtém 8 (16/2) de correção por falta "inesperada" antes de "token", um interpretador Python normal exibe
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
Se o seu ponto "código reproduz erro corretamente" estiver abaixo de 1, sua entrada será desqualificada.
Em caso de empate, colocarei fatores adicionais de classificação.