Трудни проекти

Труден проект 1: Интерпретатор на ПРОЛОГ

Труден проект 1: Интерпретатор на ПРОЛОГ

от Трифон Трифонов -
Number of replies: 0

Да се построи интерпретатор на подмножество на Пролог, несъдържащо вградени предикати (или съдържащо минимален брой такива - по желание). Клаузите се задават в избран от вас формат, например:

brother(X,Y) :- parent(Z,X),parent(Z,Y)

може да се зададе като:

'((brother (var X) (var Y)) (parent (var Z) (var X)) (parent (var Z) (var Y))).

Забележете, че използването на някакъв специален начин за отбелязване на променливи е наложително, понеже Scheme не прави разлика между малки и големи букви, за разлика от ПРОЛОГ.

Програмата-интерпретатор трябва да дава отговор на въпрос при дадена логическа програма по правилата за оценка в ПРОЛОГ. Работа с файл е желателно да се реализира.