2015-05-04 4 views
4

Совсем недавно я начал играть с таблицами в Prolog; некоторые эксперименты, которые я сделал с и , можно найти in this question.Ограниченный табуляции

Когда таблицы становятся все больше и больше, я понял, что мне нужно найти некоторые параметры/параметры табуляции, которые позволят мне ограничить объем памяти, предназначенной для табуляции.

До сих пор я не нашел в руководстве по эксплуатации , и .

Не могли бы вы рассказать мне какую-нибудь полезную информацию?

+3

B-Prolog разделяет виртуальную машину с Picat, поэтому, возможно, она поддерживает режимы на аргументах ... – CapelliC

+3

@CapelliC. Я попробовал объявления ': - table posInt_CollatzSteps/2.',': - table posInt_CollatzSteps (+, -). 'И': - таблица posInt_CollatzSteps (+, -): 10000.', но не оказала заметного влияния на потребление памяти , – repeat

+2

Что касается Yap, возможно, вы хотите связаться с [email protected], который является автором расширения своей таблицы. – migfilg

ответ

1

В случае YAP есть некоторые публикации, которые подробно рассматриваются в реализации табуляции. Одним из наиболее важных из них, скорее всего, Mode-Directed и приложение столы в YapTab системе:

http://cracs.fc.up.pt/node/4962

У меня есть некоторые из этих примеров бумаги, адаптированных в Logtalk (я в том же исследовательской группе - CRACS - в качестве авторов):

https://github.com/LogtalkDotOrg/logtalk3/blob/master/examples/tabling/tabling.lgt

(см код, начинающийся в строке 63).

На сайте CRACS (http://cracs.fc.up.pt) вы можете просмотреть несколько других документов на табуляции.

Смежные вопросы