Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy's [1958] advice-taker proposal, logic is used as a purely declarative representation language, and a theorem-prover or model-generator is used as the problem-solver.

PropertyValue
dbpprop:abstract
  • Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy's [1958] advice-taker proposal, logic is used as a purely declarative representation language, and a theorem-prover or model-generator is used as the problem-solver. The problem-solving task is split between the programmer, who is responsible only for ensuring the truth of programs expressed in logical form, and the theorem-prover or model-generator, which is responsible for solving problems efficiently. However, logic programming, in the narrower sense in which it is more commonly understood, is the use of logic as both a declarative and procedural representation language. It is based upon the fact that a backwards reasoning theorem-prover applied to declarative sentences in the form of implications: If B1 and … and Bn then H treats the implications as goal-reduction procedures: to show/solve H, show/solve B1 and … and Bn. For example, it treats the implication: If you press the alarm signal button, then you alert the driver of the train of a possible emergency as the procedure: To alert the driver of the train of a possible emergency, press the alarm signal button. Note that this is consistent with the BHK interpretation of constructivist logic, where implication would be interpreted as a solution of problem H given solutions of B1 … Bn. However, the defining feature of logic programming is that sets of formulas can be regarded as programs and proof search can be given a computational meaning. This is achieved by restricting the underlying logic to a "well-behaved" fragment such as Horn clauses or Hereditary Harrop formulas. See D. Miller et al. , 1991. As in the purely declarative case, the programmer is responsible for ensuring the truth of programs. But since automated proof search is generally infeasible, logic programming as commonly understood also relies on the programmer to ensure that inferences are generated efficiently. In many cases, to achieve efficiency, one needs to be aware of and to exploit the problem-solving behavior of the theorem-prover. In this respect, logic programming is comparable to conventional imperative programming; using programs to control the behaviour of a program executor. However, unlike conventional imperative programs, which have only a procedural interpretation, logic programs also have a declarative, logical interpretation, which helps to ensure their correctness. Moreover, such programs, being declarative, are at a higher conceptual level than purely imperative programs; and their program executors, being theorem-provers, operate at a higher conceptual level than conventional compilers and interpreters.
  • 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 reine Ansammlung von Fakten oder Annahmen zu verstehen sind. 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 Programiersprachen 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 idealerweise nur beschrieben, was gilt. Das Wie ist bereits durch die Lösungsmethode vorgegeben. Die Lösung wird aus den vorhandenen Regeln hergeleitet. Meistens wird schon nur eine Menge von Regeln als „Programm“ bezeichnet, wenn klar ist, welche Lösungsmethode dazugehört: Nämlich die (einzige) in der vom regelbasierten System bereitgestellten Inferenzmaschine verwirklichte. Die bekannteste logische Programmiersprache ist Prolog.
  • Logické programování je v širším významu použití matematické logiky jako prostředku pro programování. Jeho počátky můžeme vystopovat až k návrhu Johna McCarthse advice taker (rádce) [1958]. V tomto návrhu slouží logika pro čistě deklarativní reprezentaci jazyka a dokazovač vět (theorem-prover) nebo generátor modelů (model-generator) se používá jako řešitel problémů (problem-solver). Řešení problému se tak dělí mezi programátora (ručí za správnost programu vyjádřené v logické formě) a dokazovač vět nebo generátor modelů (odpovídá za efektivní řešení problému). Častěji se však logické programování chápe v užším smyslu, kdy se logika používá na deklarativní i procedurální reprezentaci jazyka. Vychází z faktu, že zpětně usuzující dokazovač vět (backwards reasoning theorem-prover) použitý na deklarativní větu ve tvaru implikace: B1 a … a Bn implies H zachází s touto implikací jako s cíl redukující (goal-reduction) procedurou. ukaž/vyřeš H, ukaž/vyřeš B1 a … a Bn. Programátor neručí pouze za správnost programu, ale i za jeho efektivitu. Často je pro dosažení efektivity nezbytné, aby se programátor seznámil se způsobem, jakým dokazovač vět řeší problém a uměl jej využívat. Tím, že logické programovaní používá program k řízení chování vykonavatele programu (program executor) se podobá tradičnímu imperativnímu programování. Od imperativních programů s pouze procedurální interpretací se však logické programy liší existencí deklarativní logické interpretace, která pomáhá zajistit jejich korektnost. Díky tomu, že jsou tyto programy deklarativní (tedy deklarují, co je vstupem a výstupem, a nezabývají se tím, jak výpočet probíhá), jsou na mnohem vyšší konceptuální úrovni než čistě imperativní programy, a jejich vykonavatelé, kteří jsou vlastně dokazovači vět, operují na konceptuálně vyšší úrovni než běžné překladače a interprety.
  • La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional. La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. 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.
  • Logiikkapohjainen ohjelmointikieli kuvaa maailman faktoina ja faktojen välisinä suhteina. Esimerkiksi "Ville on Kallen isä, Matti on Villen isä, X on Y:n poika, jos Y on X:n isä ja jälkeläinen on poika tai pojan jälkeläinen" kuvataan prolog-kielellä näin: isa(ville, kalle). isa(matti, ville). poika(X, Y) :- isa(Y, X). jalkelainen(X, Y) :- poika(X, Y). jalkelainen(X, Y) :- poika(X, Z), jalkelainen(Z, Y). Nyt kyselyssä "kuka on Matin jälkeläinen" todetaan ensin, että säännön 4 mukaan X on Matin jälkeläinen, jos X on Matin poika, ja säännön 3 mukaan X on Matin poika, jos Matti on X:n isä, ja säännön 2 mukaan Matti on Villen isä. Samalla tavoin Kalle todetaan Matin jälkeläiseksi käyttäen kaikkia viittä sääntöä. Ehdottomasti tunnetuin logiikkapohjainen ohjelmointikieli on edellä kuvattu prolog.
  • 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.
  • 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. 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.
  • 論理プログラミング(Logic Programming)とは、表明とゴールからパターンによる手続き呼び出しを行うプログラミング手法。ジョン・マッカーシー[1958]で初めて数理論理学をプログラミングに使用することが提案された。最初の論理プログラミング言語は Planner であり、表明とゴールからパターンによる手続き的計画を呼び出す機能を備えていた。当時のメモリの少ないシステムで動作させるため Planner はバックトラッキング制御構造を使っており、一度に1つの計算経路だけを格納しなければならなかった。その後、Planner を単純化した Prolog が開発された。これはゴールからのみパターンによる呼び出しを行う(バックトラッキングも行う)。Planner からの派生で、プログラミング言語 QA-4、Popler、Conniver、QLISP が開発された。Prolog からの派生言語としては、Mercury、Visual Prolog、Oz、Fril がある。バックトラッキングを使用しない並行論理プログラミング言語も Planner からの派生(Ether)と Prolog からの派生(Shapiro [1989] に調査結果がある)がある。
  • 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 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. Je kan je bijvoorbeeld voorstellen dat de volgende feiten aan de interpreter bekend zijn: Katten hebben een vacht Een vacht bestaat uit haren De interpreter moet dan antwoord kunnen geven op de vraag "Hebben katten haren?". Een voorbeeld van een functionele en logische programmeertaal is Curry.
  • Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) to będąca odmianą programowania deklaratywnego metoda programowania, 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,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.
  • 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).
  • Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций. Самым известным языком логического программирования является Prolog. Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner. От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril произошли уже от языка Prolog. На базе языка Planner было разработано также несколько альтернативных языков логического программирования, не основанных на методе backtracking, например, Ether (см. обзор Шапиро).
  • Logikprogrammering är ett programmeringsparadigm baserat på att bevis av predikatlogiska satser på vissa former kan automatiseras, vilket upptäcktes av Alan Robinson på 1960-talet. Logikprogrammering är deklarativ, programmeraren anger vad som ska göras inte hur. Ett logikprogram består av en formulering av problemet man vill ha löst på en predikatlogisk form. Sen är det upp till en interpretator att bevisa satsen/programmet. Deklarativiteten är en av fördelarna med logikprogrammering, en annan (som blir mer och mer aktuell) är att bevis av predikatlogiska satser kan parallelliseras automatiskt. Det är av stort intresse för att på ett enkelt sätt kunna skriva effektiva program för datorer med flera processorer eller processorkärnor, vilket har visat sig svårt med imperativ programmering. Bland nackdelarna märks att logikprogram är ineffektiva på enprocessorsmaskiner, samt att logikprogrammering är svårt att lära sig för den som saknar kunskap om predikatlogik. Det första praktiskt användbara logikprogrammeringsspråket, och fortfarande det mest spridda, är Prolog. Logikprogrammering var som mest uppmärksammad på 1980-talet, ofta i samband med artificiell intelligens. Bland svenska forskare som gjort insatser inom logikprogrammering kan nämnas Sten-Åke Tärnlund, Jonas Barklund, Sverker Janson, Seif Haridi och Håkan Millroth.
  • Логі́чне програмува́ння — парадигма програмування, а також розділ дискретної математики, що вивчає методи і можливості цієї парадигми, засновані на виведенні нових фактів з даних фактів згідно заданим логічним правилам. Логічне програмування засноване на теорії математичної логіки. Найвідомішою мовою логічного програмування є Prolog, що є за своєю суттю універсальною машиною виводу, що працює в припущенні замкнутості системи фактів. Першою мовою логічного програмування була мова Planner, в якій була закладена можливість автоматичного виведення результату з даних і заданих правил перебору варіантів (сукупність яких називалася планом). Planner використовувався для того, щоб знизити вимоги до обчислювальних ресурсів (за допомогою методу backtracking) і забезпечити можливість виведення фактів, без активного використання стека. Потім була розроблена мова Prolog, яка не вимагала плану перебору варіантів і була, в цьому смислі, спрощенням мови Planner. Від мови Planner також відбулися логічні мови програмування QA-4, Popler, Conniver, і QLISP. Мови програмування Mercury, Visual Prolog, Oz і Fril будувалися вже від мови Prolog. На базі мови Planner було розроблене також декілька альтернативних мов логічного програмування, не заснованих на методі backtracking, наприклад, Ether (див. огляд Шапіро).
  • 邏輯編程是種編程典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題。過程是 事實+規則=結果。 不同的方法,可以看Inductive logic programming。 邏輯編程的要點是將正規的邏輯風格帶入電腦程式設計之中。數學家和哲學家發現邏輯是有效的理論分析工具。很多問題可以自然地表示成一個理論。說需要解答一個問題,通常與解答一個新的假設是否跟現在的理論無衝突等價。邏輯提供了一個證明問題是真還是假的方法。建立證明的方法是人所皆知的,故邏輯是解答問題的可靠方法。邏輯編程系統則自動化了這個程序。人工智能在邏輯編程的發展中發揮了重要的影響。 猴子和香蕉問題是邏輯編程社群的著名問題。電腦須自行找出令猴子接觸香蕉的可行方法,取代程式設計師指定猴子接觸香蕉的路徑和方法。 邏輯編程建立了描述一個問題裏的世界的邏輯模型。邏輯編程的目標是對它的模型建立新的陳述。世界上知識不斷澎漲。傳統來說,我們會將一個問題陳述成單一的假設。邏輯編程的程式透過證明這個假設在模型裏是否為真來解決問題。 一些經常用到邏輯編程工具的範疇: 專家系統,程式從一個巨大的模型中產生一個建議或答案。 自動化證明定理,程式產生一些新定理來擴充現有的理論。 最常用的邏輯編程語言是Prolog,另外有較適用於大型方案的Mercury。詳盡的清單可見於Category:邏輯編程語言。
