Le défi consiste à trouver une chaîne de caractères qui ne peut apparaître dans aucun programme légal dans le langage de programmation de votre choix. Cela inclut les commentaires, les chaînes ou d’autres parties "non exécutables".
Défi
- Votre programme peut être spécifique à une version ou à une implémentation particulière de l'environnement de compilation / interpréteur / exécution de votre langage. Si oui, veuillez préciser les détails.
- Seules les options standard du compilateur / interprète / runtime sont autorisées. Vous ne pouvez pas transmettre un indicateur étrange à votre compilateur pour obtenir un résultat spécifique (par exemple, passer un indicateur pour convertir les avertissements en erreurs).
- Si votre langage de programmation nécessite un codage spécifique (par exemple, UTF-8), votre chaîne doit également être correctement codée (c.-à-d. Que les chaînes qui échouent uniquement en raison d'erreurs de décodage de caractères ne sont pas autorisées).
- Chaque caractère individuel dans votre soumission doit être admissible dans un programme juridique; c'est-à-dire que vous ne pouvez pas simplement utiliser un personnage qui est toujours rejeté.
- Le compilateur / interprète / runtime doit donner une erreur à tout code source contenant votre chaîne en tant que sous-chaîne. L'erreur ne doit pas nécessairement être la même pour tous les programmes - une incorporation de votre chaîne peut provoquer une erreur de syntaxe, tandis qu'une autre peut provoquer une erreur d'exécution.
Notation
- La chaîne illégale la plus courte pour chaque langue gagne.
- Vous devez expliquer pourquoi votre chaîne est illégale (pourquoi elle ne peut apparaître nulle part dans un programme légal).
- Contester les solutions incorrectes dans les commentaires. Plus spécifiquement, vous devez fournir un lien vers TIO ou équivalent, démontrant un programme juridique (c'est-à-dire ne générant aucune erreur) contenant la sous-chaîne proposée.
- Certaines langues (par exemple, Bash, Batch, Perl) permettent d’ajouter des données binaires arbitraires à un programme sans affecter la validité (par exemple, l’utilisation
__DATA__
de Perl). Pour ces langues, vous pouvez soumettre une solution qui ne peut apparaître que dans une telle section de fin. Assurez-vous de noter cela dans votre réponse. (La définition de cette "section finale" dépend de la langue, mais signifie généralement tout texte après que l'analyseur ait complètement arrêté de lire le script).
Exemple
En Python, je pourrais soumettre
x
"""
'''
mais cela peut être intégré dans le programme plus large
"""
x
"""
'''
y
'''
donc ce n'est pas admissible.