nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 03:01



Reply to topic  [ 81 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Программирование с помощью троичной логики 
Author Message
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Ronin wrote:
а может мне в аспирантуру эту тему взять, а ;)

Дело стоящее, но сильно зависит от лояльности научного руководителя ;)


26 Aug 2005 23:18
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Кстати, посмотреть бы на реализацию Пролога...


26 Aug 2005 23:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Проверил практическую возможность реализации "чистого" Пролога без встроенной арифметики (т.е. арифметика реализована средствами самого Пролога). С помошью gprolog написал программку, которая раскладывает целые числа произвольной длины в списки цифр и производит над ними простейшие операции - сложение и вычитание (ни одного вызова "is"). Точно также можно реализовать арифметику в нашем ТРИЛОГе-ПРОТЕРЛОГе - с описанием предиката is на самом языке (языковом псевдокоде).


26 Aug 2005 23:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Кстати, посмотреть бы на реализацию Пролога...


Какую реализацию ты имеешь ввиду?


26 Aug 2005 23:30
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
С помошью gprolog написал программку

Это гнутый Пролог ?


27 Aug 2005 03:08
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
Какую реализацию ты имеешь ввиду?

Это я про исходник Пролога написал.


27 Aug 2005 03:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Shaos wrote:
С помошью gprolog написал программку

Это гнутый Пролог ?


Угу - вполне стандартная реализация:

http://gnu-prolog.inria.fr


27 Aug 2005 06:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Shaos wrote:
Какую реализацию ты имеешь ввиду?

Это я про исходник Пролога написал.


Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализацию ;)


27 Aug 2005 06:26
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
Да их много - какие-то более полные, какие-то менее полные. Даже на джаве есть. Я вот хочу на RW1 написать реализацию ;)

Я тут подумал и пришёл к выводу, что мне даже не столько исходник нужен, сколько описание того, как реализовать Пролог (или какой-нибудь другой декларативный язык). Говорят, есть старая переводная книжка, где рассматриваются вопросы реализации. Пока не нашёл.


30 Aug 2005 23:09
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Что-то обсуждение затихло. Надо так понимать, что все усердно трудятся гоняя гнутый пролог ? :)


06 Sep 2005 12:02
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Что-то обсуждение затихло. Надо так понимать, что все усердно трудятся гоняя гнутый пролог ? :)


А чего обсуждать то? Делать надо :hammer:

Но мне одному не справиться...


11 Sep 2005 19:27
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
А чего обсуждать то? Делать надо :hammer:

Но мне одному не справиться...

Ты хоть план работ набросай, я посмотрю чем могу помочь. Хочу посмотреть на реализацию машины вывода ;)


11 Sep 2005 20:58
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
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
расшифровывается так - если хотя бы один из аргументов правда, то результат считать правдой, если аргументы принимают значения ложь и неизвестность, то результат - ложь, и, наконец, если все аргументы неизвестность, то результат неизвестен (неопределен)


На странице http://xyzzy.freeshell.org/trinary/ таблицы истинности троичной логики для И и ИЛИ совершенно иные:

Code:
 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

И судя по всему они правильные - посыпаю голову пеплом :oops:


Last edited by Shaos on 20 Sep 2012 20:38, edited 1 time in total.



09 Jun 2006 01:38
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Shaos wrote:

На странице http://xyzzy.freeshell.org/trinary/ таблицы истинности троичной логики для И и ИЛИ совершенно иные:

Code:
 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

И судя по всему они правильные - посыпаю голову пеплом :oops:


AND вроде правильно нарисовано, а вот с OR у меня чего-то не срастается - вроде как должно быть так:

Code:
 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


И тогда AND превращается в MIN, а OR - в MAX...


09 Jun 2006 18:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Хотя всё не так... Здесь надо забыть про T и F и думать про положительный или отрицательный факт...


09 Jun 2006 19:46
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 81 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 39 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.