Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:prolog:lab_prolog_ansic [2007/11/27 15:34]
kosmo
pl:prolog:lab_prolog_ansic [2019/06/27 15:50] (aktualna)
Linia 14: Linia 14:
  
 ====== Ćwiczenia ====== ====== Ćwiczenia ======
 +
 +
  
  
Linia 28: Linia 30:
       * Praktycznie wszystkie funkcje interfejsu Prolog <-> C SWI-Prologu zwracają wartość różną od 0 w przypadku powodzenia i zerową w przypadku błędu.       * Praktycznie wszystkie funkcje interfejsu Prolog <-> C SWI-Prologu zwracają wartość różną od 0 w przypadku powodzenia i zerową w przypadku błędu.
       * Nawet drobne błędy w użyciu API Prologu mogą zaowocować znaczącą destabilizacją całego programu bądź jego niewytłumaczalmnym działaniem. ​       * Nawet drobne błędy w użyciu API Prologu mogą zaowocować znaczącą destabilizacją całego programu bądź jego niewytłumaczalmnym działaniem. ​
-      * Programy należy kompilować przy pomocy załączonego pliku {{:​pl:​prolog:​prolog_lab:​Makefile-lab-ansic.txt|Makefile}}. Należy go skopiować pod nazwą //​Makefile//​ do katalogu, w którym będą ​zapisywane programy tworzone ​podczas tego ćwiczenia. Po wydaniu komendy //make// wszystkie pliki *.c zostaną skompilowane i skonsolidowane z Prologiem.+      * Programy ​w C należy kompilować przy pomocy załączonego pliku {{:​pl:​prolog:​prolog_lab:​Makefile-lab-ansic.txt|Makefile}}. Należy go skopiować pod nazwą //​Makefile//​ do katalogu, w którym będą ​źródła programów tworzonych ​podczas tego ćwiczenia. Po wydaniu komendy //make// wszystkie pliki *.c zostaną skompilowane i skonsolidowane z Prologiem.
  
   * Uruchamianie i zatrzymywanie SWI-Prologu:​   * Uruchamianie i zatrzymywanie SWI-Prologu:​
Linia 51: Linia 53:
   * **Zadanie:​**   * **Zadanie:​**
 Należy napisać program w C, który za pomocą predykatu //​[[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​consulting.html#​consult/​1|consult/​1]]//​ wczyta program w Prologu, a następnie wykona predykat z załadowanego pliku. Należy napisać program w C, który za pomocą predykatu //​[[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​consulting.html#​consult/​1|consult/​1]]//​ wczyta program w Prologu, a następnie wykona predykat z załadowanego pliku.
 +
  
  
Linia 59: Linia 62:
  
   *  **Zadanie:​**   *  **Zadanie:​**
-Należy napisać w języku C predykat przyjmujący jako argument tekst, który zostanie wypisany na ekranie w ozdobych nawiasach (''​-=[ ]=-""​), a następnie przetestować jego działanie przy pomocy konsoli Prologu.+Należy napisać w języku C predykat przyjmujący jako argument tekst, który zostanie wypisany na ekranie w ozdobych nawiasach (''​-=[ ]=-''​), a następnie przetestować jego działanie przy pomocy konsoli Prologu. 
  
  
Linia 68: Linia 72:
  
 ===== Unix: Polecenia Systemowe ===== ===== Unix: Polecenia Systemowe =====
-SWI-Prolog posiada mechanizmy pozwalajace na interację z systemem operacyjnym na którym pracuje. Do najprostrzych należy predykat //​[[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​system.html#​shell/​1|shell/​1]]//,​ który pozwala na uruchomienie dowolnej aplikacji z poziomu Prologu.+[[http://​www.swi-prolog.org|SWI-Prolog]] posiada mechanizmy pozwalajace na interację z systemem operacyjnym na którym pracuje. Do najprostrzych należy predykat //​[[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​system.html#​shell/​1|shell/​1]]//,​ który pozwala na uruchomienie dowolnej aplikacji z poziomu Prologu.
 Na [[http://​www.swi-prolog.org/​packages/​clib.html#​sec:​2|głębszą interackcję]] pozwala biblioteka [[http://​www.swi-prolog.org/​packages/​clib.html|SWI-Prolog C-library]]. Na [[http://​www.swi-prolog.org/​packages/​clib.html#​sec:​2|głębszą interackcję]] pozwala biblioteka [[http://​www.swi-prolog.org/​packages/​clib.html|SWI-Prolog C-library]].
  
Linia 74: Linia 78:
 Należy napisać w Prologu program uruchamiający __jednocześnie__ 4 xtermy. Należy napisać w Prologu program uruchamiający __jednocześnie__ 4 xtermy.
  
-===== Unix: sockety ​===== + 
-[[http://​www.swi-prolog.org/​packages/​clib.html|pakiet Clib]]+ 
 + 
 +===== Unix: Sockety ​===== 
 +[[http://​www.swi-prolog.org/​packages/​clib.html|SWI-Prolog C-library]] pozwala także na komunikację sieciową, udostępniająć sieciowe API systemu operacyjengo jako predykaty. W [[http://​www.swi-prolog.org/​packages/​clib.html#​sec:​4|Dokumentacji]] podane są kompletne przykłady implementacji serwerów i klientów napisanych w Prologu. 
 + 
 +*  **Zadanie:​** 
 +Należy napisać w Prologu aplikację pobierającą poprzez protokół HTTP plik tekstowy i wyświetlający go na ekranie. Minimalne żądanie HTTP ma postać: 
 +<​code>​ 
 +   GET /​ścieżka/​do/​pliku.txt<​znak końca linii> 
 +   <​znak końca linii> 
 +</​code>​ 
 +Po wysłaniu żądania serwer wysyła nagłówki i zawartość pliku rozdzielone pustą linią a następnie zamyka połączenie.
  
  
Linia 83: Linia 98:
   * [[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​Contents.html|Podręcznik SWI]]   * [[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​Contents.html|Podręcznik SWI]]
   * [[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​foreign.html|Foreign Language Interface]]   * [[http://​gollem.science.uva.nl/​SWI-Prolog/​Manual/​foreign.html|Foreign Language Interface]]
-  * [[http://​www.swi-prolog.org/​packages/​clib.html|Pakiet Clib]]+  * [[http://​www.swi-prolog.org/​packages/​clib.html|SWI-Prolog C-library]]
  
pl/prolog/lab_prolog_ansic.1196174041.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0