K7PL

C. SUSHI - The K7PL's (fake)Shell🔗

sushi ne définit aucune grammaire qui lui soit propre : c'est la syntaxe d'appel universelle du chapitre 5 (§5.1) — (fonction arg₁ arg₂ +flag -flag :clé valeur) — appliquée à l'administration système plutôt qu'au calcul applicatif, et le REPL de l'annexe B comme surface d'interaction. La commande (list :type-fichier mp3) n'est, en ce sens, ni plus ni moins qu'un appel de fonction ordinaire dont le résultat s'affiche tabulairement. Qu'elle coïncide, par ailleurs, avec une commande shell POSIX et une requête relationnelle n'est pas une coïncidence heureuse mais la conséquence directe du principe d'homoiconicité (P1) : une seule syntaxe, trois lectures.

Les utilitaires POSIX usuels — sed, awk, xargs — y sont remplacés par des combinateurs de flux (stream-sed, stream-awk, spawn-fibrilles) opérant directement sur les R-expressions du chapitre 4 (§4.2). Un filtre shell n'est ainsi qu'un motif compilé en automate, avec les mêmes garanties de terminaison et de complexité que n'importe quel usage de match en couche 3.