Il y a une plage Unicode bien définie, donc on ne devrait pas se retrouver à aller chercher tout et n'importe quoi…
Sinon, il y a eu depuis un bon bout de temps déjà, le langage J ;-)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Je me suis posé la question aussi, mais d'après l'exemple, même si le souci est multiple, il vient surtout le problème des commentaires.
La plupart des langages de programmation utilise l'ASCII (globalement hein), ou en tout cas, l'alphabet latin, donc de gauche à droite.
Mais les gens, en commentaire, mettent ce qu'ils veulent : arabe, japonais, et j'en oublie, de droite à gauche. Donc, quelque part, il faut bien inverser le sens…
Language specifications should formally disallow unterminated bidirectional control characters in comments and string literals.
Code editors and repository frontends should make bidirectional control characters and mixed-script confusable characters perceptible with visual symbols or warnings.
Ce qui me surprend, c'est que le compilateur puissse se faire avoir ; je suis resté à la bonne vieille époque où on scanne octet par octet pour virer tout ce qui suit du marqueur de début de commentaire au marqueur de fin de commentaire (enfin, c'est un peu l'idée globale mais l'implémentation ne peut pas être aussi naïve sans se faire troller par genre printf("this /* isn't a comment */ either"); et similaire.)
En tout cas sur le second point (éditeurs et autres outils de forges) je ne peux qu'adhérer.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Posté par Thomas Douillard .
Évalué à 2.
Dernière modification le 03 novembre 2021 à 09:26.
C'est pas le compilateur qui est trompé c'est l'humain qui regarde le code. Qui ne sait pas que ce qui lui apparaît hors d'un commentaire est en fait commenté. Une solution serait d'utiliser un éditeur de code qui utilise une couleur différente ou autre style pour les commentaires. Ou l'inverse.
C'est pas le compilateur qui est trompé c'est l'humain qui regarde le code. […]
Ah OK, j'avais cru les compilos en cause aussi (en plus des soucis d'affichage des éditeurs et autres outils)
Une solution serait d'utiliser un éditeur de code qui utilise une couleur différente ou autre style pour les commentaires.
Il me semble que c'est déjà le cas quand il y a la coloration syntaxique : distinguer à minima le commentaire du code, et dans le code distinguer les mots clefs du reste (et le top est de pouvoir reconnaitre les types de variables et de constantes : chaîne de caractères, entier, flottant, etc.) Par contre les algorithmes sont visiblement légers et ne gèrent pas (ou pas très bien) les mélanges de sens d'écriture par exemple.
Sans compter les autres pièges comme les homoglyphes visuels (je pense que là, les polices utilisées jouent un rôle important aussi) qui n'est pas si nouveau (cf. ø vs o vs Ø vs O vs 0 …)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Facile !
Posté par _kaos_ . Évalué à 3. Dernière modification le 01 novembre 2021 à 20:34.
Qui a besoin de l'UTF8 pour coder ?
Il suffit de l'interdire !
Sauf en APL.
/me -> []
Matricule 23415
[^] # Re: Facile !
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Il y a une plage Unicode bien définie, donc on ne devrait pas se retrouver à aller chercher tout et n'importe quoi…
Sinon, il y a eu depuis un bon bout de temps déjà, le langage J ;-)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Facile !
Posté par _kaos_ . Évalué à 2. Dernière modification le 02 novembre 2021 à 06:54.
Oui, je connais de loin. Il est d'ailleurs discuté ici dans le contexte de code golfing. :)
Matricule 23415
[^] # Re: Facile !
Posté par Glandos . Évalué à 4.
Je me suis posé la question aussi, mais d'après l'exemple, même si le souci est multiple, il vient surtout le problème des commentaires.
La plupart des langages de programmation utilise l'ASCII (globalement hein), ou en tout cas, l'alphabet latin, donc de gauche à droite.
Mais les gens, en commentaire, mettent ce qu'ils veulent : arabe, japonais, et j'en oublie, de droite à gauche. Donc, quelque part, il faut bien inverser le sens…
[^] # Re: Facile !
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4.
Oui, et leur proposition dans ce sens
Ce qui me surprend, c'est que le compilateur puissse se faire avoir ; je suis resté à la bonne vieille époque où on scanne octet par octet pour virer tout ce qui suit du marqueur de début de commentaire au marqueur de fin de commentaire (enfin, c'est un peu l'idée globale mais l'implémentation ne peut pas être aussi naïve sans se faire troller par genre
printf("this /* isn't a comment */ either");
et similaire.)En tout cas sur le second point (éditeurs et autres outils de forges) je ne peux qu'adhérer.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Facile !
Posté par Thomas Douillard . Évalué à 2. Dernière modification le 03 novembre 2021 à 09:26.
C'est pas le compilateur qui est trompé c'est l'humain qui regarde le code. Qui ne sait pas que ce qui lui apparaît hors d'un commentaire est en fait commenté. Une solution serait d'utiliser un éditeur de code qui utilise une couleur différente ou autre style pour les commentaires. Ou l'inverse.
[^] # Re: Facile !
Posté par Glandos . Évalué à 3.
Encore faudrait-il que l'éditeur ait la même interprétation que le compilateur… C'est pas gagné :)
[^] # Re: Facile !
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Ah OK, j'avais cru les compilos en cause aussi (en plus des soucis d'affichage des éditeurs et autres outils)
Il me semble que c'est déjà le cas quand il y a la coloration syntaxique : distinguer à minima le commentaire du code, et dans le code distinguer les mots clefs du reste (et le top est de pouvoir reconnaitre les types de variables et de constantes : chaîne de caractères, entier, flottant, etc.) Par contre les algorithmes sont visiblement légers et ne gèrent pas (ou pas très bien) les mélanges de sens d'écriture par exemple.
Sans compter les autres pièges comme les homoglyphes visuels (je pense que là, les polices utilisées jouent un rôle important aussi) qui n'est pas si nouveau (cf.
ø
vso
vsØ
vsO
vs0
…)“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# …et des interpréteurs
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Exemple pratique avec ES https://linuxfr.org/users/noumir-poutipou/liens/backdoor-invisible-a-la-revue-de-code-avec-les-caracteres-speciaux-d-unicode
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.