Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:pp:start [2021/03/30 16:33] ligeza [Programowanie w języku Prolog - wykłady 2020/2021] |
pl:dydaktyka:pp:start [2023/11/24 16:28] ligeza [Logic Programming 2023/2024-winter] |
| ====== Logic Programming 2023/2024-winter ====== |
| |
| - **Introduction to Logic Programming. Syllabus. Terms, Predicates, Clauses. Basic Examples.** [2.10.2023;ali] |
| - **Introduction to Prolog. 3 Core Mechanisms: Unification, Resolution, DFS Backtracking Search. Examples. Numbers generation. SEND+MORE=MONEY** [16.10.2023;ali] |
| - **<fc #ff00ff>E-Learning: 30.10.2023:</fc>** **Prolog: Lists and Data Structures** [[https://www.metalevel.at/prolog|Chapters 0,1,2,3 and especially 4]] Also lectures Prolog-3 and Prolog-4 on lists (links below) [30.10.2023;ali] |
| - **Prolog: Lists as Data Structures. Basic Operations on Lists. Advanced Operations on Lists. Recursion vs. Iteration.** [13.11.2023;ali] |
| - **Knowledge Engineering with Prolog. Meta-Programming in Prolog. Example Applications.** [27.11.2023;ali] |
| |
| |
| ---- |
| |
| [[https://www.metalevel.at/prolog|The Power of Prolog]] |
| |
| |
| |
| |
| |
====== Programowanie Logiczne ====== | ====== Programowanie Logiczne ====== |
| |
- **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Generacja termów: huge_tree. Unifikacja. Algorytm unifikacji termów. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja, strategia SLD. Struktury listowe - wprowadzenie. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania, nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami.** [23.03.2021; ALi] | - **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Generacja termów: huge_tree. Unifikacja. Algorytm unifikacji termów. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja, strategia SLD. Struktury listowe - wprowadzenie. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania, nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami.** [23.03.2021; ALi] |
- **Listy: Przykład: (Bridge and Torch). Pobieranie i wstawianie elementu do listy. Mechanizmy obliczeniowe: rekurencja, iteracja, nawroty. Struktury listowe: operacje na zbiorach i sekwencjach. Wybrane operacje na listach: 1-N, N-1, sumowanie, odwracanie; mechanizm akumulatora. Przykłady zaawansowanych definicji/zadania ze str. 14, wykład 3.** [30.03.2021; ALi] | - **Listy: Przykład: (Bridge and Torch). Pobieranie i wstawianie elementu do listy. Mechanizmy obliczeniowe: rekurencja, iteracja, nawroty. Struktury listowe: operacje na zbiorach i sekwencjach. Wybrane operacje na listach: 1-N, N-1, sumowanie, odwracanie; mechanizm akumulatora. Przykłady zaawansowanych definicji/zadania ze str. 14, wykład 3.** [30.03.2021; ALi] |
- Struktury listowe. Operacje na zbiorach - realizacja. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań ; Einstein). Listy-Tricks. Rekurencja a iteracje; pętle z fail. Pamięć globalna: assert/retract. [13.04.2021; ALi] | - **Struktury listowe. Operacje na zbiorach - realizacja. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań. Listy-Tricks. Rekurencja a iteracje; pętle z fail. Pamięć globalna: assert/retract.** [13.04.2021; ALi] |
- Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem: negacja (not), cut i fail. Wstęp do metaprogramowania. Przykłady metaprogramowania. [20.04.2021; ALi] | - **Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem: negacja (not), cut i fail. Wstęp do metaprogramowania. Przykłady metaprogramowania.** [20.04.2021; ALi] |
- Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne; Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ECLiPSe CLP. B-Prolog. Numberjack. ASP. [27.04.2021.04.2021; ALi] | - **Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne; Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ECLiPSe CLP. B-Prolog, GNU Prolog. MiniZinc; Numberjack. ASP. Picat. Problog. Logica (Google).** [27.04.2021.04.2021; ALi] |
| |
| |
* {{ :pl:dydaktyka:pp:prolog_2021-2.pdf |Prolog-2: Substitutions and Unification}} | * {{ :pl:dydaktyka:pp:prolog_2021-2.pdf |Prolog-2: Substitutions and Unification}} |
* {{ :pl:dydaktyka:pp:prolog_2021_3.pdf |Prolog-3: Lists in Prolog}} | * {{ :pl:dydaktyka:pp:prolog_2021_3.pdf |Prolog-3: Lists in Prolog}} |
| * {{ :pl:dydaktyka:pp:prolog_2021_4.pdf |Prolog-4: Lists: Advanced Operations}} |
| * {{ :pl:dydaktyka:pp:prolog_2021-5.pdf |Prolog-5: Knowledge Representation. Metapredicates. Not, cut, fail.}} |
| * {{ :pl:dydaktyka:pp:prolog_2021_6.pdf |Prolog-6: Metaprogramming. Example Applications.}} |
* {{ :pl:dydaktyka:pp:prolog-10-examples-2021.zip | Przykłady do wykładu 1}} | * {{ :pl:dydaktyka:pp:prolog-10-examples-2021.zip | Przykłady do wykładu 1}} |
* {{ :pl:dydaktyka:pp:prolog-11-20-examples-2021.zip |Przykłady do wykładu 2}} | * {{ :pl:dydaktyka:pp:prolog-11-20-examples-2021.zip |Przykłady do wykładu 2}} |
* {{ :pl:dydaktyka:pp:prolog-lists-2021.zip |Przykłady do wykładu 3}} | * {{ :pl:dydaktyka:pp:prolog-lists-2021.zip |Przykłady do wykładu 3}} |
* {{ :pl:dydaktyka:pp:prolog-lists-advanced-2021.zip |Przykłady do wykładu 4}} | * {{ :pl:dydaktyka:pp:prolog-lists-advanced-2021.zip |Przykłady do wykładu 4}} |
| * {{ :pl:dydaktyka:pp:prolog-esst-examples.zip |A Set of Examples: Essential Thinking}} |
| * {{ :pl:dydaktyka:pp:python-prolog.zip |Prolog vs. Python by few examples}} |
| * {{ :pl:dydaktyka:pp:prolog.zip |Yet another examples in Prolog - 2021}} |
| |
| ---- |
| * Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]] |
| * [[https://polydev.pl/2017/12/16/realne-zastosowania-jezyka-prolog/|Ciekawe zastosowania Prologu]] |
| * [[http://www.pathwayslms.com/swipltuts/html/|Web Applications in SWI-Prolog: A Tutorial]] |
| |
| |
| |
| ---- |
| Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności: |
| * A Prolog interpreter in JavaScript [[http://tau-prolog.org/|Tau-Prolog]] |
| * Answer Set Programming (ASP) [[https://potassco.org/|Potassco ASP]] |
| * B-Prolog + Constraints [[http://www.picat-lang.org/bprolog/|B-Prolog]] |
| * GNU Prolog + Constraints [[http://www.gprolog.org/|GNU Prolog]] |
| * The ECLiPSe Constraint Programming System [[http://www.eclipseclp.org/|ECLiPSe]] |
| * <fc #ff00ff>New: Picat</fc> [[http://www.picat-lang.org/|Picat]] |
| * SWI-Prolog - Packages + clp(fd) [[http://www.swi-prolog.org/|SWI-Prolog]] |
| * <fc #ff00ff>New: Problog</fc> [[https://dtai.cs.kuleuven.be/problog/|Problog]] |
| * <fc #9400d3>New: Logica - Open Source Project (by Google)</fc>: [[https://opensource.googleblog.com/2021/04/logica-organizing-your-data-queries.html]] |
| * <fc #9400d3>New: Logica - Modern Logic Programming Language </fc> [[https://logica.dev/]] |
| |
| Inne - do uzgodnienia. |
| |
| __Selected links:__ |
| |
| * Prolog [[https://en.wikipedia.org/wiki/Prolog|Prolog]] |
| * Prolog - Wikibooks: [[https://en.wikibooks.org/wiki/Prolog|Prolog]] |
| * Prolog - Books: [[http://freecomputerbooks.com/langPrologBooks.html|Free Books on Prolog]] |
| ---- |
| |
| __Useful pages: courses + tutorials + examples:__ |
| |
| * [[https://ktiml.mff.cuni.cz/~bartak/|Page of Roman Barták]] |
| * [[http://hakank.org/|The famous Hakank Page]] |
| * New: [[https://www.coursera.org/projects/prolog-for-beginners-fhqrd|Coursera: Prolog-for-beginners]] |
| * <fc #ff00ff>New:</fc> [[https://www.metalevel.at/prolog|The Power of Prolog - by Markus Triska (2005-2021)]] <fc #ff00ff>With numerous great live presentations on youtube! |
| |
| </fc> |
| |
| |
| |
| |
===== WYKŁADY: Programowanie w Logice (Prolog) ===== | ===== WYKŁADY: Programowanie w Logice (Prolog) ===== |
| |