4.6. Calcul de processus sous-jacent
Les trois échelles qui précèdent ont été décrites l'une après l'autre, chacune avec sa structure
propre. Reste à dire ce qu'elles sont ensemble, et le chapitre 1
(§1.4) l'a annoncé sous la forme d'une équation : la couche 2
relève d'un \pi-calcul enrichi de motifs de jonction. Cette section fait de cette équation une
construction. Ce qu'elle apporte est une lecture, dans laquelle acteurs, sessions, jonctions et
effets cessent d'être quatre mécanismes voisins pour devenir les constructeurs d'un même calcul — et
le §3.6.4.5 en écrit depuis peu les règles, de sorte que cette lecture a
désormais un appareil sous elle plutôt qu'au-dessus d'elle. RMQ 53. La lecture précédait les règles,
ce qui est l'ordre de la découverte et non celui de la justification. Les règles étant écrites, les
deux coïncident.
Ce métalangage n'est pas une invention de ce document, et le dire évite un malentendu que l'équation
du chapitre 1 pourrait entretenir. Écrire « \pi-calcul augmenté de motifs de jonction » suggère
une extension, dont il faudrait justifier ce qu'elle ajoute ; il s'agit en réalité d'une
présentation alternative du même pouvoir expressif. Le calcul obtenu en ajoutant la réflexion à la
machine chimique abstraite [60] est prouvé équivalent au
\pi-calcul, à congruence barbelée faible près, et sa métathéorie est établie [61].
Ce document emprunte donc un calcul, il n'en propose pas un.
Une seconde parenté rend vérifiable ce qui serait resté une ressemblance. Il existe une extension des psi-calculi par motifs abstraits et filtrage, munie de sortes sur le langage des termes de données, qui représente directement plusieurs calculs de processus existants [62]. Le métalangage de ce document en est plausiblement une instance, et les conditions qui le décideraient sont énumérables plutôt qu'appréciables : une fonction de sorte équivariante sur les noms, les termes et les motifs~; quatre prédicats de compatibilité, un par rôle — émettre, recevoir, être substitué par, être lié par restriction de nom~; et un préordre de sous-sorte. La question de savoir si les sortes de ce document satisfont ces conditions n'est donc pas ouverte au sens où l'on ne saurait par où commencer : elle est ouverte au sens où le calcul reste à faire.
Ce qu'il en emprunte comprend la théorie équationnelle dont il a besoin. Raisonner sur une traduction suppose de savoir quand deux processus sont le même, et cette relation est disponible. Une équivalence observationnelle y est définie puis établie pleinement abstraite vis-à-vis de la congruence barbelée faible, les techniques employées étant celles de la bisimulation faible [61]. C'est elle qui donnera son sens à l'énoncé de fidélité du chapitre 6.
Le métalangage a pour types les propositions de la logique linéaire intuitionniste — celles-là mêmes que le chapitre 3 emploie comme types de session — et pour termes les processus suivants :
\begin{equation*}\tag{15}
\begin{aligned}
P, Q \;::=\;& \overline{x}\langle v\rangle.P \;\mid\; x(y).P \;\mid\; x \triangleleft \ell.P \;\mid\; x \triangleright \{\ell_i : P_i\} \\
\mid\;& (\nu x{:}S)(P \mid Q) \;\mid\; J \triangleright P \;\mid\; !x(y).P \;\mid\; \mathbf{fix}\,X\langle v\rangle.P \;\mid\; \mathbf{0}
\end{aligned}
\end{equation*}
où J ::= x_1(y_1) \,\&\, \cdots \,\&\, x_n(y_n) est un motif de jonction, consommant n
messages d'un seul tenant. Les quatre premières formes sont l'émission et la réception, la sélection
et l'offre de branchement ; la cinquième est la coupure, seule forme de composition, qui lie deux
processus sur un canal privé de type S ; la septième est le service répliqué ; la huitième le
point fixe introduit au §2.4.
Chacune traduit un mécanisme déjà construit, et l'intérêt de la lecture est que cette correspondance est exhaustive : il n'y a rien dans la couche 2 qui n'y figure, et rien qui y figure sans emploi.
Deux réglages restent à fixer sur cette grammaire, et tous deux retirent du non-déterminisme plutôt qu'ils n'en ajoutent. Le premier porte sur les motifs de jonction. Les règles de réaction d'une définition de jonction décrivent des comportements en concurrence, et leur déclenchement admet en général un choix non déterministe — source que le chapitre 1 ne compte pas parmi les siennes. Deux politiques existent : celle du premier motif rendrait l'ordre d'écriture des clauses sémantiquement significatif, de sorte que la mise en page déciderait quel couple de messages est consommé. La partition en ensembles disjoints rend le choix forcé, et donc inexistant [63]. K7PL retient la seconde, et le coût en est nul : le compilateur vérifie déjà statiquement l'exhaustivité des motifs, de sorte que la disjonction est une vérification du même ordre, faite au même endroit.
Le second porte sur le point fixe. La grammaire ci-dessus en donne un opérateur arbitraire, et c'est la seule exception à la règle que ce document applique partout ailleurs — la couche 3 interdit la récursion générale et exprime toute itération comme un pli sur le plus petit point fixe. Aucune raison n'est donnée à cette exception, et il n'y en a pas de bonne : ajouter à un lambda-calcul linéaire concurrent les types récursifs et les catamorphismes, en suivant la sémantique des algèbres initiales, y fait naître les types de session récursifs au lieu de les postuler [64]. Le point fixe du métalangage devrait donc être un catamorphisme, comme celui de la couche 3, et l'exception disparaître.
-
Un acteur est un point fixe gardé par une réception. La coalgèbre terminale du §2.3 — un état
S, une transitionS \to (\text{Msg} \Rightarrow S \times \text{Out})— s'écrit\mathbf{fix}\,X\langle s\rangle.\, a(m).\, \llbracket H \rrbracket(s,m), où le gestionnaire produit l'état suivant qu'il repasse àX. Le point fixe est la finalité de la coalgèbre, lue sur les termes plutôt que sur les objets. -
Un canal de session est un canal du calcul, et son type est le protocole. La dualité, dérivée au chapitre 3 du retournement des arguments de
\multimap, est ici celle des deux extrémités d'une coupure : le processus qui offreSet celui qui l'emploie sont les deux prémisses d'une même règle. -
Un motif de jonction est la construction
J \triangleright P, et son atomicité est celle de la règle. Lesnmessages sont consommés en une seule transition, ce que le théorème 42 énonce et ce que le §4.2 rapproche d'une transition de réseau de Petri. -
Le séquencement des effets est le préfixage :
\overline{x}\langle v\rangle.Pordonne l'émission avantP, et cet ordre ne commute pas. C'est ce que la quantale d'effets du chapitre 3 dénote par son produit non commutatif ; le préfixe du calcul en est la forme syntaxique. -
Une capacité de couche 1 est un canal linéaire, et une capacité de lecture un service répliqué — la distinction entre l'usage unique et l'usage libre y devient celle entre
x(y).Pet!x(y).P, c'est-à-dire le grade. Le service répliqué se déplie toutefois à sens unique, et ce n'est pas un arrangement de présentation. La loi de réplication — l'équivalence entre l'exponentielle et sa décomposition en une copie et l'exponentielle — n'est pas dérivable en logique linéaire, seul un sens l'est [65]. La conséquence relevée par cette littérature est qu'un encodage qui supposerait l'équivalence ne capture pas fidèlement l'exécution du calcul de processus telle qu'elle est traditionnellement définie. La correction ne coûte rien ici : on garde la moitié qui se dérive, sous forme d'un dépliage à sens unique, et l'énoncé de fidélité du chapitre 6 s'énonce sur cette moitié. -
La composition d'un système est un emboîtement de coupures. C'est ce qui explique l'acyclicité du §4.5 sans qu'elle ait à être postulée : un terme est un arbre de coupures, et un arbre n'a pas de cycle.
Un second principe d'architecture y trouve son fondement, et ce document le posait jusqu'ici sans appui. La localité — un acteur n'accède qu'à son propre état, aucune mémoire n'est partagée entre machines, et le modèle mémoire du §4.5 a pour portée une machine — n'est pas une discipline que K7PL s'imposerait par prudence. C'est l'une des deux modifications qui définissent le calcul dans lequel il se traduit : on l'obtient de la machine chimique générique en imposant la localité et en ajoutant la réflexion, et c'est cela qui rend le modèle consistant avec la distribution [61]. Ce que le chapitre 4 décrit comme un choix d'architecture est donc une propriété du calcul sous-jacent, et l'ordre des raisons s'en trouve inversé. La localité n'est pas imposée à un modèle qui pourrait s'en passer, elle est ce qui rend ce modèle distribuable.
Cette dernière remarque suggère l'énoncé que cette section doit à la lecture qu'elle propose.
Il existe une traduction \llbracket \cdot \rrbracket des dérivations de K7PL vers les termes du
métalangage, telle que pour tout jugement \Delta \vdash_{\mathcal{G}} t : A \mid \mathcal{E} et
tout canal frais z,
\llbracket t \rrbracket_z \;\vdash\; \llbracket \Delta \rrbracket_{\mathcal{G}},\; z : \llbracket A \rrbracket
soit un séquent dérivable du métalangage, où \llbracket \Delta \rrbracket_{\mathcal{G}} envoie
chaque liaison de grade \omega sur un service répliqué, chaque liaison de grade n fini sur un
canal linéaire ré-invoqué n fois en séquence, et toute autre sur un canal linéaire simple.
Par induction sur la dérivation. Les cas de la couche 3 sont ceux de la traduction usuelle des
propositions comme sessions : une abstraction devient une réception, une application une coupure sur
un canal frais, un couple une émission suivie du reste. Les cas de la couche 2 suivent les six
correspondances ci-dessus, chacune envoyant une règle de K7PL sur une règle du calcul — l'acteur sur
le point fixe gardé, la jonction sur J \triangleright P, le séquencement sur le préfixage. La
composante \mathcal{G} dirige le choix entre canal linéaire et service répliqué, ce qui est
licite parce que le grade \omega est l'image du fragment cartésien. La composante \mathcal{E}
n'est pas traduite : elle n'a pas de contrepartie dans le calcul.
Une seconde voie existe pour les cas de la couche 3, plus directe, et elle rejoint un choix déjà
fait. Le fragment séquentiel déterministe du calcul cible est essentiellement le \lambda-calcul
en style à passage de continuations, de sorte que toute transformée CPS y plonge le
\lambda-calcul [61] — et K7PL a retenu l'appel par
poussée de valeur, cadre où cette transformée se lit sans détour. L'inclusion qu'affirme l'équation
du chapitre 1 cesse ainsi d'être une affirmation pour devenir un plongement nommé.
L'esquisse ne conduit pas l'induction cas par cas, et deux points y résisteraient. RMQ 54. L'obstacle est de conduire la traduction, non de trouver une cible. Celle-ci existe et porte ce qu'il faut. Les types dépendants pragmatiques du §3.2 demandent des quantificateurs du second ordre que le métalangage doit posséder — fragment disponible avec sa propre théorie de l'équivalence comportementale [66]. Et le point fixe du §2.4 suppose que le semi-treillis d'arrivée soit lui-même interprété. Une machine abstraite pour sessions linéaires correspondant à la logique linéaire classique, étendue de quantificateurs du second ordre et de types inductifs, fournit l'un et l'autre, avec une stratégie d'évaluation séquentielle déterministe dérivée de la focalisation et une adéquation établie dans les deux sens [67]. C'est elle que ce document désigne comme interprétation du métalangage, sans conduire ici la vérification.
S'il tient, correction et adéquation se raisonnent une fois au niveau du métalangage et non construction par construction de K7PL — c'est l'économie que ce chapitre revendique. S'il tombe, chaque construction du langage redemande son propre argument de correction, et la dette de fidélité du chapitre 6 redevient aussi large qu'elle en avait l'air.
Les trois conséquences qui précèdent supposent une induction que ce document doit maintenant conduire, au moins dans son plan. Elle porte sur la dérivation, et se range en quatre groupes selon ce que chaque règle engage.
Le premier groupe est celui des règles structurelles, et il ne demande rien. L'affaiblissement
envoie sur l'affaiblissement du séquent, la contraction sur la duplication d'un service répliqué —
laquelle est licite exactement quand le grade vaut \omega, ce qui est l'hypothèse de la règle
source. L'échange n'a pas d'image, les contextes du métalangage étant des ensembles.
Le deuxième est celui des connecteurs, et il suit la traduction usuelle des propositions comme sessions. L'abstraction devient une réception, l'application une coupure sur canal frais, le couple une émission suivie de la continuation, la projection une sélection, le branchement une offre. Chaque règle envoie sur une règle, et la préservation du typage y est immédiate puisque les types sont les mêmes objets de part et d'autre.
Le troisième est celui des règles propres à K7PL, et c'est là que l'induction fait un travail. Un
acteur envoie sur un point fixe gardé par une réception, sa coalgèbre terminale devenant la finalité
de ce point fixe. Un motif de jonction envoie sur la construction homonyme, dont l'atomicité est
celle de la règle. Le séquencement d'effets envoie sur le préfixage, et c'est ici que la marque de
non-commutativité du produit de la quantale trouve son image~: préfixer n'est pas commutatif non
plus. Un effet devient une émission sur le canal distingué de sa sorte, et l'opération
\mathbf{tick} une émission sur celui du temps. Une capacité linéaire devient un canal linéaire,
une capacité de lecture un service répliqué — le choix étant dicté par le grade, ce qui est licite
puisque le grade \omega est l'image du fragment cartésien.
Le quatrième groupe est celui des cas résistants, au nombre de quatre, et ils se nomment. Les types dépendants pragmatiques demandent un fragment du second ordre, disponible avec sa théorie de l'équivalence [66]~; la traduction y envoie un indice sur une variable de type quantifiée, et la préservation demande que la quantification du métalangage soit assez riche pour porter les contraintes que le solveur décharge — ce que ce document n'établit pas. L'opérateur de point fixe déductif demande que le semi-treillis d'arrivée soit lui-même interprété, faute de quoi son image n'a pas de type~; la machine à sessions linéaires possède les types inductifs nécessaires [67], mais l'interprétation du treillis y reste à donner. Et les canaux distingués demandent que la traduction ne produise que des termes bien sortés, une sorte étant réservée aux effets et interdite au programme traduit~; c'est une propriété de la traduction elle-même, vérifiable par une induction parallèle sur la même dérivation, et non une hypothèse supplémentaire. Le quatrième ne résiste pas aujourd'hui mais résisterait demain, et c'est le seul dont ce document sache qu'il ne pourra pas le lever. Si la discipline d'échange restreint envisagée au chapitre 3 (§3.1) était adoptée, une zone de contexte porterait un ordre~; or la composition parallèle du métalangage est commutative, et un ordre ne survit pas à une image commutative. La traduction resterait correcte — l'extrusion de portée qu'elle emploie repose sur une propriété de grade que l'ordre ne touche pas —. Mais elle cesserait de transporter l'ordre, de sorte qu'une propriété établie sur la zone ordonnée ne se lirait plus sur l'image. C'est une perte et non un échec, et la nommer maintenant coûte moins que de la découvrir en adoptant la discipline : elle est l'un des prix de cette adoption, et il n'était pas compté.
Reste à dire ce qu'on fait du métalangage une fois la traduction établie, car c'est là que
l'économie se réalise. On ne l'interprète qu'une fois. Une machine abstraite pour les sessions
linéaires, dont la stratégie d'évaluation est séquentielle et déterministe et dont l'adéquation est
prouvée dans les deux sens, en fournit l'interprétation [67]~;
l'équivalence observationnelle du calcul, pleinement abstraite vis-à-vis de la congruence barbelée
faible, en fournit la théorie des programmes [61].
Correction et adéquation se raisonnent donc à ce niveau, une fois pour toutes, et non construction
par construction de K7PL. C'est ce que signifiait, au chapitre 6
(§6.3), l'affirmation que la dette de fidélité est plus
étroite qu'elle n'y paraissait~: elle se réduit à la préservation du typage par
\llbracket \cdot \rrbracket, dont le plan qui précède donne l'induction sans la mener à son
terme.
Trois conséquences se lisent sur cette traduction, et c'est en cela qu'elle vaut mieux qu'une reformulation.
La première concerne l'effacement. Le chapitre 2 (§2.4)
signale que l'architecture de K7PL est un système de raffinement de types, soit un foncteur des
dérivations vers les termes sous-jacents, sans exhiber ce foncteur. C'est
\llbracket \cdot \rrbracket : une dérivation de K7PL porte \mathcal{G} et \mathcal{E} ; son
image ne les porte pas. L'effacement de la Phase 8 n'est donc pas une opération de compilation qu'il
faudrait justifier séparément — c'est l'action de ce foncteur sur les objets, et la non-interférence
du chapitre 1 est l'énoncé que le métalangage ne voit pas la dérivation.
La deuxième concerne l'échelle du système. Le §4.5 pose que l'orchestrateur est une coalgèbre sans exhiber le foncteur qui l'engendre. Sous la traduction, un système est un terme — composition parallèle d'acteurs sous restriction des canaux privés —, et le foncteur cherché est celui dont la coalgèbre finale interprète ce terme. Le produit des foncteurs de comportement individuels, restreint aux transitions que la topologie de coupures autorise. Ce n'est pas une nouvelle construction, c'est la lecture de la composition parallèle comme opération sur les coalgèbres.
Une restriction doit toutefois y être ajoutée à la main, et c'est la seule des trois conséquences qui en demande une. Cet argument remonte de la cible vers la source, quand les deux autres en descendent. Or la topologie de coupures ne porte pas les disciplines que la cible ne connaît pas — l'ordre d'une zone d'échange (chapitre 3, §3.1) en est une. Le foncteur ainsi obtenu admet donc des transitions que la source interdit : c'est une sur-approximation, dont la coalgèbre de l'orchestrateur est une sous-coalgèbre. Cela suffit à établir que le foncteur existe et quelle forme il a ; cela ne suffirait pas à en tirer une propriété de sûreté, une sur-approximation ne démontrant jamais une sûreté.
La troisième concerne la fidélité de l'interpréteur de référence (chapitre 6, §6.3). L'interpréteur est fidèle si ses transitions sont celles du métalangage. Comme celui-ci est interprété une fois pour toutes, correction et adéquation se raisonnent à son niveau et non sur chaque construction de K7PL. Cette remarque se laisse porter jusqu'à un énoncé, qui dit ce qu'un interpréteur de référence garantit et ce qu'il ne garantit pas.
\langle c \mid \mu \mid \tau \rangle \to \langle c' \mid \mu' \mid \tau' \rangle entraîne
\llbracket c \rrbracket \to^{+} \llbracket c' \rrbracket modulo \equiv, et la trace
\tau' étend \tau par l'image des événements du pas.
Par induction sur la dérivation du pas, en suivant le terme image. Les réductions pures se rangent
en trois groupes. (1) Les \beta-réductions — application, let sur return, force sur thunk,
unbox sur box, open sur pack, instanciation — traduisent la coupure d'une introduction et
d'une élimination : la traduction de gauche se réduit en un pas de communication vers
(\nu x)(\llbracket c \rrbracket \mid \overline{x}\langle \llbracket v \rrbracket \rangle), qui est
\llbracket c[v/x] \rrbracket modulo \equiv par le théorème
54. (2) Les éliminations de produit, de somme, de conjonction
additive, d'unité, de vecteur vide et de repli sont des communications sur un canal linéaire suivies
d'un aiguillage, un pas chacune. (3) Le parcours d'un vecteur non vide se déplie en deux pas, comme
dans la source. La congruence se transporte directement : un contexte d'évaluation se traduit en un
contexte de séquentialisation, et \to^{+} y est stable.
Reste la trace, qui est le point délicat. La composition parallèle du métalangage est commutative, et
ne distingue pas deux événements que la source ordonne. Deux émissions \overline{t}\langle\rangle
sur un même canal de temps ne seraient donc pas ordonnées par la seule coupure du let. L'énoncé
n'est vrai que si la traduction enfile le canal de temps : chaque événement consomme le canal reçu et
rend le canal suivant, de sorte que le préfixage de la séquence impose l'ordre. C'est une exigence sur
la traduction, non une conséquence de la préservation du typage ; avec elle, les cas
\mathbf{tick} et \mathsf{operation}_\varepsilon sont chacun un pas de communication qui étend
la trace d'un événement. Sans elle, le contre-exemple \mathsf{let}\;x \leftarrow \mathbf{tick}\;\mathsf{in}\;\mathbf{tick}
est une trace à deux événements non ordonnés. L'opération à portée se traduit en un contexte, et se
traite comme un let. Non démontrée : les clauses de traduction pour les opérations et pour \mathbf{tick}
ne sont données qu'en prose, et la proposition est l'hypothèse Sim du théorème
47, et elle en est aussi la dette.
Supposons la traduction \llbracket \cdot \rrbracket préservant le typage
(théorème 45) et l'interprétation du métalangage adéquate
vis-à-vis de son équivalence observationnelle, et sous l'hypothèse Sim d'un théorème de simulation reliant la relation \to du §4.7 à la réduction du métalangage : \langle c \mid \mu \mid \tau \rangle \to \langle c' \mid \mu' \mid \tau' \rangle entraîne \llbracket c \rrbracket \to^{+} \llbracket c' \rrbracket modulo \equiv, la trace s'étendant en conséquence. Alors tout
est fidèle à la sémantique de K7PL sur la structure de communication, sur le contrôle et sur les
effets. Il ne l'est pas sur les grades ni sur les raffinements, que la traduction oublie par
construction.
La préservation du typage ne suffit pas à elle seule : un terme bien typé peut avoir plusieurs images bien typées de comportements distincts, et la composition parallèle du métalangage, commutative, ne distingue pas deux traces \tau_1 \cdot \tau_2 et \tau_2 \cdot \tau_1 que la source ordonne. C'est pourquoi l'énoncé porte Sim : la relation \to du §4.7 est la définition de l'exécution, et la fidélité n'est relative à elle que par ce théorème, qui reste à établir (c'est une induction sur la même dérivation que la préservation du typage). Sim n'est pas prouvée ici : l'énoncé est conditionnel, et l'engagement « fidélité de l'interpréteur » reste ouvert tant qu'elle ne l'est pas.
La fidélité se factorise, et c'est tout l'argument. Elle est une instance du schéma d'effacement
(chapitre 2, §2.6,
théorème 20) : la traduction étant définie par récurrence et
hygiénique, elle induit un morphisme de systèmes de raffinement, et il n'y a donc pas une propriété
à établir construction par construction mais trois conditions à vérifier sur une transformation. Un
interpréteur de référence n'interprète pas K7PL : il interprète le métalangage. Le chemin d'un
programme à son observation passe donc par \llbracket \cdot \rrbracket puis par l'interprétation
du métalangage. Si la première préserve le typage, un programme bien typé donne un terme bien typé ;
si la seconde est adéquate, le comportement observable de ce terme s'accorde à sa dénotation. La
composée l'est donc aussi, et aucune construction de K7PL n'a besoin d'être traitée séparément.
Le périmètre demande deux précisions, dont la première corrige ce que ce document a longtemps écrit.
Les effets sont couverts : depuis que la composante \mathcal{E} reçoit une image – un effet
devenant une émission sur le canal distingué de sa sorte, et \mathbf{tick} une émission sur celui
du temps –, ce qui échappait au métalangage ne lui échappe plus. La réserve ancienne, qui bornait la
fidélité à la communication et au contrôle, est levée par cette extension et non par le présent
énoncé.
Ce qui reste hors du périmètre y reste par construction et non par défaut : la traduction n'emporte ni les grades ni les raffinements, et c'est cet oubli qui fait d'elle un système de raffinement plutôt qu'une simple traduction. Un interpréteur fidèle ne dira donc rien de ce qu'une discipline de ressource garantit – il n'a pas à le dire, ces garanties étant établies avant l'exécution et effacées à la Phase 8.
□
La dette qu'il reste à acquitter n'est donc plus « prouver l'interpréteur correct » mais « établir
que \llbracket \cdot \rrbracket préserve le typage », ce que le théorème 45
énonce, dont l'induction est planifiée et non conduite.
Une réserve doit fermer cette section, car la lecture a un coût que sa commodité pourrait masquer.
La composante \mathcal{E} n'a pas d'image dans le métalangage : ce qui s'y raisonne est la
structure de communication et de contrôle, non les effets — ni, par conséquent, le temps, que le
chapitre 1 (§1.4) y a logé sous la forme d'une opération
\mathbf{tick}. Un interpréteur prouvé fidèle au métalangage ne serait donc prouvé fidèle qu'à
cette part-là, et les garanties de la Phase 3 comme celles de la Phase 7 resteraient à établir
ailleurs. Il faut se garder d'en tirer que les effets échapperaient à tout traitement structurel :
ils sont gradués comme le contexte l'est, et la correction conjointe des deux gradations est un
résultat établi sur ce régime d'évaluation [68]. Ce
qui échappe au métalangage échappe au métalangage, non au système de types.
Cette réserve n'a pas à être définitive, et ce document choisit de ne pas s'y tenir. Un effet peut
se traduire dans un calcul de processus, et par un procédé classique : une opération à effet devient
une communication sur un canal distingué, réservé à cet effet et non accessible au programme
traduit. Émettre sur le canal du temps est ce que \mathbf{tick} devient ; un gestionnaire d'effet
devient un processus qui offre une session sur ce canal. Le métalangage porte alors \mathcal{E}
comme il porte déjà \Delta, la traduction devient totale sur les trois composantes, et la
fidélité d'un interpréteur cesse d'être partielle.
Deux conséquences accompagnent ce choix, et la seconde est un coût. La première est que la non-interférence temporelle devient énonçable dans le métalangage : dire qu'une durée ne dépend pas d'un secret revient à dire que les communications sur le canal du temps sont indiscernables, ce qui est une propriété du calcul et non une propriété à établir en dehors de lui. La seconde est que le métalangage grossit — il faut une discipline pour les canaux distingués, qui garantisse qu'aucun programme traduit n'y accède directement. Cette discipline n'a pas à être inventée : le calcul cible emploie déjà un système de sortes sur les canaux, dont le traitement des motifs de jonction est le premier usage, et où l'on ne considère que les processus bien sortés [61]. Il suffit d'y réserver une sorte aux canaux d'effet et d'exiger qu'aucun terme issu de la traduction ne la mentionne. La charge se ramène donc à un cas de l'induction plutôt qu'elle ne s'y ajoute : établir que la traduction produit des termes bien sortés. Le chapitre 6 (§6.3) mesure ce que ce choix change pour la dette de fidélité.
- URBAT, Henning; SCHRÖDER, Lutz. Automata Learning: An Algebraic Approach. In: Proceedings of the 35th Annual ACM/IEEE Symposium on Logic in Computer Science [en ligne]. Saarbrücken Germany: ACM, 2020, p. 900–914 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.1145/3373718.3394775
- HEERDT, Gerco; KAPPÉ, Tobias; ROT, Jurriaan; SAMMARTINO, Matteo; SILVA, Alexandra. A Categorical Framework for Learning Generalised Tree Automata [en ligne]. 2022, vol. 13225, p. 67–87 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.1007/978-3-031-10736-8_4
- COLCOMBET, Thomas; PETRIŞAN, Daniela. Automata Minimization: A Functorial Approach. Logical Methods in Computer Science [en ligne]. 2020, vol. Volume 16, Issue 1, p. 4159 [visité le 2026-08-19]. Disp. à l’adr. DOI: 10.23638/LMCS-16(1:32)2020
- ABEL, Andreas; PIENTKA, Brigitte. Well-Founded Recursion with Copatterns and Sized Types. Journal of Functional Programming [en ligne]. 2016, vol. 26, p. e2 [visité le 2025-05-19]. Disp. à l’adr. DOI: 10.1017/S0956796816000022
- KUPKE, C.; VENEMA, Y. Coalgebraic Automata Theory: Basic Results. Logical Methods in Computer Science [en ligne]. 2008, vol. Volume 4, Issue 4, p. 1203 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.2168/LMCS-4(4:10)2008
- BOCCALI, Guido; LARETTO, Andrea; LOREGIAN, Fosco; LUNEIA, Stefano. Bicategories of Automata, Automata in Bicategories. Electronic Proceedings in Theoretical Computer Science [en ligne]. 2023, vol. 397, p. 1–19 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.4204/EPTCS.397.1
- LOREGIAN, Fosco. Automata and Coalgebras in Categories of Species. In: KÖNIG, Barbara; URBAT, Henning (éd.). Coalgebraic Methods in Computer Science [en ligne]. Cham: Springer Nature Switzerland, 2024, vol. 14617, p. 65–92 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.1007/978-3-031-66438-0_4
- YADAV, Swati; TIWARI, S. P. A General Categorical Framework of Minimal Realization Theory for a Fuzzy Multiset Language. Mathematical Problems in Engineering [en ligne]. 2022, vol. 2022, p. 1–19 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.1155/2022/2798898
- HEERDT, Gerco; KAPPÉ, Tobias; ROT, Jurriaan; SAMMARTINO, Matteo; SILVA, Alexandra. Tree Automata as Algebras: Minimisation and Determinisation. LIPIcs, Volume 139, CALCO 2019 [en ligne]. 2019, vol. 139, p. 6:1-6:22 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.4230/LIPIcs.CALCO.2019.6
- FORD, Bryan. Parsing Expression Grammars: A Recognition-Based Syntactic Foundation [en ligne]. s. d.. Disp. à l’adr. DOI: 10.1145/964001.964011
- FORD, Bryan. Packrat Parsing: Simple, Powerful, Lazy, Linear Time. s. d..
- JIA, Xiaodong; KUMAR, Ashish; TAN, Gang. A Derivative-Based Parser Generator for Visibly Pushdown Grammars. Proceedings of the ACM on Programming Languages [en ligne]. 2021, vol. 5, p. 1–24 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3485528
- BOJAŃCZYK, Mikołaj; KLIN, Bartek; LASOTA, Sławomir. Automata Theory in Nominal Sets. Logical Methods in Computer Science [en ligne]. 2014, vol. Volume 10, Issue 3, p. 1157 [visité le 2026-08-18]. Disp. à l’adr. DOI: 10.2168/LMCS-10(3:4)2014
- REDDY, Uday S. Global State Considered Unnecessary: An Introduction to Object-Based Semantics. In: O’HEARN, Peter W.; TENNENT, Robert D. (éd.). J. of Lisp and Symbolic Computation [en ligne]. Boston, MA: Univ. of Illinois at Urbana-Champaign, 1997, p. 227–295. Disp. à l’adr. DOI: 10.1007/978-1-4757-3851-3_9
- STEFAN, Deian; RUSSO, Alejandro; BUIRAS, Pablo; LEVY, Amit; MITCHELL, John C.; MAZIÉRES, David. Addressing Covert Termination and Timing Channels in Concurrent Information Flow Systems. In: Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming [en ligne]. Copenhagen Denmark: ACM, 2012, p. 201–214 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.1145/2364527.2364557
- SMITH, G. A New Type System for Secure Information Flow. In: Proceedings. 14th IEEE Computer Security Foundations Workshop, 2001. [en ligne]. Cape Breton, Novia Scotia, Canada: IEEE, 2001, p. 115–125 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.1109/CSFW.2001.930141
- ZAGIEBOYLO, Drew; SUH, G. Edward; MYERS, Andrew C. Using Information Flow to Design an ISA That Controls Timing Channels. In: 2019 IEEE 32nd Computer Security Foundations Symposium (CSF) [en ligne]. Hoboken, NJ, USA: IEEE, 2019, p. 272–27215 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.1109/CSF.2019.00026
- KEIZER, Alex C.; BASOLD, Henning; PÉREZ, Jorge A. Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols. In: YOSHIDA, Nobuko (éd.). Programming Languages and Systems [en ligne]. Cham: Springer International Publishing, 2021, vol. 12648, p. 375–403 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.1007/978-3-030-72019-3_14
- FLUET, Matthew; MORRISETT, Greg. Monadic Regions. Journal of Functional Programming [en ligne]. 2006, vol. 16, no. 4–5, p. 485–545 [visité le 2025-05-15]. Disp. à l’adr. DOI: 10.1017/S095679680600596X
- Specifications — Apache Arrow V25.0.1 [en ligne]. s. d. [visité le 2026-08-28]. Disp. à l’adr. https://arrow.apache.org/docs/format/index.html#format
- Cap'n Proto: Encoding Spec [en ligne]. s. d. [visité le 2026-08-28]. Disp. à l’adr. https://capnproto.org/encoding.html
- CHOUDHURY, Vikraman; KRISHNASWAMI, Neel. Recovering Purity with Comonads and Capabilities. Proceedings of the ACM on Programming Languages [en ligne]. 2020, vol. 4, p. 1–28 [visité le 2025-04-30]. Disp. à l’adr. DOI: 10.1145/3408993
- PRUIKSMA, Klaas; CHARGIN, William; PFENNING, Frank; REED, Jason. Adjoint Logic [en ligne]. s. d. [visité le 2026-08-28]. Disp. à l’adr. https://ncatlab.org/nlab/files/PCPR18-AdjointLogic.pdf
- GILL, Andy. Type-Safe Observable Sharing in Haskell [en ligne]. s. d.. Disp. à l’adr. DOI: 10.1145/1596638.1596653
- BIANCHINI, Riccardo; DAGNINO, Francesco; GIANNINI, Paola; ZUCCA, Elena; SERVETTO, Marco. Coeffects for Sharing and Mutation. Proceedings of the ACM on Programming Languages [en ligne]. 2022, vol. 6, p. 870–898 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3563319
- GRABMAYER, Clemens. Maximal Sharing in the Lam. s. d..
- SAMMLER, Michael; GARG, Deepak; DREYER, Derek; LITAK, Tadeusz. The High-Level Benefits of Low-Level Sandboxing. Proceedings of the ACM on Programming Languages [en ligne]. 2020, vol. 4, p. 1–32 [visité le 2025-05-05]. Disp. à l’adr. DOI: 10.1145/3371100
- VAN STRYDONCK, Thomas; PIESSENS, Frank; DEVRIESE, Dominique. Linear Capabilities for Fully Abstract Compilation of Separation-Logic-Verified Code. Proceedings of the ACM on Programming Languages [en ligne]. 2019, vol. 3, p. 1–29 [visité le 2025-06-05]. Disp. à l’adr. DOI: 10.1145/3341688
- MÉVEL, Glen; JOURDAN, Jacques-Henri. Formal Verification of a Concurrent Bounded Queue in a Weak Memory Model. Proceedings of the ACM on Programming Languages [en ligne]. 2021, vol. 5, p. 1–29 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3473571
- LAHAV, Ori; NAMAKONOV, Egor; OBERHAUSER, Jonas; PODKOPAEV, Anton; VAFEIADIS, Viktor. Making Weak Memory Models Fair. Proceedings of the ACM on Programming Languages [en ligne]. 2021, vol. 5, p. 1–27 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3485475
- TONINHO, Bernardo; YOSHIDA, Nobuko. Interconnectability of Session-Based Logical Processes. ACM Transactions on Programming Languages and Systems [en ligne]. Univ. Nova de Lisboa et Imperial College London, 2018, vol. 40, no. 4, p. 1–42 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3242173
- HEUVEL, Bas; PÉREZ, Jorge A. Comparing Session Type Systems Derived from Linear Logic [en ligne]. 2024 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.48550/ARXIV.2401.14763
- DI LAVORE, Elena; DE FELICE, Giovanni; ROMÁN, Mario. Monoidal Streams for Dataflow Programming. In: Proceedings of the 37th Annual ACM/IEEE Symposium on Logic in Computer Science [en ligne]. Haifa Israel: ACM, 2022, p. 1–14 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3531130.3533365
- HASEGAWA, M. On Traced Monoidal Closed Categories [en ligne]. Kyoto Univ.: Research Institute for Mathematical Sciences, 2007. Disp. à l’adr. DOI: 10.1017/s0960129508007184
- SAHEBOLAMRI, Arash; BARRETT, Langston; MOORE, Scott; MICINSKI, Kristopher. Bring Your Own Data Structures to Datalog. Proc. ACM Program. Lang. [en ligne]. Syracuse Univ., 2023, vol. 7, p. 1198–1223 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3622840
- KAMINSKI, Mark; KOSTYLEV, Egor V.; GRAU, Bernardo Cuenca; MOTIK, Boris; HORROCKS, Ian. The Complexity and Expressive Power of Limit Datalog. Journal of the ACM [en ligne]. 2021, vol. 69, no. 1, p. 1–83 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3495009
- HORNE, Ross. Session Subtyping and Multiparty Compatibility Using Circular Sequents. International Conference on Concurrency Theory [en ligne]. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2020, vol. 171, p. 12:1-12:22 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.4230/LIPIcs.CONCUR.2020.12
- SAFFRICH, Hannes; SPADERNA, Janek; THIEMANN, Peter; VASCONCELOS, Vasco T. Borrowing from Session Types. Proc. ACM Program. Lang. [en ligne]. Univ. of Freiburg: Univ. of Freiburg, 2025, vol. 9, p. 3426–3453 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3763173
- CASTELLAN, Simon; YOSHIDA, Nobuko. Two Sides of the Same Coin: Session Types and Game Semantics: A Synchronous Side and an Asynchronous Side. Proc. ACM Program. Lang. [en ligne]. 2019, vol. 3, no. POPL, p. 1–29 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3290340
- OLIVEIRA VALE, Arthur; SHAO, Zhong; CHEN, Yixuan. A Compositional Theory of Linearizability. Proceedings of the ACM on Programming Languages [en ligne]. 2023, vol. 7, no. POPL, p. 1089–1120 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3571231
- JACOBS, Jules. A Self-Dual Distillation of Session Types. LIPIcs, Volume 222, ECOOP 2022 [en ligne]. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022, vol. 222, p. 23:1-23:22 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.4230/LIPICS.ECOOP.2022.23
- PADOVANI, Luca; ZAVATTARO, Gianluigi. Fair Termination of Asynchronous Binary Sessions. ACM Transactions on Programming Languages and Systems [en ligne]. Univ. of Bologna: Dept. of Computer Science and Engineering, 2026, vol. 48, no. 2, p. 1–52 [visité le 2026-09-01]. Disp. à l’adr. DOI: 10.1145/3803862
- ROSSBERG, Andreas (éd.). WebAssembly Specification. Version 3.0. W3C, 2026.
- ROSSBERG, Andreas (éd.). WebAssembly Spec Addendum: Legacy Exception Handling. W3C, 2026.
- IOZZELLI, Yuri (éd.). WebAssembly Code Metadata Specification. W3C, 2026.
- ERWIG, Martin. Inductive Graphs and Functional Graph Algorithms. Journal of Functional Programming [en ligne]. 2001, vol. 11, no. 5, p. 467–492 [visité le 2025-05-15]. Disp. à l’adr. DOI: 10.1017/S0956796801004075
- KIDNEY, Donnacha Oisín; WU, Nicolas. Formalising Graph Algorithms with Coinduction. Proc. ACM Program. Lang. [en ligne]. 2025, vol. 9, no. POPL, p. 1657–1686 [visité le 2025-05-19]. Disp. à l’adr. DOI: 10.1145/3704892
- KELLISON, Ariel E.; ZIELINSKI, Laura; BINDEL, David; HSU, Justin. Bean: A Language for Backward Error Analysis. Proceedings of the ACM on Programming Languages [en ligne]. 2025, vol. 9, no. PLDI, p. 1838–1862 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3729324
- THOMPSON, Martin; FARLEY, Dave; BARKER, Michael; GEE, Patricia; STEWART, Andrew. LMAX Disruptor: High Performance Alternative to Bounded Queues for Exchanging Data between Concurrent Threads [en ligne]. 2011 [visité le 2026-08-27]. Disp. à l’adr. https://lmax-exchange.github.io/disruptor/disruptor.html
- Data Plane Development Kit [en ligne]. DPDK, 2020 [visité le 2026-09-02]. Disp. à l’adr. https://fast.dpdk.org/doc/pdf-guides-20.08/prog_guide-20.08.pdf
- HILLSTON, Jane. A Compositional Approach to Performance Modelling [en ligne]. 1e éd. Cambridge University Press, 1996 [visité le 2026-09-01]. Disp. à l’adr. DOI: 10.1017/CBO9780511569951
- KESSENICH, John; OURIEL, Boaz. SPIR-V Specification. Version 1.12. Khronos Group, 2018.
- OASIS. Virtual I/O Device (VIRTIO) Specification. Version virtio-v1.3-csd01. OASIS Open, 2023.
- RECIO, R.; METZLER, B.; CULLEY, P.; HILLAND, J.; GARCIA, D. A Remote Direct Memory Access Protocol Specification [en ligne]. RFC Editor, 2007, no. RFC5040, p. RFC5040 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.17487/rfc5040
- GOUNI, Hemant; PFENNING, Frank; ALDRICH, Jonathan. Security Reasoning via Substructural Dependency Tracking. Proc. ACM Program. Lang. [en ligne]. 2026, vol. 10, no. POPL, p. 777–805 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3776669
- AZEVEDO DE AMORIM, P. H. The Compositional Essence of Effectful Cost Analyses: Categorical Foundations and Fibered Logical Relations. Univ. of Bath, s. d..
- DAS, Ankush; HOFFMANN, Jan; PFENNING, Frank. Parallel Complexity Analysis with Temporal Session Types. Proceedings of the ACM on Programming Languages [en ligne]. 2018, vol. 2, no. ICFP, p. 1–30 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3236786
- ANTONELLI, Melissa; DAL LAGO, Ugo; PISTONE, Paolo. Curry and Howard Meet Borel. In: Proc. 37th Annu. ACM/IEEE Symp. Logic in Computer Science (LICS '22) [en ligne]. Haifa Israel: ACM, 2022, p. 1–13 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3531130.3533361
- EHRHARD, Thomas; GEOFFROY, Guillaume. Integration in Cones. Logical Methods in Computer Science [en ligne]. 2025, vol. Volume 21, Issue 1, no. 1, p. 10815 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.46298/lmcs-21(1:1)2025
- BERRY, Gérard; BOUDOL, Gérard. The Chemical Abstract Machine. Theoretical Computer Science [en ligne]. 1992, vol. 96, no. 1, p. 217–248 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1016/0304-3975(92)90185-I
- FOURNET, Cédric; GONTHIER, Georges. The Reflexive CHAM and the Join-Calculus [en ligne]. St. Petersburg Beach, Florida, United States: ACM Press, 1996, p. 372–385 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/237721.237805
- BORGSTRÖM, Johannes; GUTKOVAS, Ramūnas; PARROW, Joachim; VICTOR, Björn; POHJOLA, Johannes Åman. A Sorted Semantic Framework for Applied Process Calculi. Logical Methods in Computer Science [en ligne]. 2016, vol. Volume 12, Issue 1, p. 1631 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.2168/LMCS-12(1:8)2016
- MA, Qin; MARANGET, Luc. Algebraic Pattern Matching in Join Calculus. Logical Methods in Computer Science [en ligne]. 2008, vol. Volume 4, Issue 1, p. 770 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.2168/LMCS-4(1:7)2008
- LINDLEY, Sam; MORRIS, J. Garrett. Talking Bananas: Structural Recursion for Session Types. In: Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming [en ligne]. Nara Japan: ACM, 2016, p. 434–447 [visité le 2026-08-27]. Disp. à l’adr. DOI: 10.1145/2951913.2951921
- CERVESATO, Iliano. The Logical Meeting Point of Multiset Rewriting and Process Algebra: Progress Report. Naval Research Laboratory, 2004, no. Technical Memo 5540-153.
- PIERCE, Benjamin C.; SANGIORGI, Davide. Behavioral Equivalence in the Polymorphic Pi-Calculus. Journal of the ACM [en ligne]. 2000, vol. 47, no. 3, p. 531–584 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/337244.337261
- CAIRES, Luís; TONINHO, Bernardo. The Linear Session Abstract Machine. ACM Transactions on Programming Languages and Systems [en ligne]. Lisbonne: Univ. de Lisboa, 2026, vol. 48, no. 3, p. 1–66 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1145/3819583
- TORCZON, Cassia; SUÁREZ ACEVEDO, Emmanuel; AGRAWAL, Shubh; VELEZ-GINORIO, Joey; WEIRICH, Stephanie. Effects and Coeffects in Call-by-Push-Value. Proceedings of the ACM on Programming Languages [en ligne]. 2024, vol. 8, no. OOPSLA2, p. 1108–1134 [visité le 2025-05-08]. Disp. à l’adr. DOI: 10.1145/3689750
- RAJANI, Vineet; GABOARDI, Marco; GARG, Deepak; HOFFMANN, Jan. A Unifying Type-Theory for Higher-Order (Amortized) Cost Analysis. Proceedings of the ACM on Programming Languages [en ligne]. 2021, vol. 5, p. 1–28 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3434308
- CHU, Ethan; GUO, Yiyang; HOFFMANN, Jan. Handling Exceptions and Effects with Automatic Resource Analysis. Proceedings of the ACM on Programming Languages [en ligne]. ACM, 2026, vol. 10, no. 99, p. 1–30. Disp. à l’adr. DOI: 10.1145/3798207
- WALCH, Armin. Automated Amortised Analysis of Skew Heaps and Leftist Heaps [en ligne]. 2026, p. 100–122. Disp. à l’adr. DOI: 10.1007/978-3-032-32537-2_5
- GRODIN, Harrison; LI, Runming; HARPER, Robert. Abstraction Functions as Types: Modular Verification of Cost and Behavior in Dependent Type Theory. Proc. ACM Program. Lang. [en ligne]. 2026, vol. 10, no. 31, p. 1–28. Disp. à l’adr. DOI: 10.1145/3776673
- ERIKSSON, Oskar. Graded Modal Type Theory, Formalized [en ligne]. University of Gothenburg, 2025 [visité le 2026-08-27]. Disp. à l’adr. https://hdl.handle.net/2077/86472
- CHOUDHURY, Pritam; EADES III, Harley; EISENBERG, Richard A.; WEIRICH, Stephanie. A Graded Dependent Type System with a Usage-Aware Semantics. Proceedings of the ACM on Programming Languages [en ligne]. 2021, vol. 5, p. 1–32 [visité le 2025-05-07]. Disp. à l’adr. DOI: 10.1145/3434331
- MANNUCCI, Mirco A.; THURO, Corey. Resource-Bounded Type Theory: Compositional Cost Analysis via Graded Modalities. arXiv.org [en ligne]. 2025, vol. abs/2512.6952, p. 1–20 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.48550/arXiv.2512.06952
- KAVVOS, G A; MOREHOUSE, Edward; LICATA, Daniel R; DANNER, Norman. Recurrence Extraction for Functional Programs through Call-by-Push-Value. Proceedings of the ACM on Programming Languages [en ligne]. 2020, vol. 4, p. 1–31. Disp. à l’adr. DOI: 10.1145/3371083
- SABELFELD, Andrei; MYERS, Andrew C. A Model for Delimited Information Release. Software Security - Theories and Systems [en ligne]. Berlin, Heidelberg: Springer Berlin Heidelberg, 2004, vol. 3233, p. 174–191 [visité le 2026-08-02]. Disp. à l’adr. DOI: 10.1007/978-3-540-37621-7_9