Programmation logique

La programmation logique est une forme de programmation qui définit les applications à l'aide :

  • d'une base de faits : ensemble de faits élémentaires concernant le domaine visé par l'application,
  • d'une base de règles : règles de logique associant des conséquences plus ou moins directes à ces faits,
  • d'un moteur d'inférence (ou démonstrateur de théorème ) : exploite ces faits et ces règles en réaction à une question ou requête.

Cette approche se révèle beaucoup plus souple que la définition d'une succession d'instructions que l'ordinateur exécuterait. La programmation logique est considérée comme une programmation déclarative plutôt qu’impérative, car elle s'attache davantage au quoi qu'au comment, le moteur assumant une large part des enchaînements. Elle est particulièrement adaptée aux besoins de l’intelligence artificielle, dont elle est un des principaux outils.

Vers la démonstration automatique

Dans les années 1930, Herbrand avait posé les conditions de validité d'une démonstration automatique. En 1953, Quine donnait une règle d'inférence originale ; définie pour l'ordre 0, elle présentait peu d'intérêt si ce n'est pour améliorer le calcul des circuits logiques. En 1965, John Alan Robinson donnait sa méthode de Résolution : il basait une démonstration automatique sur les conditions d'Herbrand, avec un raisonnement par l'absurde utilisant des énoncés logiques mis sous forme clausale, et une Règle de Résolution, extension à l'ordre 1 de la règle de Quine. Les premiers essais montrèrent que l'idée y était, mais qu'il restait à en trouver une expression efficace : ce sera Prolog.

Approche informatique

En 1958, John McCarthy proposait déjà d’utiliser la logique comme langage déclaratif de représentation des connaissances, un démonstrateur de théorème devenant un solveur de problème. La résolution de problèmes est alors répartie entre le cogniticien, responsable de la validité de l’application exprimée logiquement, et le moteur d’inférence, responsable d’une exécution valide et efficace.

En un sens plus étroit et plus commun, la programmation logique joue sur une ambivalence représentation déclarative/représentation procédurale : ainsi, un raisonnement régressif associera à l’implication B1&…&Bn → H une procédure « pour établir H, établir B1 puis… puis Bn ». De ce fait, au nom de l’efficacité, le programmeur peut être amené à exploiter les propriétés physiques du démonstrateur, se rapprochant ainsi d’une programmation classique. Cependant, les programmes logiques gardent toujours une interprétation logique pure permettant de garantir leur correction, et, du fait de leur caractère déclaratif, sont plus abstraits que leur contrepartie impérative, tout en restant exécutables.

Les premières applications de la programmation logique (1964-69) concernèrent des systèmes de questions/réponses. Absys (1969) fut probablement le premier langage de programmation à base d’assertions.

La programmation logique au sens étroit remonte aux débats de cette époque concernant la représentation des connaissances en intelligence artificielle. Stanford et Édimbourg, avec J. McCarthy et Kowalski, tenaient pour une représentation déclarative, et le MIT, avec Marvin Minsky et Seymour Papert, pour une représentation procédurale.

Planner (Hewitt 1969), langage fondé sur la logique, émergea cependant au MIT. Son sous-ensemble Micro-Planner (Sussman, Charniak, Winograd) fut utilisé par Winograd pour SHRDLU, programme fondé sur l’interprétation d’un dialogue en langage naturel. Planner invoquait des plans procéduraux à partir de buts et d’assertions, et utilisait des reprises en arrière pour ménager le peu de mémoire disponible. Dérivèrent de Planner QA-4, Popler, Conniver, QLISP, Ether.

Cependant, Hayes et Kowalski à Édimbourg essayaient de réconcilier approche déclarative et représentation des connaissances avec l’approche procédurale à la Planner. Hayes (1973) développa un langage équationnel, Golux, qui pouvait invoquer diverses procédures en altérant le fonctionnement du moteur d’inférence. Kowalski montrait par ailleurs que la SL-resolution traitait les implications comme procédures réductrices des buts.

L'avènement de Prolog

Alain Colmerauer, universitaire français passé de la compilation à la traduction automatique (Montréal, 1967-70), eut d'abord l’idée des systèmes-Q (1969), formés de règles de réécriture d’arbres, invoquées selon les besoins et utilisant l’unification. Ces systèmes furent à la base d’une chaîne de traduction anglais→français, puis de la rédaction du système Météo qui, au Canada, traduit chaque jour les bulletins météorologiques de l’anglais au français.

