Poszukuję pracy naukowej lub innej publikacji porównującej różne abstrakcyjne maszyny (więcej niż jedną) do wykonania Prologu z tłumaczami prologów nieopartymi na maszynach abstact. To, co widziałem do tej pory, to fakt, że większość implementacji wydaje się oprzeć swoje interpretery prologów na Warren Abstract Machine, chociaż zaproponowano inne abstrakcyjne maszyny (np. Vienna Abstract Machine, Tree-Oriented Abstract Machine) i nie ma żadnej ogólnej porównań. Interesuje mnie porównanie wydajności (, a nie), chociaż wszyscy porównywalni tłumacze powinni pozwolić na programowanie z ograniczeniami logicznymi.Porównanie abstrakcyjnych maszyn do wykonywania Prologu
Odpowiedz
Możesz zbudować programowanie logiczne wiązań na zwykłym prologu , jeśli wprowadzisz pewne prymitywy dla zapisanego sklepu z ograniczeniami i niektóre prymitywy dla haków unifikujących. Np:
SICStus Prolog: przypisanym Zmienne
http://sicstus.sics.se/sicstus/docs/3.7.1/html/sicstus_17.html
Jekejeke Minlog: Mała Solver
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/15_min/10_docu/02_reference/04_examples/05_solver.html
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/15_min/15_stdy/06_bench/10_examples/02_addensure/01_referensure.p.html
oczywiście można wyświetlić dodatkowe prymitywy jak nowe instrukcje w abstrakcyjna maszyna. Ale w obu przypadkach powyżej prymitywy są dodane na poziomie predykatu, tak że nasuwa się pytanie, czy naprawdę istnieje potrzeba abstrakcyjnej maszyny do programowania logicznego wiązań.
Oczywiście można znaleźć kilka sugestii programowania logicznego ograniczających abstrakcyjnych maszyn również za pośrednictwem google.
Bye
- 1. Porównanie czasu wykonywania algorytmów: dlaczego kolejność wykonywania ma znaczenie?
- 2. Wiele pochodnych klas abstrakcyjnych?
- 3. Odniesienie do maszyn wirtualnych Dalvik lub Java?
- 4. Struktura danych do wyboru grup maszyn
- 5. Dźwięki maszyn do pisania dla emacs
- 6. Serializacja Javascript typów maszyn
- 7. Jak dodać do końca listy w prologu
- 8. Jak przekonwertować drzewo prologu do logicznego zdania
- 9. Implementacja maszyn stanu płynnego
- 10. Generator maszyn stanu C++
- 11. Interpreter oparty na Prologu
- 12. Losowe elementy w Prologu
- 13. Tabele skrótów w prologu
- 14. Herbrand w Prologu
- 15. Wyrażenia Lambda dla klas abstrakcyjnych
- 16. EF4 i wiele abstrakcyjnych poziomów
- 17. Predykat przecięcia Prologu używając
- 18. funkcja zasilania w prologu
- 19. Ładowanie plików w Prologu
- 20. Konkatenacja list w Prologu
- 21. Jak zanegować w Prologu
- 22. oświadczenia przełącznika w Prologu
- 23. orzecznik zakodować w prologu
- 24. Operator prologu "_: _" - znaczenie?
- 25. podzbiory w Prologu
- 26. Co oznacza \ + w Prologu?
- 27. Jak mogę utworzyć wyniki zapytań do drukowania prologu przy uruchomieniu skryptu prologu
- 28. Porównanie długiego std_logic_vector do zera
- 29. Konwertuj obraz do CVPixelBuffer do nauki maszyn Swift
- 30. Lista funkcji abstrakcyjnych i zmiennych
Zobacz http://stackoverflow.com/questions/4478615/alternatives-to-the-wam/4504325 Nie jest jasne, co jeszcze może oznaczać przez porównanie. To, co rozumiemy przez "wykonanie prologu z tłumaczeniem Prologa nie opartym na abstrakcyjnych maszynach" nie jest dla mnie jasne: każda implementacja jest oparta na jakiejś abstrakcyjnej maszynie. – false
@false, mogę napisać interpreter Prolog używając C++, a następnie nie będzie on oparty na żadnej abstrakcyjnej maszynie. I przez porównanie rozumiem na przykład testowanie, jak efektywnie (pod względem czasu obliczeniowego, zużycia pamięci) każdy interpreter działa. –
Nawet wtedy używasz abstrakcyjnej maszyny. Nadal jest wiele decyzji, które należy podjąć. Pomyśl o cofnięciu/zwrocie. – false