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.