Python utilise assez bien l'indentation pour définir syntaxiquement des blocs de code. (Voir les instructions composées dans la référence du langage Python). Après des années d'utilisation de Python, je suis toujours intrigué et très friand de cette fonctionnalité de syntaxe.
Mais je me demande: à part Python et son langage "prédécesseur" (*) ABC, quels autres langages de programmation utilisent-ils l'indentation pour la définition des blocs de code ? Les blocs de code signifient ici «plusieurs instructions qui d'une certaine manière sont traitées comme un seul composant».
Je suis particulièrement intéressé par les langages de programmation pratiques , mais les langages ésotériques méritent également d'être mentionnés.
(*): " Prédécesseur " est mon choix de mot à défaut d'en connaître ici un meilleur. Guido van Rossum, le créateur de Python, a décrit la relation entre Python et ABC concernant l'indentation dans une interview comme celle-ci: " Le choix de l'indentation pour le regroupement n'était pas un concept nouveau en Python; j'ai hérité de ABC. "
la source
Réponses:
Wikipedia a une longue liste de langues qui utilisent la règle du hors-jeu 1 :
1: Je n'ai jamais entendu ce terme avant moi.
la source
Il y a: Elm , Haskell , son prédécesseur Miranda et son prédécesseur ISWIM , YAML où les espaces sont cruciaux pour la syntaxe et les onglets sont interdits, OCCAM , scénario café et Cokescript les deux sont à la langue compilateurs de langage avec JavaScript comme cible et ésotériques espaces blancs .
Il y a aussi Agda - prouveur de théorème interactif, ce qui n'est probablement pas ce que vous aviez en tête, mais son lexer est très sensible aux espaces blancs.
Makefile , qui rassemble des cibles avec des intentions basées sur des onglets.
la source
(x-y)
ne l'est pas(x - y)
) même si elle n'est pas suffisamment "pratique" pour l'OP.Faites correspondre votre description, même si ce n'est probablement pas tout à fait ce que vous avez en tête, avec sa syntaxe et sa puissance limitées.
Il indique tristement ses blocs de code ( recettes ) avec une forme particulière d'espace: un caractère de tabulation. D'autres moyens sont disponibles (par exemple, GNU Make prend en charge l'utilisation d'un autre caractère ), mais rarement utilisés dans la pratique.
Un autre exemple planant au bord est les playbooks Ansible . Ils sont spécifiés dans YAML , qui dépend fortement de l'indentation. YAML n'est pas un langage de programmation, mais les playbooks Ansible peuvent être considérés comme des programmes spécifiques au domaine.
la source