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

"атомарные" конструкции управления
http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2100
Страница 2 из 3

Автор:  VoidVolker [ Ср май 06, 2009 11:18 ]
Заголовок сообщения: 

garbler писал(а):
ну, по каким-то причинам разработчик свой веб-сайт свернул, остался лишь баннер и ссылка на последнюю версию (но она весьма сырая).

А вот в кэше у гугла он остался - жмем не сами линки, а кнопку "Сохранено в кэше":
http://www.google.com/search?hl=ru&clie ... %D0%BA&lr=

Автор:  mOleg [ Ср май 06, 2009 21:09 ]
Заголовок сообщения: 

garbler писал(а):
я на рапиду положил предыдущую, в ней начни с файла help4p

спасибо, утянул. Буду смотреть.

garbler писал(а):
mOleg писал(а):если честно, думал, что из Постскрипта команды реализую
неа, там все команды работают с XT на стеке, выполняемый код представлен блоками {...} (с поддержкой вложенности) и реализован "total rpn" (за исключением лексического представления типов данных: ключ в словарь, число, слово, блок кода, строка и т.д.). учитывая, что у тебя есть box[ и ]box, лобовая реализация будет тривиальной (с оптимальной же придётся повозиться).

это я вспомнил уже, просто почему-то ассоциировалось с ps.
а эти самые { } постскриптовские уже очень давно сделаны, лежат в папке devel в СПФе. Правда толку особого от них нет :)

garbler писал(а):
и ещё на ;then

эм, который EXIT THEN ?

garbler писал(а):
мне с гуглом везёт больше

потому что вы знаете, что искать ;)

Автор:  mOleg [ Ср май 06, 2009 21:11 ]
Заголовок сообщения: 

Wlad писал(а):
Хорошо, но может стоит как-то попробовать сделать так, что бы уменьшить вложенность условных операторов, ежели автора понесёт на глубину вложенности > 3 ?

дело в том, что предложенные команды вообще убирают вложенные IFы
код компилятора (теоретически) значительно упрощается за счет исключения всяких MARK RESOLVE и прочих вещей.
код становится строго линейным - то есть прыжков внутри одного определения не будет в принципе!
это очень заманчиво, когда объемы памяти мизерные, а компилятор иметь хочется. Но стиль написания программ будет отличным от такового у Форта, я имею ввиду привычного.

Автор:  WingLion [ Ср май 06, 2009 21:58 ]
Заголовок сообщения: 

mOleg писал(а):
дело в том, что предложенные команды вообще убирают вложенные IFы

просто вложенные ифы заменяются вложенными словами.
Если некий алгоритм выражался вложенными ифами в одном слове, то он станет выражаться группой слов, часть из которых будет исполняться условно. И вложенность условности перейдет во вложенность слов...
Сложнее это или проще - даже сказать сложно.

Автор:  mOleg [ Ср май 06, 2009 22:03 ]
Заголовок сообщения: 

WingLion писал(а):
Сложнее это или проще - даже сказать сложно.

утверждается, что код от этого станет более прозрачным и факторизованным.
однозначно, проще реализуется компилятор (уходит множество слов немедленного исполнения (по сути остаетст только ; ) и их поддержка.
а вот улучшение "читабельности" кода = тут меня сомнения гложут. Придется придумывать кучу дополнительных имен, а это самое выдумывание имен одна из самых сложных задач само по себе :)

Автор:  Гость [ Ср май 06, 2009 22:13 ]
Заголовок сообщения: 

кстати, по словам: 4p forth — первая гугловая ссылка вполне в тему

Автор:  WingLion [ Чт май 07, 2009 00:35 ]
Заголовок сообщения: 

mOleg писал(а):
код от этого станет более прозрачным

mOleg писал(а):
а вот улучшение "читабельности" кода = тут меня сомнения гложут


читабельность и прозрачность - имхо - одного поля ягоды.
Если сомнения в одном есть, то и в другом должны быть.

Автор:  вопрос [ Чт май 07, 2009 21:23 ]
Заголовок сообщения:  Re: "атомарные" конструкции управления

mOleg писал(а):
"атомарные" конструкции управления (или как их поправильнее назвать?)
редуцированные сокращённые элементарные точечные нераспределённые одноэлементные

Автор:  mOleg [ Чт май 07, 2009 23:51 ]
Заголовок сообщения: 

WingLion писал(а):
читабельность и прозрачность - имхо - одного поля ягоды.
Если сомнения в одном есть, то и в другом должны быть.

это близкие вещи, но все-таки не одно и то же :)
код может быть прозрачным, но нечитаемым :) (к примеру, достаточно выбирать неудачные имена для определений, и если таких имен много... при этом каждое из определений будет очень простым, удачным и понятным)

Автор:  mOleg [ Чт май 07, 2009 23:52 ]
Заголовок сообщения: 

вопрос писал(а):
редуцированные сокращённые

ни в коем случае :)

остальные варианты ничем не лучше, чем "атомарные" 8(

Автор:  вопрос [ Пт май 08, 2009 08:37 ]
Заголовок сообщения: 

Цитата:
ни в коем случае

остальные варианты ничем не лучше, чем "атомарные" 8(

вот так давать советы :(

Автор:  Гость [ Пт май 08, 2009 08:54 ]
Заголовок сообщения: 

mOleg писал(а):
вопрос писал(а):
редуцированные сокращённые

ни в коем случае :)

остальные варианты ничем не лучше, чем "атомарные" 8(


"Атомарные" неудачный термин, т.к. имеет очерченные границы использования
в программировании.

P.S. Ругаемое Хищником слово "кодофайл" упоминается в книге Ноздрунова:)

Автор:  mOleg [ Пт май 08, 2009 12:30 ]
Заголовок сообщения: 

вопрос писал(а):
вот так давать советы

;) ну, просто пока нет подходящего варианта.

Автор:  WingLion [ Пт май 08, 2009 12:43 ]
Заголовок сообщения: 

: hjhdkj ejwhejh iusiu ; -- код прозрачен? если да - то я - вертолет.

Автор:  mOleg [ Пт май 08, 2009 12:47 ]
Заголовок сообщения: 

WingLion писал(а):
: hjhdkj ejwhejh iusiu ; -- код прозрачен? если да - то я - вертолет.

МИ28-ой?
или какой.
код прозрачен, но непонятен :) то есть нечитаем. А вот пример непрозрачного кода(мой, увы):
: suNumber ( asc # --> d flag )
0 0 DSWAP >NUMBER
*IF OVER C@ [CHAR] . =
IF SKIP1 0 -ROT >NUMBER
IF DDROP FALSE
ELSE DDROP SWAP 2 \ число двойной длинны
THEN
ELSE DDROP FALSE
THEN
ELSE
DDROP
*IF 2 ELSE 1 THEN
THEN ;

при всей красивости, отступах и коментариях код непрозрачен.

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