Forth http://fforum.winglion.ru/ |
|
о преимуществах и недостатках существующих стандартов http://fforum.winglion.ru/viewtopic.php?f=36&t=1799 |
Страница 1 из 6 |
Автор: | mOleg [ Чт дек 25, 2008 15:17 ] |
Заголовок сообщения: | о преимуществах и недостатках существующих стандартов |
для того, чтобы понять, что же нам надо, надо понять что же нам точно не надо ;) предлагаю тут перечислить все моменты, которые по мнению фортеров относятся к недостаткам существующих стандартов, а так же к их достоинствам (желательно в отдельных сообщениях). |
Автор: | mOleg [ Чт дек 25, 2008 15:19 ] |
Заголовок сообщения: | |
начну с недостатков. 1) очень неудобная структура документов (все перемешано) 2) местами стандарт фиксирует реализацию слов, к примеру [IF] [ELSE] [THEN] |
Автор: | VoidVolker [ Чт дек 25, 2008 19:48 ] |
Заголовок сообщения: | |
3) Написано ломаным и малопонятным языком. (По крайней мере именно такое впечателение оно производит на меня.) Т.е. надо чтобы все было написано по-человечески - простыми и понятными словами. |
Автор: | WingLion [ Чт дек 25, 2008 20:58 ] |
Заголовок сообщения: | |
4) слишком много наворотов. Проще надо быть! 5) отсутствие совместимости с более ранними версиями стандарта (камень в огород 94-го) Некоторые мои программы, прекрасно работавшие на F83, на F94 работать не стали... я и разбираться не стал, почему, остался на 83-м форте и на него не жалуюсь. 6) забытый FORGET - вообще перл! кому он помешал? |
Автор: | Pretorian [ Чт дек 25, 2008 21:05 ] |
Заголовок сообщения: | |
Самый главный недостаток устаревший стандарт, жизнь то идет, идеи и технологии растут, а стандарт где был там и остался, не будет нового стандарта будут форт-компиляторы каждый как нравится. |
Автор: | Kopa [ Пт дек 26, 2008 09:30 ] |
Заголовок сообщения: | |
Не достаточно актуализирована работа Forth систем в Гарвардской и Фон-Неймана архитектурах слово HERE даёт адрес пространства данных, а xt - понятие исполнимого токена. это же относится к слову CREATE а как в F94 получить адрес пространства кода? ( может этот момент явно указан?) P.S. Код: HERE ] 1 . ; EXECUTE
выполнится в spf4, а в Win32Forth даст ошибку исчерпания стека. Стек управления компиляцией, скорее всего, не должен пересекаться с 2-мя основными стеками Форта. |
Автор: | chess [ Пт дек 26, 2008 17:11 ] |
Заголовок сообщения: | |
Kopa писал(а): Не достаточно актуализирована работа Forth систем
в Гарвардской и Фон-Неймана архитектурах А вот надо ли вносить в стандарт еще и информацию даже не просто об устройстве форт-системы, а еще и при этом, о платформе, на которой эта форт-система поставлена. Тем самым и дать программную модель среды программирования. Или это лишнее? Ведь вариантов реализаций форт-систем великое множество. Отсюда и несовместимость форт-текстов вроде даже и из одинаковых слов, но имеющих разный внутренний подтекст. |
Автор: | VoidVolker [ Пт дек 26, 2008 17:29 ] |
Заголовок сообщения: | |
chess писал(а): А вот надо ли вносить в стандарт еще и информацию даже не просто об устройстве форт-системы, а еще и при этом, о платформе, на которой эта форт-система поставлена.
Может в виде некоторого набора модулей стандарта? |
Автор: | mOleg [ Сб дек 27, 2008 16:42 ] |
Заголовок сообщения: | |
chess писал(а): А вот надо ли вносить в стандарт еще и информацию даже не просто об устройстве форт-системы, а еще и при этом, о платформе, на которой эта форт-система поставлена.
да, мне кажется, что вычислительная среда и должна быть в первую очередь зафиксирована стандартом, тем более, раз уж от нее основные расхождения и начинаются. |
Автор: | mOleg [ Сб дек 27, 2008 17:10 ] |
Заголовок сообщения: | |
еще одно замечание: именование определений должно быть регулярным. Уж если договорились, что слова, работающие со строками начинаюстя с буквы 'S', то все слова должны быть такими, то есть S>HEAP быть должно, а не HEAP-COPY. Еще один пример: 2DUP но D, DLITERAL а должно бы все быть: DDUP DOVER DVALUE и т.д. |
Автор: | mOleg [ Сб дек 27, 2008 17:16 ] |
Заголовок сообщения: | |
кстати, забыли о главном недостатке: РУССКОГО стандарта (ГОСТ) пока не существует в природе! |
Автор: | Kopa [ Пн янв 12, 2009 09:41 ] |
Заголовок сообщения: | |
Во многих Форт-системах, исключая spf4 приведённый ниже код не работает. Код: : rep R@ EXECUTE ; : test rep ." 01" ; test И в чём "фикус". Неужели не по F94? P.S. В F83 скорее всё наоборот:) Возможное ещё применение: Код: : err R@ ;
: test ( flag - xt-addr ) IF err ." true" EXIT ELSE err ." false" THEN ; test |
Автор: | chess [ Пн янв 12, 2009 10:36 ] |
Заголовок сообщения: | |
Kopa писал(а): Во многих Форт-системах, исключая spf4 приведённый ниже код не работает.
Ну в VFX(потому, что нативный форт как и СПФ) тоже работает. Код: rep ( 004ABBC0 8B0C24 ) MOV ECX, [ESP] ( 004ABBC3 FFD1 ) CALL ECX ( 004ABBC5 C3 ) NEXT, ( 6 bytes, 3 instructions ) test ( 004ABBF0 E8CBFFFFFF ) CALL 004ABBC0 rep ( 004ABBF5 E85610F6FF ) CALL 0040CC50 (.") "01" ( 004ABC00 C3 ) NEXT, ( 17 bytes, 3 instructions ) для СПФ в коде почти тоже самое Код: CODE rep (4 bytes)
56B5D3 FF1424 CALL [ESP] 56B5D6 C3 RET NEAR END-CODE (2 instructions) CODE test (20 bytes) 56B5EB E8E3FFFFFF CALL 56B5D3 ( rep ) 56B5F0 E8EF6BFEFF CALL 5521E4 ( _CLITERAL-CODE ) 56B5F5 02 30 31 00 E8 CA AF FE FF C3 0F B6 56 00 00 02 .01.ш╩п■ ├.╢V... 56B5F9 E8CAAFFEFF CALL 5565C8 ( (.") ) 56B5FE C3 RET NEAR END-CODE (4 instructions) |
Автор: | VoidVolker [ Пн янв 12, 2009 13:59 ] |
Заголовок сообщения: | |
Kopa писал(а): Во многих Форт-системах, исключая spf4 приведённый ниже код не работает.
В кварке тоже работает. |
Автор: | mOleg [ Пн янв 12, 2009 21:01 ] |
Заголовок сообщения: | |
не работает, и не должно работать. Особенность хранения адресов на стеке возвратов, и различных типов ШК. Если хочется разобраться в теме, советую статью Гасаненко: Open Interpreter: Portability of Return Stack Manipulations |
Страница 1 из 6 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |