Un Système de Module Fermé pour la PLC
Abstract
Cet article présente un système de modules pour la Programmation Logique par Contraintes. Ce système simple et relativement indépendant du langage précis d'utilisation (il a été conçu à l'origine pour GNU-Prolog) a la particularité d'être fermé. Par fermé nous entendons, le fait qu'il est capable de prévenir tout appel à des parties privées d'un module depuis l'extérieur de celui-ci. Bien qu'il puisse être vu comme une simple couche de sucre syntaxique, ce système offre une discipline de nommage des prédicats permettant de développer des bibliothèques et de faciliter la réutilisation du code. De plus, en ajoutant au langage une forme de fermeture inspirée de la programmation concurrente linéaire par contraintes, nous montrons comment on résout le problème bien connu de l'utilisation de la méta-programmation à travers le système de modules, en distinguant l'exécution d'un terme (prédicat call) de l'application d'une fermeture (ordre supérieur).