Logic programming is a programming paradigm based on formal logic. A program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, Answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H. to solve H, solve B1, and ... and solve Bn. Consider, for example, the following clause: fallible(X) :- human(X). human(socrates).

Property Value
dbo:abstract
  • Logic programming is a programming paradigm based on formal logic. A program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, Answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H is called the head of the rule and B1, …, Bn is called the body. Facts are rules that have no body, and are written in the simplified form: H. In the simplest case in which H, B1, …, Bn are all atomic formulae, these clauses are called definite clauses or Horn clauses. However, there exist many extensions of this simple case, the most important one being the case in which conditions in the body of a clause can also be negations of atomic formulae. Logic programming languages that include this extension have the knowledge representation capabilities of a non-monotonic logic. In ASP and Datalog, logic programs have only a declarative reading, and their execution is performed by means of a proof procedure or model generator whose behaviour is not meant to be under the control of the programmer. However, in the Prolog family of languages, logic programs also have a procedural interpretation as goal-reduction procedures: to solve H, solve B1, and ... and solve Bn. Consider, for example, the following clause: fallible(X) :- human(X). based on an example used by Terry Winograd to illustrate the programming language Planner. As a clause in a logic program, it can be used both as a procedure to test whether X is fallible by testing whether X is human, and as a procedure to find an X that is fallible by finding an X that is human. Even facts have a procedural interpretation. For example, the clause: human(socrates). can be used both as a procedure to show that socrates is human, and as a procedure to find an X that is human by "assigning" socrates to X. The declarative reading of logic programs can be used by a programmer to verify their correctness. Moreover, logic-based program transformation techniques can also be used to transform logic programs into logically equivalent programs that are more efficient. In the Prolog family of logic programming languages, the programmer can also use the known problem-solving behaviour of the execution mechanism to improve the efficiency of programs. (en)
  • البرمجة المنطقية Logic programming هي بمفهومها العام استعمال المنطق الرياضي من اجل برمجة الحاسب. يستعمل المنطق لغة تصريحية للتعبير عن المشكلة. خلاف الكثير من لغات البرمجة التقليدية فإن المبرمج في البرمجة المنطقية لا يقوم بحل المشكلة بشكل كامل وانم يقع على عاتقه مسؤولية جزئية في حل المشكلة وهي بتمثل القضايا والمعارف بصفة منطقية logical form. ويقع الجزء الآخر لحل المشكلة على ما يدعى مبرهن القضايا theorem-prover أو مولد النماذج model-generator الذي يقوم بحل المشكلة بشكل فعال (ar)
  • La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación con restricciones, programas DSL (de dominio específico) e híbridos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La programación lógica gira en torno al concepto de predicado, o relación entre elementos. (es)
  • Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik-Programm nicht aus einer Folge von Anweisungen, sondern aus einer Menge von Axiomen, welche hier als eine Ansammlung von Fakten oder Annahmen zu verstehen ist. Stellt der Benutzer eines Logik-Programms eine Anfrage, so versucht der Interpreter, die Lösungsaussage allein aus den Axiomen zu berechnen. Dazu werden eine Menge von so genannten Regeln und Anweisungen, die der Syntax gemäß aufgebaut sind zusammen mit der Information, welche Lösungsmethode vorgesehen ist, in den Programmcode eingefügt. Logische Programmiersprachen gehören zu den deklarativen Programmiersprachen und haben ihre Ursprünge im Forschungsgebiet Künstliche Intelligenz. In einem imperativen Programm wird genau beschrieben, wie und in welcher Reihenfolge ein Problem zu lösen ist. Im Gegensatz dazu wird in einem logikbasierten Programm beschrieben, was gilt. Das Wie ist durch die Lösungsmethode vorgegeben. Die Lösung wird aus den Regeln hergeleitet. Die bekannteste logische Programmiersprache ist Prolog. (de)
  • La programmation logique est une forme de programmation qui définit les applications à l'aide d'un ensemble de faits élémentaires les concernant et de règles de logique leur associant des conséquences plus ou moins directes. Ces faits et ces règles sont exploités par un démonstrateur de théorème ou moteur d'inférence, 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. (fr)
  • In informatica la programmazione logica è un paradigma di programmazione che adotta la logica del primo ordine sia per rappresentare sia per elaborare l'informazione. In particolare viene adottato il frammento della logica a clausole di Horn che rappresenta la base teorica su cui sono costruiti i linguaggi di programmazione afferenti al paradigma logico e in particolare il Prolog, o suoi sottolinguaggi, come Datalog o AnsProlog. Il meccanismo principale per elaborare teorie logiche fatte di clausole è l'unificazione. Fra le estensioni della programmazione logica sono la Programmazione logica induttiva e la Programmazione logica abduttiva. (it)
  • Logisch programmeren is een vorm van programmeren die valt onder het declaratieve paradigma. Een veelgebruikte logische programmeertaal is Prolog. Ook SQL is een declaratieve taal.Logische talen vinden vooral toepassing in de computationele taalkunde en de kunstmatige intelligentie. Inductief logisch programmeren is een andere vorm van logisch programmeren. In een deductieve logische programmeertaal valt het redeneerproces schematisch weer te geven als feiten + regels = resultaten. De compiler/interpreter is op de hoogte van een aantal feiten, en probeert aan de hand van regels een antwoord te geven op een vraag die aan hem wordt gesteld. Voorbeelden van feiten die voor de interpreter bekend kunnen zijn: * Katten hebben een vacht * Een vacht bestaat uit haren De interpreter moet in dit geval antwoord kunnen geven op de vraag "Hebben katten haren?". Een voorbeeld van een functionele en logische programmeertaal is Curry. (nl)
  • 論理プログラミング(Logic Programming)とは、広い意味では、コンピュータプログラミングでの数理論理学の使用である。この観点での論理プログラミングは、ジョン・マッカーシー[1958]のadvice takerの提案にまでさかのぼることができる。より一般的に受け入られている狭い意味での論理プログラミングは、述語論理式を非決定的なプログラミング言語とみなすもので、述語論理式は宣言的であると同時に手続き的にも解釈される。 論理をベースにしたプログラミング言語として1971年に Planner のサブセットである Micro-Planner が開発された。表明とゴールからパターンによる手続き的計画を呼び出す機能を備えていたが、十分に形式化されていなかった。Plannerと独立してより論理を重視した Prolog が開発され、コワルスキーにより述語論理式(ホーン節)のプログラム的解釈の考え方と結び付き、論理プログラミングの基本的な考え方が確立した。Planner からの派生で、プログラミング言語 Poplerが開発された。Prolog からの派生言語としては、Mercury、Visual Prolog、Oz、Fril などがある。バックトラッキングを使用しない並行論理プログラミング言語としてProlog からの派生したConcurrent Prolog、PARLOG、GHC、KL1などの各種言語(Shapiro [1989] に調査結果がある)がある。 (ja)
  • Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) - metoda programowania, będąca odmianą programowania deklaratywnego, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności. Na przykład chcemy stwierdzić, czy w danym grafie skierowanym istnieje ścieżka z pewnego punktu do pewnego innego punktu. Krawędzie zapisane są relacją edge(Skąd, Dokąd). Nasz program wyglądałby w Prologu tak: connected(X, Y) :- X = Y.connected(X, Y) :- edge(X,Y).connected(X, Y) :- edge(X,Z), connected(Z, Y). Co czytamy następująco: * istnieje ścieżka z X do Y, jeśli X = Y * istnieje ścieżka z X do Y, jeśli dla jakiegoś Z istnieje krawędź z X do Z, oraz ścieżka z Z do Y Programowanie logiczne umożliwia łatwy zapis wielu algorytmów, a programy logiczne w przeciwieństwie do imperatywnych łatwo też wykonywać równolegle. (pl)
  • Programação lógica é um paradigma de programação que faz uso da lógica matemática. John McCarthy [1958] foi o primeiro a publicar uma proposta de uso da lógica matemática para programação. A primeira linguagem de programação lógica foi a Planner, a qual permitia a invocação orientada a padrões de planos procedimentais de asserções e de objetivos. Com a necessidade de adaptação aos sistemas de memória muito limitada, que eram disponíveis quando ela foi desenvolvida. A linguagem Planner usava estruturas de controle de backtracking, de tal forma que apenas um único caminho computacional tinha que ser armazenado por vez. Em seguida, o Prolog foi desenvolvido como uma simplificação do Planner que permitia a invocação orientada a padrões apenas a partir de objetivos (também baseado em backtracking). A partir do Planner, foram desenvolvidas as linguagens de programação QA-4, Popler, Conniver, e QLISP. As linguagens de programação Mercury, Visual Prolog, Oz e Frill, foram desenvolvidas a partir do Prolog. Atualmente existem linguagens de programação lógica concorrente (não baseadas em backtracking) derivadas do Planner (por exemplo, a Ether) e derivadas do Prolog (ver Shapiro 1989 para um apanhado geral). (pt)
  • Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций. Самым известным языком логического программирования является Prolog. Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью бэктрекинга — поиска с возвратом) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner. От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril произошли уже от языка Prolog. На базе языка Planner было разработано также несколько альтернативных языков логического программирования, не основанных на методе поиска с возвратами), например, Ether). (ru)
  • 邏輯編程(逻辑程序设计)是種編程典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題。過程是 事實+規則=結果。 不同的方法,可以看Inductive logic programming。 邏輯編程的要點是將正規的邏輯風格帶入電腦程式設計之中。數學家和哲學家發現邏輯是有效的理論分析工具。很多問題可以自然地表示成一個理論。說需要解答一個問題,通常與解答一個新的假設是否跟現在的理論無衝突等價。邏輯提供了一個證明問題是真還是假的方法。建立證明的方法是人所皆知的,故邏輯是解答問題的可靠方法。邏輯編程系統則自動化了這個程序。人工智能在邏輯編程的發展中發揮了重要的影響。 猴子和香蕉問題是邏輯編程社群的著名問題。電腦須自行找出令猴子接觸香蕉的可行方法,取代程式設計師指定猴子接觸香蕉的路徑和方法。 邏輯編程建立了描述一個問題裏的世界的邏輯模型。邏輯編程的目標是對它的模型建立新的陳述。世界上知識不斷澎漲。傳統來說,我們會將一個問題陳述成單一的假設。邏輯編程的程式透過證明這個假設在模型裏是否為真來解決問題。 一些經常用到邏輯編程工具的範疇: * 專家系統,程式從一個巨大的模型中產生一個建議或答案。 * 自動化證明定理,程式產生一些新定理來擴充現有的理論。 最常用的邏輯編程語言是Prolog,另外有較適用於大型方案的Mercury。詳盡的清單可見於Category:邏輯編程語言。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 17927 (xsd:integer)
dbo:wikiPageRevisionID
  • 744252214 (xsd:integer)
dct:subject
http://purl.org/linguistics/gold/hypernym
rdf:type
rdfs:comment
  • البرمجة المنطقية Logic programming هي بمفهومها العام استعمال المنطق الرياضي من اجل برمجة الحاسب. يستعمل المنطق لغة تصريحية للتعبير عن المشكلة. خلاف الكثير من لغات البرمجة التقليدية فإن المبرمج في البرمجة المنطقية لا يقوم بحل المشكلة بشكل كامل وانم يقع على عاتقه مسؤولية جزئية في حل المشكلة وهي بتمثل القضايا والمعارف بصفة منطقية logical form. ويقع الجزء الآخر لحل المشكلة على ما يدعى مبرهن القضايا theorem-prover أو مولد النماذج model-generator الذي يقوم بحل المشكلة بشكل فعال (ar)
  • La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación con restricciones, programas DSL (de dominio específico) e híbridos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La programación lógica gira en torno al concepto de predicado, o relación entre elementos. (es)
  • 邏輯編程(逻辑程序设计)是種編程典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題。過程是 事實+規則=結果。 不同的方法,可以看Inductive logic programming。 邏輯編程的要點是將正規的邏輯風格帶入電腦程式設計之中。數學家和哲學家發現邏輯是有效的理論分析工具。很多問題可以自然地表示成一個理論。說需要解答一個問題,通常與解答一個新的假設是否跟現在的理論無衝突等價。邏輯提供了一個證明問題是真還是假的方法。建立證明的方法是人所皆知的,故邏輯是解答問題的可靠方法。邏輯編程系統則自動化了這個程序。人工智能在邏輯編程的發展中發揮了重要的影響。 猴子和香蕉問題是邏輯編程社群的著名問題。電腦須自行找出令猴子接觸香蕉的可行方法,取代程式設計師指定猴子接觸香蕉的路徑和方法。 邏輯編程建立了描述一個問題裏的世界的邏輯模型。邏輯編程的目標是對它的模型建立新的陳述。世界上知識不斷澎漲。傳統來說,我們會將一個問題陳述成單一的假設。邏輯編程的程式透過證明這個假設在模型裏是否為真來解決問題。 一些經常用到邏輯編程工具的範疇: * 專家系統,程式從一個巨大的模型中產生一個建議或答案。 * 自動化證明定理,程式產生一些新定理來擴充現有的理論。 最常用的邏輯編程語言是Prolog,另外有較適用於大型方案的Mercury。詳盡的清單可見於Category:邏輯編程語言。 (zh)
  • Logic programming is a programming paradigm based on formal logic. A program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, Answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H. to solve H, solve B1, and ... and solve Bn. Consider, for example, the following clause: fallible(X) :- human(X). human(socrates). (en)
  • Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik-Programm nicht aus einer Folge von Anweisungen, sondern aus einer Menge von Axiomen, welche hier als eine Ansammlung von Fakten oder Annahmen zu verstehen ist. Stellt der Benutzer eines Logik-Programms eine Anfrage, so versucht der Interpreter, die Lösungsaussage allein aus den Axiomen zu berechnen. Die bekannteste logische Programmiersprache ist Prolog. (de)
  • La programmation logique est une forme de programmation qui définit les applications à l'aide d'un ensemble de faits élémentaires les concernant et de règles de logique leur associant des conséquences plus ou moins directes. Ces faits et ces règles sont exploités par un démonstrateur de théorème ou moteur d'inférence, en réaction à une question ou requête. (fr)
  • In informatica la programmazione logica è un paradigma di programmazione che adotta la logica del primo ordine sia per rappresentare sia per elaborare l'informazione. In particolare viene adottato il frammento della logica a clausole di Horn che rappresenta la base teorica su cui sono costruiti i linguaggi di programmazione afferenti al paradigma logico e in particolare il Prolog, o suoi sottolinguaggi, come Datalog o AnsProlog. Il meccanismo principale per elaborare teorie logiche fatte di clausole è l'unificazione. (it)
  • 論理プログラミング(Logic Programming)とは、広い意味では、コンピュータプログラミングでの数理論理学の使用である。この観点での論理プログラミングは、ジョン・マッカーシー[1958]のadvice takerの提案にまでさかのぼることができる。より一般的に受け入られている狭い意味での論理プログラミングは、述語論理式を非決定的なプログラミング言語とみなすもので、述語論理式は宣言的であると同時に手続き的にも解釈される。 (ja)
  • Logisch programmeren is een vorm van programmeren die valt onder het declaratieve paradigma. Een veelgebruikte logische programmeertaal is Prolog. Ook SQL is een declaratieve taal.Logische talen vinden vooral toepassing in de computationele taalkunde en de kunstmatige intelligentie. Inductief logisch programmeren is een andere vorm van logisch programmeren. * Katten hebben een vacht * Een vacht bestaat uit haren De interpreter moet in dit geval antwoord kunnen geven op de vraag "Hebben katten haren?". Een voorbeeld van een functionele en logische programmeertaal is Curry. (nl)
  • Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) - metoda programowania, będąca odmianą programowania deklaratywnego, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności. Na przykład chcemy stwierdzić, czy w danym grafie skierowanym istnieje ścieżka z pewnego punktu do pewnego innego punktu. Krawędzie zapisane są relacją edge(Skąd, Dokąd). Nasz program wyglądałby w Prologu tak: Co czytamy następująco: (pl)
  • Programação lógica é um paradigma de programação que faz uso da lógica matemática. John McCarthy [1958] foi o primeiro a publicar uma proposta de uso da lógica matemática para programação. A primeira linguagem de programação lógica foi a Planner, a qual permitia a invocação orientada a padrões de planos procedimentais de asserções e de objetivos. Com a necessidade de adaptação aos sistemas de memória muito limitada, que eram disponíveis quando ela foi desenvolvida. A linguagem Planner usava estruturas de controle de backtracking, de tal forma que apenas um único caminho computacional tinha que ser armazenado por vez. Em seguida, o Prolog foi desenvolvido como uma simplificação do Planner que permitia a invocação orientada a padrões apenas a partir de objetivos (também baseado em backtracki (pt)
  • Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций. Самым известным языком логического программирования является Prolog. (ru)
rdfs:label
  • Logic programming (en)
  • برمجة منطقية (ar)
  • Logische Programmierung (de)
  • Programación lógica (es)
  • Programmation logique (fr)
  • Programmazione logica (it)
  • 論理プログラミング (ja)
  • Logisch programmeren (nl)
  • Programowanie logiczne (pl)
  • Programação lógica (pt)
  • Логическое программирование (ru)
  • 邏輯編程 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:field of
is dbo:genre of
is dbo:influencedBy of
is dbo:knownFor of
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbp:focus of
is dbp:paradigm of
is foaf:primaryTopic of