Différence entre Prolog et Lisp

Anonim

Prolog vs Lisp

Prolog et Lisp sont deux des langages de programmation de l'intelligence artificielle les plus populaires aujourd'hui. Ils sont construits avec deux paradigmes de programmation différents. Prolog est un langage déclaratif, tandis que le Lisp est un langage fonctionnel. Les deux sont utilisés pour divers problèmes d'intelligence artificielle, mais Prolog est surtout utilisé pour les problèmes de logique et de raisonnement, alors que le Lisp est utilisé pour des problèmes de prototypage rapide.

Prolog

Prolog est un langage de programmation AI. Il appartient à la famille des langages de programmation logique. Prolog est un langage déclaratif, dans lequel les calculs sont effectués en exécutant des requêtes sur les relations (qui représentent la logique du programme), qui sont définies comme des règles et des faits. Développé en 1970, prolog est l'un des langages de programmation logique les plus anciens et l'un des langages de programmation AI les plus populaires aujourd'hui (avec Lisp). C'est un langage libre, mais de nombreuses variantes commerciales sont disponibles. Il a d'abord été utilisé pour le traitement du langage naturel, mais il est maintenant utilisé pour diverses tâches telles que les systèmes experts, les systèmes de réponse automatisés, les jeux et les systèmes de contrôle avancés. Prolog a un seul type de données appelé le terme. Un terme peut être un atome, un nombre, une variable ou un terme composé. Les nombres peuvent être flottants ou entiers. Prolog prend en charge les listes et les chaînes en tant que collection d'éléments. Prolog définit les relations à l'aide de clauses. Les clauses peuvent être des règles ou des faits. Prolog permet l'itération approfondie de ses prédicats récursifs.

Lisp

Lisp est une famille de langages de programmation informatique. Et les dialectes les plus célèbres de Lisp utilisés pour la programmation générale aujourd'hui sont Common Lisp et Scheme. Le nom LISP vient de "LISt Processing" et comme il l'indique, la principale structure de données de Lisp est la liste chaînée. En fait, toute la source est écrite en utilisant des listes (en utilisant la notation préfixe), ou plus correctement des listes entre parenthèses (appelées s-expressions). Par exemple, un appel de fonction est écrit comme (f a1 a2 a3), ce qui signifie que la fonction f est appelée en utilisant a1, a2 et a3 comme arguments d'entrée pour la fonction. Par conséquent, il est appelé un langage orienté expression, où toutes les données et le code sont écrits en tant qu'expressions (il n'y a pas de distinction entre les expressions et les instructions dans Lisp). Cette fonctionnalité intéressante est très spéciale pour Lisp, où il pourrait être utilisé pour étendre la langue au problème en écrivant des macros utiles. Bien que la récursion de queue soit utilisée par les programmeurs pour exprimer les boucles, tous les dialectes Lisp fréquemment rencontrés incluent des structures de contrôle comme la boucle. En outre, Common Lisp et le schéma ont mapcar et carte qui sont des exemples de fonctions, qui fournissent une fonctionnalité de bouclage en appliquant la fonction successivement à tous ses éléments, puis recueille les résultats dans une liste.

Quelle est la différence entre Prolog et Lisp?

Bien que Prolog et Lisp soient deux des langages de programmation AI les plus populaires, ils présentent différentes différences. Lisp est un langage fonctionnel, alors que Prolog est une programmation logique et des langages déclaratifs. Lisp est très flexible en raison de ses fonctions de prototypage rapide et de macro, ce qui permet d'étendre le langage en fonction du problème à résoudre. Dans les domaines de l'IA, des graphiques et des interfaces utilisateur, le Lisp a été largement utilisé en raison de cette capacité de prototypage rapide. Cependant, en raison de ses capacités de programmation logique intégrées, Prolog est idéal pour les problèmes d'intelligence artificielle avec des applications de raisonnement symbolique, de base de données et d'analyse linguistique. Le choix d'un sur l'autre dépend entièrement du type de problème d'IA qui doit être résolu.