Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт янв 18, 2018 15:54

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:09 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6146
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
WingLion писал(а):
Короче, отсюда мораль: неудачные [IF] [THEN] [ELSE] из стандарта надо исключить.

Кто за?

А вполне. Тут можно поступить так - разъяснить возможный механизм их действия и реализацию. А раз имеется неоднозначность - не надо выбирать один из вариантов волеизъявлением "комитета".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:13 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
отсюда мораль: неудачные [IF] [THEN] [ELSE] из стандарта надо исключить.
прежде, чем будет предложена замена, исколючать заведомо опасно.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
вопрос писал(а):
прежде, чем будет предложена замена, исколючать заведомо опасно.


Опасно для чего? для исходников, на ANSI94? Так они по-новому будут компилиться по-прежнему после подключения к ядру расширения forth.ANSY94

А в новый стандарт и предлагается не включать глючную конструкцию, без которой можно легко обойтись имеющимися средствами даже обрезанного F83

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:26 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4839
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
Так они по-новому будут компилиться по-прежнему после подключения к ядру расширения forth.ANSY94

вообще это не обязательно так.

WingLion писал(а):
А в новый стандарт и предлагается не включать глючную конструкцию, без которой можно легко обойтись имеющимися средствами даже обрезанного F83

F83 не лучше ANS94

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
: ?\ IF nop ELSE [COMPILE] \ THEN ; IMMEDIATE

flag @ ?\ здесь нечто, что компилируется, если flag=true иначе отбрасывается все до конца строки

чтобы не городить на каждой строчке три лишних слова:

Код:
[b]: mode1> flag @ 1 <> IF [COMPILE] \ THEN ; IMMEDIATE[/b]
[b]: mode2> flag @ 2 <> IF [COMPILE] \ THEN ; IMMEDIATE[/b]

mode1> компилится то что надо для режима 1 (можно и S"file1" INCLUDE сделать без проблем)
mode2> компилится то что надо для режима 2


и никаких сверхестественных манипуляций...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:33 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
Цитата:
Так они по-новому будут компилиться по-прежнему после подключения к ядру расширения forth.ANSY94


вообще это не обязательно так.


Пока других предложений нет, я придерживаюсь того, которое есть ;)

mOleg писал(а):
F83 не лучше ANS94


лучше или не лучше - вопрос не об этом...
я же написал, что даже F83 позволяет, не утверждая, что он лучше

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Последний раз редактировалось WingLion Вс янв 04, 2009 20:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:37 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
никаких сверхестественных манипуляций...
в этих манипуляциях нужно ещё разобраться, а стандартные [IF] [THEN] [ELSE] уже существуют

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 04, 2009 20:39 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4839
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
mOleg писал(а):Цитата:Так они по-новому будут компилиться по-прежнему после подключения к ядру расширения forth.ANSY94
вообще это не обязательно так.
Пока других предложений нет, я придерживаюсь того, которое есть

ага, вот сразу возник у меня вопрос каким в стандарте должно быть представление строк?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 05:04 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
А какие есть альтернативные техники условной компиляции?
Особенно если без блоков - там можно последовательностью блоков и списком используемых блоков управлять... Получается удобно. Разбивать текст на мелкие файлы - неудобно... :(
По идее, для текстовых файлов аналогом будут именованные части исходника...

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 09:06 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Вот и разберемся.
Любая подобная:

Код:
begin-васькин-код

    кусок исходника

end-васькин-код


конструкция приведет к отступлению от одной из концепций форт-исходников, а именно - последовательному построению от-простого-к-сложному БЕЗ ЗАБЕГАНИЙ ВПЕРЕД по тексту исходника.

A, так как исходник имеет формальную возможность воздействовать на компиляцию как угодно, эта конструкция будет неустойчива к неожиданным вставкам, подобно:

Код:
[IF] ля-ля-ля
  большая-ли-разница что-тут?
\ [ELSE] тру-ля-ля
ой-ой-ой
[THEN]


Знать все слова, которые могут помешать, [IF] физически не в состоянии, потому что про
: мой-любимый-коммент [COMPILE] \ ; IMMEDIATE ему рассказать некому.

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

Формально INCLUDE - есть средство структурирования исходников, а условность им придадут любые стандартные условные конструкции Форта.

почему IF S" file1" INCLUDE ELSE S" file2" INCLUDE THEN - не сработает? Сработает прекрасно, если эту строку заключить в "кавычки компиляции-исполнения".

NONAME: IF S" file1.src" INCLUDE ELSE S" file2.src" INCLUDE THEN ;EXECUTE

Не хочется разбивать исходник на кучу мелких файлов?
Ключевое слово - "мелких" - это значит, что неудобства конструкции вида:

Код:
FOR-PC> исходник кода, если он компилируется для PC. граница - конец строки
FOR-MAC> исходник, если он компилируется для MAC. граница - конец строки
FOR-ZX> исходник, если он компилируется для ZX. граница - конец строки


минимальны.

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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 20:42 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4839
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
in4 писал(а):
А какие есть альтернативные техники условной компиляции?

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

in4 писал(а):
По идее, для текстовых файлов аналогом будут именованные части исходника...

ну, это черезчур.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 20:43 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4839
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
Вот и разберемся.
Любая подобная:
Код:begin-васькин-код
    кусок исходника
end-васькин-код
конструкция приведет к отступлению от одной из концепций форт-исходников, а именно - последовательному построению от-простого-к-сложному БЕЗ ЗАБЕГАНИЙ ВПЕРЕД по тексту исходника.

абсолютно не понял о чем речь :)
причем тут забегание куда-то?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 20:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
абсолютно не понял о чем речь Smile
причем тут забегание куда-то?


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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 20:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4839
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
WingLion писал(а):
A, так как исходник имеет формальную возможность воздействовать на компиляцию как угодно, эта конструкция будет неустойчива к неожиданным вставкам, подобно:

Код:[IF] ля-ля-ля
  большая-ли-разница что-тут?
 \ [ELSE] тру-ля-ля
 ой-ой-ой
[THEN]

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 06, 2009 20:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
либо все должно быть просто как апельсин, и без банановых корок раскиданных на дороге

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB