Forth
http://www.fforum.winglion.ru/

новая конструкция управления: троичная логика
http://www.fforum.winglion.ru/viewtopic.php?f=25&t=1873
Страница 1 из 3

Автор:  mOleg [ Чт янв 15, 2009 20:50 ]
Заголовок сообщения:  новая конструкция управления: троичная логика

<pre>
\ 2009-01-15 ~mOleg
\ Сopyright [C] 2009 mOleg mininoleg@yahoo.com
\ троичная логика: +0-

?DEFINED >resolve : >resolve ( addr --> ) HERE OVER - ADDR - SWAP ! ;

\ вернуть число в зависимости от значения числа n
\ если n=0: вернуть 0, n<0:4, n>0:8
: TFLAG ( n --> u )
[ 0x83 B, 0xF8 B,
0x00 B, 0x0F B, 0x95 B, 0xC3 B, 0x0F B, 0x9F B, 0xC1 B, 0x02 B,
0xD9 B, 0x33 B, 0xC0 B, 0x8A B, 0xC3 B, 0xC0 B, 0xE0 B, 0x02 B, ] ;

\ выбрать одно из трех действий согласно знаку
\ адреса действий скомпилированы в коде за (SEL)
: (SEL) ( flag --> ) TFLAG R> + @ >R ;

\ выбор действия согласно знака числа
: (ACT) HERE BRANCH, >MARK <MARK ;
\ варианты выбора: по нулю, по отрицательному числу, по положительному числу
: ZER ( --> ) ?COMP (ACT) 0 ; IMMEDIATE
: NEG ( --> ) ?COMP (ACT) 4 ; IMMEDIATE
: POS ( --> ) ?COMP (ACT) 8 ; IMMEDIATE

\ завершить конструкцию выбора действия согласно флагу
: SEL ( flag --> )
HERE BRANCH, >MARK >L
8 PICK >resolve COMPILE (SEL)
HERE >L 0x0C ALLOT
L@ + A! >resolve
L@ + A! >resolve
L> + A! DROP
L> >resolve ; IMMEDIATE

\EOF пример использования

: test ." \n\rвыбрано "
ZER ." нулевое" NEG ." отрицательное" POS ." положительное" SEL
." значение" ;

: tst 0 test -123124 test 438457 test ;

\ внутри конструкции можно использовать
\ слова, работающие со стеком возвратов
: tt DUP >R POS ." трэкс " R> .
NEG ." пэкс " R> .
ZER ." фэкс " R> .
SEL ." !!!" ;
</pre>

Порядок перечисления вариантов может быть произвольный (кроме sel)
перечисление вариантов должно быть полным обязательно!
понятно, что между вариантами выбора может быть любое количество операторов

Теперь я точно знаю, что 3 часа ночи самое продуктивное время суток!)
А родилось сие после того, как я в очередной раз встретился с ситуацией, когда от значения флага зависят выполняемые действия, напомню, что в форте в стандартном ядре таких мест минимум два: флаг возвращаемый словом FIND и значение переменной SOURCE-ID

Автор:  VoidVolker [ Чт янв 15, 2009 21:49 ]
Заголовок сообщения: 

Ооо! Это то что надо - очень полезная конструкция, я вот уже давно тяну руки к ней, да все не дотяну :/
mOleg писал(а):
Теперь я точно знаю, что 3 часа ночи самое продуктивное время суток!)

Ага, бывает ;)

Автор:  WingLion [ Сб янв 17, 2009 18:37 ]
Заголовок сообщения: 

mOleg писал(а):
Теперь я точно знаю, что 3 часа ночи самое продуктивное время суток!)


mOleg писал(а):
Добавлено: 15 Янв 2009 20:50


Китайская ночь? ;)

Автор:  mOleg [ Сб янв 24, 2009 14:05 ]
Заголовок сообщения: 

вот, недавно столкнулся с тем, что троилогика в представленном виде распространена в системе Windows и часто встречается ситуация: -1|0|u .

Автор:  WingLion [ Сб янв 24, 2009 18:48 ]
Заголовок сообщения: 

есть подозрение, что она там, как минимум 256-логика... просто остальные комбинации билли утаил от народа.

Автор:  architector [ Вс фев 01, 2009 17:27 ]
Заголовок сообщения:  Re: новая конструкция управления: троичная логика

mOleg писал(а):

Теперь я точно знаю, что 3 часа ночи самое продуктивное время суток. А родилось сие ....

Что то похожее родилось у Muller а. Назвал он это NULL convention logic (NCL). Там тоже используется три состояния - true, false, NULL. У него есть продолжатели и даже процессоры делают.

Автор:  вопрос [ Вс фев 01, 2009 19:09 ]
Заголовок сообщения: 

Где-то была статья об эффективности реализации в железе различнозначных исчислений. Какой процессор выгоднее - где цифры двузначные (биты) или десятизначные?
Выяснилось, что наилучшая с точки зрения эффективности 3-значная реализация, однако это потребовало бы перестройки всего процессоростроения, т.к. теперь уже была бы схема не " нет сигнала - есть сигнал", а "есть положиетльный - нет - есть отрицетельный"

Автор:  Варнак [ Вс фев 01, 2009 19:19 ]
Заголовок сообщения: 

вопрос писал(а):
Где-то была статья об эффективности реализации в железе различнозначных исчислений. Какой процессор выгоднее - где цифры двузначные (биты) или десятизначные?
Выяснилось, что наилучшая с точки зрения эффективности 3-значная реализация, однако это потребовало бы перестройки всего процессоростроения, т.к. теперь уже была бы схема не " нет сигнала - есть сигнал", а "есть положиетльный - нет - есть отрицетельный"

Эффективность, помнится, там оценивалась только с точки зрения памяти, необходимой для записи всех чисел из какого-то (большого) интервала от 0 до N и выбиралось основание системы счисления - результатом было число "е" (основание натуральных логарифмов). А процессоростроение - была же "Сетунь" Н.П.Брусенцова (не знаю как это в железе реализовывалось, впрочем и как 2-ные - тоже не знаю в деталях), м.б. что-то еще ...

Автор:  Hishnik [ Вс фев 01, 2009 19:45 ]
Заголовок сообщения: 

Во времена "Сетуни" был еще неактуальным такой интересный параметр, как подвижность носителей заряда. А у электронов она в 2-3 раза больше, чем у дырок. Поэтому в какой-то момент (0,8-1,2 мкм) существовали даже n-МОП схемы, то есть только на n-канальных транзисторах (у которых основные носители заряда как раз электроны). Я, пожалуй, не дам развернутого анализа, насколько разница в подвижности носителей влияет на характеристики полупроводниковых приборов сейчас, тем более что влияние задержки в проводниках уже больше, чем влияние задержки в компонентах, но в любом случае переход к трехзначной логике потребует коренного пересмотра библиотечных компонентов уровня кремния. А это миллиарды долларов.

Автор:  вопрос [ Вс фев 01, 2009 19:49 ]
Заголовок сообщения: 

да, именно об этом там речь и шла

Автор:  architector [ Ср фев 04, 2009 23:22 ]
Заголовок сообщения: 

Хищник писал(а):
Во времена "Сетуни" ..... но в любом случае переход к трехзначной логике потребует ...... миллиарды долларов.

NULL convention logic изобретена в ...х годах. К указанным Выше работам и авторам отношения не имеет. Имеет она отношение к способу синхронизации антогонистическому «синхронной синхронизации» – «асинхронной синхронизации». Реализуется на доступных технологиях, без придумывания элементов на три состояния за миллиард долларов. Пропагандируется фирмой Teseus Reсычен…..
Жду про логику дальше, теперь уже на «одно» состояние (Domino Logic) – «упал-отжался». Выглядит красиво.
Однако уже 22 часа. Спокойной ночи всем. Приятных сновидений и новых открытий.

Автор:  forther [ Чт фев 05, 2009 00:11 ]
Заголовок сообщения: 

architector писал(а):
NULL convention logic изобретена в ...х годах. К указанным Выше работам и авторам отношения не имеет.


А это вы к чему? Чтоли вы хотите ваш процессор асинхронным сделать?

Автор:  architector [ Чт фев 05, 2009 21:18 ]
Заголовок сообщения: 

forther писал(а):
А это вы к чему? ?

Я из альтруизма только. Хотелось в интересную тему о логике внести новую струю. Если не туда написа`л, извините.
Логика «не трациционной ориентации» на Сетуне в ее примитивном понимании уважаемого мною Брусенцова не закончилась.
NCL логика – представляет логическую переменную состоянием 2-х линий (всего 4 состояния). Меня она заинтересовала по причине ее врожденной redudance, асинхронность это вторично, но тоже интересно и полезно.
Domino Logic меня поразила своей неожиданной красотой. Я видел по TV, как миллион домино (функция) от одного единственного (аргумента) падают и на глазах создают картину (результат). Однако детально в Domino Logic не вникал. Вопрос. Какой процессор Вы упомянули и зачем. Мы же здесь о логике….
Примечание. Реализация NCL логики запатентована. Ее использование без лицензии чревато….

Автор:  вопрос [ Чт фев 05, 2009 21:30 ]
Заголовок сообщения: 

Цитата:
Примечание. NCL логика запатентована. Ее использование без лицензии чревато….
по-моему этого быть не может, даже алгоритмы патентуют не везде. а логика - она как закон природы - патентованию полдлежать не должна, если только это не реализация

Автор:  Pretorian [ Чт фев 05, 2009 21:42 ]
Заголовок сообщения: 

Хм, а как логику то патентовать?

Страница 1 из 3 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/