Дело стоящее, но сильно зависит от лояльности научного руководителяRonin wrote: а может мне в аспирантуру эту тему взять, а

Moderator: haqreu
Дело стоящее, но сильно зависит от лояльности научного руководителяRonin wrote: а может мне в аспирантуру эту тему взять, а
Какую реализацию ты имеешь ввиду?Mac Buster wrote: Кстати, посмотреть бы на реализацию Пролога...
Это гнутый Пролог ?Shaos wrote: С помошью gprolog написал программку
Это я про исходник Пролога написал.Shaos wrote: Какую реализацию ты имеешь ввиду?
Угу - вполне стандартная реализация:Mac Buster wrote:Это гнутый Пролог ?Shaos wrote: С помошью gprolog написал программку
Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализациюMac Buster wrote:Это я про исходник Пролога написал.Shaos wrote: Какую реализацию ты имеешь ввиду?
Я тут подумал и пришёл к выводу, что мне даже не столько исходник нужен, сколько описание того, как реализовать Пролог (или какой-нибудь другой декларативный язык). Говорят, есть старая переводная книжка, где рассматриваются вопросы реализации. Пока не нашёл.Shaos wrote: Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализацию
А чего обсуждать то? Делать надоMac Buster wrote: Что-то обсуждение затихло. Надо так понимать, что все усердно трудятся гоняя гнутый пролог ?
Ты хоть план работ набросай, я посмотрю чем могу помочь. Хочу посмотреть на реализацию машины выводаShaos wrote: А чего обсуждать то? Делать надо![]()
Но мне одному не справиться...
На странице http://xyzzy.freeshell.org/trinary/ таблицы истинности троичной логики для И и ИЛИ совершенно иные:Shaos wrote:
В данном случае нам проще раздать значения таким образом:
P - истина (true в терминах Пролога)
O - неизвестно (unknown)
N - ложь (fail в терминах Пролога)
Мы можем ввести оператор \ обозначающий отрицание, который превращал бы истину в ложь, ложь в истину, а неизвестность оставлял бы неизвестностью
Запятая (,) обозначающая в обычном Прологе И в нашем случае не может быть заменена на троичный эквивалент MIN, вместо этого предлагается следующая таблица истинности для И в ПРОТЕРЛОГе:
\ N O P
N N O N
O O O O
P N O P
расшифровывается так - если хотя бы один из аргументов неизвестность, то результат неизвестен и если все аргументы истина, то результат - истина
Точка с запятой (;) обозначающая в обычном Прологе ИЛИ в нашем случае не может быть заменена на троичный эквивалент MAX, вместо этого предлагается следующая таблица истинности для ИЛИ в ПРОТЕРЛОГе:
\ N O P
N N N P
O N O P
P P P P
расшифровывается так - если хотя бы один из аргументов правда, то результат считать правдой, если аргументы принимают значения ложь и неизвестность, то результат - ложь, и, наконец, если все аргументы неизвестность, то результат неизвестен (неопределен)
Code: Select all
A B and or
F F F F
F ? F ?
F T F T
? F F ?
? ? ? ?
? T ? ?
T F F T
T ? ? ?
T T T T
AND вроде правильно нарисовано, а вот с OR у меня чего-то не срастается - вроде как должно быть так:Shaos wrote:
На странице http://xyzzy.freeshell.org/trinary/ таблицы истинности троичной логики для И и ИЛИ совершенно иные:
И судя по всему они правильные - посыпаю голову пепломCode: Select all
A B and or F F F F F ? F ? F T F T ? F F ? ? ? ? ? ? T ? ? T F F T T ? ? ? T T T T
![]()
Code: Select all
A B and or
F F F F
F ? F ?
F T F T
? F F ?
? ? ? ?
? T ? [b]T[/b]
T F F T
T ? ? [b]T[/b]
T T T T