Après 1970, Colmerauer revenu à Marseille s’intéressa davantage à l’exploitation de textes qu’à leur traduction ; voulant utiliser la logique pour représenter la sémantique aussi bien que pour les raisonnements liés aux questions, il s’intéressa aux travaux de Robinson sur le principe de résolution.

Durant l’été 1971, Colmerauer et Kowalski comprirent que les formes propositionnelles pouvaient représenter des grammaires formelles et qu’un moteur d’inférence pouvait être utilisé pour l’analyse de textes, certains moteurs fournissant une analyse ascendante, et la résolution-SL de Kowalski une analyse descendante. L’été suivant, ils développèrent l’interprétation procédurale des implications, et établirent qu’on peut restreindre les clauses aux clauses de Horn, correspondant à des implications où antécédents et conséquent sont des énoncés atomiques.

A. Colmerauer et P. Roussel développèrent alors le langage Prolog comme outil permettant de décrire un monde en français, et permettant ensuite de répondre à des questions sur ce monde, Prolog servant aussi bien à l’analyse qu'à la synthèse en français et aux raisonnements permettant d'élaborer les réponses. Ce premier Prolog se diffusa rapidement. L’intérêt de Prolog pour l’interrogation en langue naturelle de bases de données déboucha sur un configurateur pour ordinateurs Solar (Télémécanique), dont dériveront divers systèmes d’interrogation en français, en anglais (Warren), en portugais (Pereira, Lisbonne), puis en allemand.

D'autres applications naquirent parallèlement : composition d'un repas diététique, calcul symbolique, organisation d'un voyage aérien

1976 vit un premier portage de Prolog sur micro-ordinateur.

En 1977, D. Warren développa à Édimbourg un compilateur Prolog, qui apporta à Prolog la performance qui lui manquait. Le Prolog d’Édimbourg, avec sa syntaxe particulière, devint ainsi un standard.

Développements

En 1982 sortit Prolog II, qui utilisait des systèmes d’équations plutôt que l’unification, et, surtout, permettait le traitement des arbres infinis.

À partir de 1987, Prolog III intégrait au niveau de l’unification : une représentation des arbres rationnels (éventuellement infinis), avec un traitement spécifique pour les listes ; un traitement complet de l’algèbre de Boole ; un traitement numérique portant sur l’addition, la multiplication par une constante et les relations usuelles.

En 1996, Prolog IV s’attaqua résolument au traitement des contraintes. Programmer par contraintes consiste à formuler un problème en termes d’inconnues soumises à une contrainte, énoncé du premier ordre faisant intervenir des opérations et des relations du domaine de calcul. Résoudre la contrainte, et par là le problème, consiste à trouver les valeurs à attribuer aux variables libres de la formule pour la rendre vraie, ce qui unifie la programmation logique et la programmation mathématique (au sens de la recherche opérationnelle). Au prix d’un moteur dix fois plus gros que pour Prolog II, Prolog IV traite un vaste jeu de contraintes, allant des contraintes sur les listes et les arbres aux contraintes numériques, en passant par les contraintes traitées par réduction des intervalles de valeur, s’appliquant aussi bien aux réels qu’aux entiers voire aux booléens.

Descendance

À partir de Prolog, furent développés par exemple Gödel, Oz, Mercury, Erlang ou Visual Prolog. λProlog abordait les logiques d'ordre supérieur. Outre datalog et divers langages de programmation logique sous contraintes, le projet japonais d'ordinateurs de 5e génération fut à l'origine de nombreux langages de programmation logique concurrente, tels que plus récemment CS Prolog ou Actor Prolog.

Langages de programmation logique

Voir aussi

Read other articles:

Deep-water seaport in Sindh, Pakistan Port of KarachiClick on the map for a fullscreen viewLocationCountry PakistanLocationKarachi, Pakistan, north shore of Arabian SeaCoordinates24°50′06″N 66°58′55″E / 24.835°N 66.982°E / 24.835; 66.982UN/LOCODEPKKHI[1]DetailsOpened1857Operated byKarachi Port TrustOwned byMinistry of Ports and Shipping, Government of PakistanType of harbourNaturalSize of harbour32 km (20 mi)No. of berths41[2]No.…

