Implémentation de Prolog en C ou C ++
Je me demandais comment Prologue de la mise en œuvre en C ou C++. Je suis principalement intéressé par la construction comme C ou C++ de la bibliothèque, bien que l'interprète application serait de le faire aussi. Je suis intéressé par la lecture sur son fonctionnement interne, à savoir l'exécution de la requête c'est à dire trouver les solutions et les types de données concernées. Je serais heureux si vous me recommandé de lectures sur le sujet ou pour des dommages directs suggestions/conseils. Lectures peut-être pour d'autres langages OOP ou de la programmation orientée objet. Plus épuisant matériel permettra de résoudre la question.
source d'informationauteur yauser
Vous devez vous connecter pour publier un commentaire.
Si vous voulez voir comment un Prologue système mis en œuvre en C peut être utilisée en C/C++ comme une bibliothèque, regardez SWI-Prolog. Il propose un complètement l'interface bidirectionnelle, y compris le non-déterminisme pour Unix/Mac/Fenêtre — et beaucoup, beaucoup plus. Pensez à les contraintes.
D'autre part, vous demandez aussi à propos de sa mise en œuvre effective. Il y a deux façons d'aborder cette. Vous pouvez démarrer à partir du bas jusqu'à ce niveau à niveau. Ou vous pouvez commencer avec Prolog, et de commencer avec des méta-interprètes qui mettent en œuvre en Prolog Prolog. À partir de ce que vous pouvez lentement creuser dans le gore.
L'approche traditionnelle était de commencer par le bas des questions de première, l'étude des différentes machines abstraites. Le plus fréquemment cité est le WAM (Warren Machine Abstraite) et puis il y a
Des Alternatives à la WAM
vous ne devriez pas manquer. Être préparé qu'il prendra un long chemin depuis ce à un travail La mise en œuvre de l'ISO. Il ya beaucoup de questions qui ne sont que brièvement abordé dans la littérature comme la collecte des ordures et des contraintes. Pourtant, ils sont nécessaires pour une mise en œuvre robuste.
L'autre approche est d'abord apprendre Prologue, et l'étude de méta-interprètes dans le détail. De cette manière, vous pourriez apprendre à voir Prologue à partir d'une perspective tout à fait différente. Et vous pouvez également avoir un aperçu, vous ne serait pas obtenir autrement. Vous pouvez commencer avec le classique trois clause de méta-interprète qui réutilise beaucoup de Prologue de sa fonctionnalité. En fonction de votre intérêt, alors vous pouvez commencer à concrétiser certaines de ses parties. La bonne chose est que vous payez (en termes de taille de code) que pour les parties que vous voulez creuser et de réutiliser les autres parties de la langue.
Au moins dans le passé, cette approche conduit à diverses nouvelles techniques de mise en œuvre, par exemple, les contraintes, les Erlangbinaire Prolog existé d'abord comme un "simple" méta-interprète. Ensuite seulement, après la compréhension de la langue, implémentations réelles ont été effectuées.
Il y a aussi un autre point en faveur de départ avec le Prologue de la première: Qu'advient-il si vous arrêtez votre effort au milieu de celui-ci? Avec l'approche bottom-up, vous vous retrouvez avec une collection de défunte code. Pour la deuxième approche, vous avez appris Prolog.