Дело стоящее, но сильно зависит от лояльности научного руководителяRonin wrote: а может мне в аспирантуру эту тему взять, а
Программирование с помощью троичной логики
Moderator: haqreu
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Кстати, посмотреть бы на реализацию Пролога...
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
Проверил практическую возможность реализации "чистого" Пролога без встроенной арифметики (т.е. арифметика реализована средствами самого Пролога). С помошью gprolog написал программку, которая раскладывает целые числа произвольной длины в списки цифр и производит над ними простейшие операции - сложение и вычитание (ни одного вызова "is"). Точно также можно реализовать арифметику в нашем ТРИЛОГе-ПРОТЕРЛОГе - с описанием предиката is на самом языке (языковом псевдокоде).
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
Какую реализацию ты имеешь ввиду?Mac Buster wrote: Кстати, посмотреть бы на реализацию Пролога...
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Это гнутый Пролог ?Shaos wrote: С помошью gprolog написал программку
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Это я про исходник Пролога написал.Shaos wrote: Какую реализацию ты имеешь ввиду?
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
Угу - вполне стандартная реализация:Mac Buster wrote:Это гнутый Пролог ?Shaos wrote: С помошью gprolog написал программку
http://gnu-prolog.inria.fr
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализациюMac Buster wrote:Это я про исходник Пролога написал.Shaos wrote: Какую реализацию ты имеешь ввиду?
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Я тут подумал и пришёл к выводу, что мне даже не столько исходник нужен, сколько описание того, как реализовать Пролог (или какой-нибудь другой декларативный язык). Говорят, есть старая переводная книжка, где рассматриваются вопросы реализации. Пока не нашёл.Shaos wrote: Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализацию
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Что-то обсуждение затихло. Надо так понимать, что все усердно трудятся гоняя гнутый пролог ? 
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
А чего обсуждать то? Делать надоMac Buster wrote: Что-то обсуждение затихло. Надо так понимать, что все усердно трудятся гоняя гнутый пролог ?
Но мне одному не справиться...
-
Mac Buster
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичный ПРОЛОГ
Ты хоть план работ набросай, я посмотрю чем могу помочь. Хочу посмотреть на реализацию машины выводаShaos wrote: А чего обсуждать то? Делать надо![]()
Но мне одному не справиться...
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
На странице 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
Last edited by Shaos on 20 Sep 2012 20:38, edited 1 time in total.
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
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
-
Shaos
- Admin
- Posts: 24597
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Троичный ПРОЛОГ
Хотя всё не так... Здесь надо забыть про T и F и думать про положительный или отрицательный факт...