Historic house in Illinois, United States United States historic placeRonald Reagan Boyhood HomeU.S. National Register of Historic Places Show map of IllinoisShow map of the United StatesLocation816 S. Hennepin Ave., Dixon, IllinoisCoordinates41°50′10″N 89°28′50.6″W / 41.83611°N 89.480722°W / 41.83611; -89.480722Arealess than one acreBuilt1891Architectural styleQueen AnneNRHP reference No.82002580[1]Added to NRHPMarch 26, 1982 The Ronald…

American journalist and author Hoda redirects here. For other uses, see Hoda (disambiguation). Hoda Kotbهدى قطبKotb in 2022Born (1964-08-09) August 9, 1964 (age 59)Norman, Oklahoma, U.S.CitizenshipUnited StatesEgyptEducationVirginia Tech (BA)Years active1986–presentEmployerNBC NewsKnown forCo-anchor of the Today show (2018–present) Co-anchor of the fourth hour of the Today show (2008–present) Dateline NBC correspondent (1998–present)Spouse Burzis Kanga ​ &#…

Lambang VatikanDetailPemangkuPausPerisaiDasar perisai berwarna merah, dua kunci bersilangan emas dan perak, dimahkotai makhota emas susun tiga berpuncak salib Yesus Kristus Lambang Vatikan adalah lambang Tahta Suci Vatikan yang sekaligus menjadi lambang Paus, pemimpin iman Katolik. Lambang ini berbentuk blason (perisai) merah dengan dua kunci bersilangan; kunci emas dan kunci perak. Di atas dua kunci yang bersilangan terdapat tiara emas bersusun tiga yaitu mahkota Paus. Simbolisme Dua kunci yang…

Multi-purpose stadium in South Korea Daegu StadiumThe Blue ArcInterior view of the stadiumFull nameDaegu StadiumFormer namesDaegu World Cup StadiumLocation504, Daeheung-dong, Suseong-gu, Daegu, South KoreaOwnerDaegu Metropolitan CityOperatorDaegu Sports Facilities Management CenterCapacity66,422Field size105 x 68 m (running track: 400 m x 8 lane, 100 m x 9 lane)SurfaceGrass, Tartan trackConstructionBroke groundJuly 29, 1997; 26 years ago (1997-07-29)OpenedJune 28, 2001;…