dbpprop:hasPhotoCollection
dbpprop:reference
rdfs:comment
  • Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy's [1958] advice-taker proposal, logic is used as a purely declarative representation language, and a theorem-prover or model-generator is used as the problem-solver.
  • 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 reine Ansammlung von Fakten oder Annahmen zu verstehen sind. Stellt der Benutzer eines Logik-Programms eine Anfrage, so versucht der Interpreter die Lösungsaussage allein aus den Axiomen zu berechnen.
  • Logické programování je v širším významu použití matematické logiky jako prostředku pro programování. Jeho počátky můžeme vystopovat až k návrhu Johna McCarthse advice taker (rádce) [1958]. V tomto návrhu slouží logika pro čistě deklarativní reprezentaci jazyka a dokazovač vět (theorem-prover) nebo generátor modelů (model-generator) se používá jako řešitel problémů (problem-solver).
  • La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional. La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos.
  • Logiikkapohjainen ohjelmointikieli kuvaa maailman faktoina ja faktojen välisinä suhteina. Esimerkiksi "Ville on Kallen isä, Matti on Villen isä, X on Y:n poika, jos Y on X:n isä ja jälkeläinen on poika tai pojan jälkeläinen" kuvataan prolog-kielellä näin: isa(ville, kalle). isa(matti, ville). poika(X, Y) :- isa(Y, X). jalkelainen(X, Y) :- poika(X, Y). jalkelainen(X, Y) :- poika(X, Z), jalkelainen(Z, Y).
  • 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.
  • 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. Il meccanismo principale per elaborare teorie logiche fatte di clausole è l'unificazione.
  • 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 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.
  • Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) to będąca odmianą programowania deklaratywnego metoda programowania, 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).
  • 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.
  • Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода.
  • Logikprogrammering är ett programmeringsparadigm baserat på att bevis av predikatlogiska satser på vissa former kan automatiseras, vilket upptäcktes av Alan Robinson på 1960-talet. Logikprogrammering är deklarativ, programmeraren anger vad som ska göras inte hur. Ett logikprogram består av en formulering av problemet man vill ha löst på en predikatlogisk form. Sen är det upp till en interpretator att bevisa satsen/programmet.
  • Логі́чне програмува́ння — парадигма програмування, а також розділ дискретної математики, що вивчає методи і можливості цієї парадигми, засновані на виведенні нових фактів з даних фактів згідно заданим логічним правилам.
rdfs:label
  • Logic programming
  • Logische Programmierung
  • Logické programování
  • Programación lógica
  • Logiikkapohjainen ohjelmointikieli
  • Programmation logique
  • Programmazione logica
  • 論理プログラミング
  • Logisch programmeren
  • Programowanie logiczne
  • Programação lógica
  • Логическое программирование
  • Logikprogrammering
  • Логічне програмування
  • 邏輯編程
owl:sameAs
skos:subject
foaf:page
is dbpedia-owl:Person/knownFor of
is dbpedia-owl:knownFor of
is dbpprop:influencedBy of
is dbpprop:knownFor of
is dbpprop:paradigm of
is dbpprop:redirect of