Pour les articles homonymes, voir Colas. Cet article est une ébauche concernant un coureur cycliste français. Vous pouvez partager vos connaissances en l’améliorant (comment ?). Pour plus d’informations, voyez le projet cyclisme. Fabrice ColasInformationsNaissance 21 juillet 1964 (59 ans)Rueil-MalmaisonNationalité françaisemodifier - modifier le code - modifier Wikidata Fabrice Colas est un coureur cycliste sur piste français né le 21 juillet 1964 à Rueil-Malmaison. Biograp…

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)[2…

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها.Learn how and when to remove this message يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزال…

Lemuel dan ibunya Lemuel (Ibrani: לְמוּאֵל Ləmû’ēl) adalah nama dari seorang raja yang disebutkan dalam Amsal 31:1 dan 4, namun identitasnya masih tak jelas.[1] Spekulasi menyatakan bahwa Lemuel adalah Hezekiah, Salomo, seorang raja Massa, atau fiksi.[2] Referensi ^  Herbermann, Charles, ed. (1913). Lemuel. Catholic Encyclopedia. New York: Robert Appleton Company.  ^ Reagan, David (2018). King Lemuel (dalam bahasa Inggris). Learn the Bible. Diakses tang…

2019冠狀病毒病广州市疫情可以指: 2021年廣州市2019冠狀病毒病聚集性疫情 2022年4月广州市2019冠状病毒病聚集性疫情 2022年4-5月广州市2019冠状病毒病聚集性疫情 2022年8-9月广州市2019冠状病毒病聚集性疫情 2022年10-12月广州市2019冠状病毒病聚集性疫情 这是一个消歧义页,羅列了有相同或相近的标题,但內容不同的条目。如果您是通过某條目的内部链接而转到本页,希望您能協…

Kepolisian Daerah Sulawesi UtaraSingkatanPolda SulutMottoMaesa'an WayaYurisdiksi hukumProvinsi Sulawesi UtaraMarkas besarKota ManadoPejabat eksekutifInspektur Jenderal Polisi Yudhiawan Wibisono, KepalaBrigadir Jenderal Polisi Bahagia Dachi, Wakil KepalaSitus webpolda-sulut.id Kepolisian Daerah Sulawesi Utara atau Polda Sulut (dulu bernama Komando Daerah Kepolisian (Komdak atau Kodak) XIX/Sulawesi Utara dan Tengah, kemudian menjadi Polda Sulutteng pada 1984-1996) adalah pelaksana tugas Kepolisian…

2004 Betta Electrical Sandown 500Event InformationRound 9 of 13 in the 2004 V8 Supercar Championship SeriesDate10–12 September 2004LocationMelbourne, VictoriaVenueSandown International RacewayWeatherFineResultsRace 1Distance 160 laps 496 kmPole position Rick KellyKmart Racing Team 1:22.1422Winner Marcos AmbroseGreg RitterStone Brothers Racing 3:41:03.1307Round ResultsFirst Marcos AmbroseGreg RitterStone Brothers Racing 192 ptsSecond Russell IngallCameron McLeanStone Brothers Racing 188 ptsThir…

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (نوفمبر 2019) دوري السوبر الألباني 1972–73 تفاصيل الموسم دوري السوبر الألباني  النسخة 34  البلد ألبانيا  التاريخ بد…

Ice hockey team in Baton Rouge, LABaton Rouge KingfishCityBaton Rouge, LALeagueECHLFounded1988Operated1996–2003Home arenaRiverside CentroplexHead coachLuke St. PeFranchise history1988–1995Erie Panthers1996–2003Baton Rouge Kingfish2004–2011Victoria Salmon Kings The Baton Rouge Kingfish were a minor professional ice hockey team in Baton Rouge, Louisiana, as a member of the East Coast Hockey League.[1][2] The franchise arrived in Baton Rouge in 1996 after relocating from Eri…

American long-distance runner Maegan Krifchin of the USA at the 2012 World Half Marathon Championships in Kavarna, Bulgaria Maegan Krifchin is an American long distance runner from Long Island, New York.[1] She was a high school All-American in the 800 meters.[2] In college, she ran track and cross country for Syracuse University.[3] She finished 13th overall, and was the top finishing American, at the 2012 IAAF World Half Marathon Championships.[4] In 2015 she wo…

Questa voce o sezione sull'argomento sportivi è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. Aldo NadiNazionalità Italia Altezza183 cm P…

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (مارس 2022) بانزر فاوست 3   النوع قذيفة صاروخية الدفع  بلد الأصل ألمانيا الغربية  فترة الاستخدام بداية:1992  الكمية المصنوعة 261718   تعديل مصدري - تعديل   بانزر فا…

Troc au marché de Togoville (farine contre légumes), en 2022. Le troc est l'opération économique par laquelle chaque participant cède la propriété d'un bien (ou un groupe de biens) et reçoit un autre bien. Le troc fait partie du commerce de compensation avec l'échange de services au pair[1]. Il peut intervenir dans le commerce intérieur mais surtout dans les échanges internationaux, lorsqu'un pays ne dispose pas d'une devise convertible. Les crises monétaires donnent toujours un rôl…

German courtier Maria Caroline Charlotte von Ingenheim Baroness Maria Caroline Charlotte von Ingenheim, Countess von Spreti (1704–1749), was a German courtier and the royal mistress of Charles VII, Holy Roman Emperor, from 1719–1723. Life Baroness Maria Caroline Charlotte von Ingenheim was daughter of Baron Daniel von Ingenheim, Seigneur de Lorry (1666–1723) and his wife Princess Maria Anna Johanna von Hessen-Wanfried (1685–1764). In 1723 she married Count Franz Johann Hieronymus Innozen…

Un filtre en peigne est utilisé en traitement du signal pour ajouter une version retardée du signal à lui-même, provoquant des interférences destructives ou constructives. La réponse en fréquence du filtre se présente sous la forme d'une série de pics régulièrement espacés, d'où le nom de « filtre en peigne ». Le facteur de qualité équivalent (la pente du filtre) est extrêmement important. Les filtres en peigne existent sous deux formes utilisant soit l'anticipation s…