Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт авг 18, 2017 12:59

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 16:50 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Рабочее название openforth (sorry VoidVolker).
Ядро содержит 2 группы слов.
1) Обязательные, независмо от платформы
FORTH32 BADWORD EXIT Push Pop HERE INTERPRET interpret# PARSE ENCLOSE CONTEXT CURRENT @ !
CELL+ , ALIGN ' SFIND EXECUTE >IN N>LINK LATEST (WORD) (HEADER) HEADER 0xd 0x number
LINK UNLINK BADWORD-xt BUFFER

ASSEMBLER BADWORD EXIT opcode

2) Обязательные, зависящие от платформы
Для WIN32, WIN64, LINUX, Kolibry: OpenFile INCLUDE: rdfile CloseFile (LIB) (SetModule)
Для Baremetal: LOAD rdblock

Далее подгружается с помощью INCLUDE: или LOAD файл loads.f или block#1, в которых расписан дальнейший порядок загрузки с помощью INCLUDE: или LOAD соответственно.

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

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

В зависимости от потребностей, можно легко выкинуть ненужные части.

Отличия от традиционных Форт-систем:
1) Нет BASE
2) Нет STATE
3) Нет флагов.
4) Числа не вводятся автоматически. Для ввода чисел используется слово 0x. В ядре сделан только ввод
16-тиричных чисел!
5) Изменена работа со словарями. Слово-словарь не включает сразу свой контекст, а лишь кладет его на стек. Его можно сделать контекстным или текущим так
Код:
vocabularyname CONTEXT !   vocabularyname CURRENT !   

Отсутствует стек контекстов, вместо него введено понятие "сцепленных" списков.
6) Вместо NOTFOUND сделано похожее слово BADWORD - векторное слово, которому можно присвоить
любое нужное действие.

На данный момент равивается версия на ядре Win64

Исходники лежат на GitHub
https://github.com/vpn288/openforth


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 17:58 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6043
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
vpn289 писал(а):
FORTH32 BADWORD EXIT Push Pop HERE INTERPRET interpret# PARSE ENCLOSE CONTEXT CURRENT @ !
CELL+ , ALIGN ' SFIND EXECUTE >IN N>LINK LATEST (WORD) (HEADER) HEADER 0xd 0x number
LINK UNLINK BADWORD-xt BUFFER

Возможно, данный список и не зависит от платформы. Но явно просматривается зависимость от внутренних алгоритмов. Что такое ENCLOSE? Что такое BADWORD и BADWORD-xt? А если мне нигде не надо BADWORD-xt, если уже есть BADWORD? Что такое UNLINK? Ну и так далее. Вопрос тут не в том, что мне не нравится что-то конкретное, а в том, что не видно способа разделения слов на аппаратно независимые и аппаратно зависимые. Вот DUP - он какой? А IF?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 18:28 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
vpn289 писал(а):
FORTH32 BADWORD EXIT Push Pop HERE INTERPRET interpret# PARSE ENCLOSE CONTEXT CURRENT @ !
CELL+ , ALIGN ' SFIND EXECUTE >IN N>LINK LATEST (WORD) (HEADER) HEADER 0xd 0x number
LINK UNLINK BADWORD-xt BUFFER

Возможно, данный список и не зависит от платформы. Но явно просматривается зависимость от внутренних алгоритмов. Что такое ENCLOSE? Что такое BADWORD и BADWORD-xt? А если мне нигде не надо BADWORD-xt, если уже есть BADWORD? Что такое UNLINK? Ну и так далее. Вопрос тут не в том, что мне не нравится что-то конкретное, а в том, что не видно способа разделения слов на аппаратно независимые и аппаратно зависимые. Вот DUP - он какой? А IF?

Эээ... Я писал "Обязательно, независимо от платформы". Имея ввиду что слова из этого списка должны присутствовать в ядре обязательно. Независимо от того, на какой платформе оно будет построено. И для голого железа с разными процессорами и для разных ОС, эти слова одинаковы и обязательны.
DUP и IF являются расширением ядра, они необязательны.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 18:51 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Возможно, данный список и не зависит от платформы. Но явно просматривается зависимость от внутренних алгоритмов. Что такое ENCLOSE? Что такое BADWORD и BADWORD-xt? А если мне нигде не надо BADWORD-xt, если уже есть BADWORD? Что такое UNLINK? Ну и так далее. Вопрос тут не в том, что мне не нравится что-то конкретное, а в том, что не видно способа разделения слов на аппаратно независимые и аппаратно зависимые. Вот DUP - он какой? А IF?[/quote]
Другая часть ответа.
PARSE использует ENCLOSE. : PARSE BUFFER HERE ENCLOSE ; То-есть ENCLOSE разбирает с любого адреса на любой адрес.
BADWORD-xt мне самому не очень нравится, но оно необходимо для работы механизма LINK UNLINK, сцепления-разъединения списков. Оно просто ищет BADWORD в контексте и кладет его xt.
В этой системе слово INTERPRET предельно упрощено.
Код:
: INTERPRET    BEGIN  PARSE FIND EXECUTE  AGAIN ;

Нет никаких проверок состояния, флагов IMMEDIATE и т.п. Ввод чисел вынесен из INTERPRET в отдельное слово (группу слов). FIND также не кладет никаких флагов, "плохие" слова исполняются наравне с хорошими. Исполнение плохих слов назначается векторному слову BADWORD. По-умолчанию это ABORT, но когда нужно, можно повесить свое действие.


Я упоминал, что в этой системе изменена работа со словарями. LINK UNLINK нужны для следующего:
vocname FIND произведет поиск только в vocname
vocname FORTH32 LINK vocname FIND произведет поиск в vocname и FORTH32. Если снова надо "изолировать" vocname пишем vocname UNLINK.
Очевидно, что так можно сцеплять неограниченное число списков.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 21:15 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2088
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
На мой взгляд для минимального ядра:
- ограничиться только одним словарем
- убрать список IMMEDIATES, для исполнения слов ввести префикс или суффикс
( например, 'name или name' ), имя без префикса компилируется.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 22:04 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Словарей в ядре два. FORTH32 и почти пустой ASSEMBLER.
IMMEDIATES создается гораздо позже, в расширении для автоматической компиляции.
Изначально ВСЕ слова только исполняются. Компиляция выполняется "ручками". Парой апостроф-запятая.

Ядро - это то, что написано на стороннем ассемблере. То, чего нельзя посмотреть простым редактором.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Вт апр 04, 2017 23:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6043
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
vpn289 писал(а):
Эээ... Я писал "Обязательно, независимо от платформы". Имея ввиду что слова из этого списка должны присутствовать в ядре обязательно. Независимо от того, на какой платформе оно будет построено. И для голого железа с разными процессорами и для разных ОС, эти слова одинаковы и обязательны.
DUP и IF являются расширением ядра, они необязательны.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 00:07 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Тогда можно задать такой вопрос: какую полезную программу можно написать на базе этих обязательных слов (т.е. только этих слов)?

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

Поймите одну из основных идей. Кроме этого набора слов, написанных на стороннем языке, вся остальная система написана на базе этого набора слов. Только ядро откомпилировано заранее, все остальное получается из интерпретации исходных текстов. Система загружается из собственных исходных текстов. Она открыта полностью! Она самодокументирована. Всегда можно заглянуть на любой уровень системы. Всегда можно внести изменения на любом уровне, если что-то не устраивает.
Другая мысль - антистандарт. Нет ничего обязательного. Объем реализации зависит от решаемой задачи.
Все программы существуют только в виде читаемого исходного текста.
Ну и попутно опробованы еще несколько идей. Самая важная из которых - приведение слова INTERPRET к простому, наглядному, даже примитивному виду. Три вложеных IF..ELSE..THEN как-то совсем не ложатся в парадигму Форта.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 00:08 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1908
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 32 раз.
Hishnik писал(а):
Тогда можно задать такой вопрос...
Не стоит. И ответ на него достаточно сложен, и ценность данной работы совсем в другом.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 01:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6043
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
vpn289 писал(а):
Поймите одну из основных идей. Кроме этого набора слов, написанных на стороннем языке, вся остальная система написана на базе этого набора слов. Только ядро откомпилировано заранее, все остальное получается из интерпретации исходных текстов. Система загружается из собственных исходных текстов. Она открыта полностью! Она самодокументирована. Всегда можно заглянуть на любой уровень системы. Всегда можно внести изменения на любом уровне, если что-то не устраивает.

Вот! Откуда мы приходим к более общей формулировке стандарта - его цели. Сейчас получается стандарт на способ реализации системы - слова подобраны так, что становится понятным маршрут разработки. Другой подход, понятный пользователю - стандартизация функциональных возможностей.Можно заметить, что если, фактически, описан начальный загрузчик, то с точки зрения пользователя-программиста потом из этого начального загрузчика может получиться практически что угодно. Самодокументирование в данном случае не очень помогает писать практические программы, потому что для того же bare metal есть свой hello,world - мигание светодиода. И для него нужно иметь возможность организовать цикл, выводить в порт, задавать константы и т.п.

Код:
12345 CONSTANT LED_PORT
10000000 CONSTANT DELAY_CYCLES

: DELAY DELAY_CYCLES 0 DO LOOP ;
\ вариант, чтобы появилась арифметика: : DELAY DELAY_CYCLES BEGIN 1 - DUP 0 = UNTIL DROP ;


: MAIN
BEGIN
  1 LED-PORT OUTPORT
  DELAY
  0 LED-PORT OUTPORT
  DELAY
AGAIN
;


Проблема возможна в том, что даже такой код (при этом я не утверждаю, что он "стандартный", это просто сценарий использования) не имеет гарантии быть поддержанным, если ядро системы почти ничего отсюда и не содержит. Для embedded важно не то, что все документировано и все можно сделать, а то, что уже можно делать что-то конкретное, выраженное в терминах операций с памятью и портами ВВ, созданием и обработкой структур данных, алгоритмами принятия решений и пр. Такие возможности, пусть они и могут быть определены через базовое ядро, все же подразумевают наличие определенных навыков. Как, к примеру, можно знать или не знать сортировку пузырьком. В ней самой по себе нет ничего чрезмерно сложного, но когда разработчик сталкивается с целой пачкой таких "в целом понятно, но что-то детали реализации никак в голове не уложатся". А в Форте это и INTERPRET, и IF THEN ELSE DO LOOP CASE, и словари, и CREATE DOES>, и что-нибудь еще по вкусу. Проблемы с реализацией этих вещей могут сделать Форт нефункциональным, а разночтения - несовместимыми.
vpn289 писал(а):
Три вложеных IF..ELSE..THEN как-то совсем не ложатся в парадигму Форта.

Ой, да ну. Это совсем не те масштабы :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 09:12 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1908
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 32 раз.
Не хотел сбивать с толку, но раз уж наш тролль начал грузить по-черному, то, вот, как я понимаю минимальность:

http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=%5C5.FOBOS

Пусть и не вполне "минимальная" минимальность, но вполне справившаяся с поставленной целью... (Это не значит, что я не уважаю цель коллеги топикстартера - "поиграть на всех уровнях". Дело архиполезное).

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 11:52 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Вот! Откуда мы приходим к более общей формулировке стандарта - его цели. Сейчас получается стандарт на способ реализации системы - слова подобраны так, что становится понятным маршрут разработки. Другой подход, понятный пользователю - стандартизация функциональных возможностей.Можно заметить, что если, фактически, описан начальный загрузчик, то с точки зрения пользователя-программиста потом из этого начального загрузчика может получиться практически что угодно. Самодокументирование в данном случае не очень помогает писать практические программы, потому что для того же bare metal есть свой hello,world - мигание светодиода. И для него нужно иметь возможность организовать цикл, выводить в порт, задавать константы и т.п.

Код:
12345 CONSTANT LED_PORT
10000000 CONSTANT DELAY_CYCLES

: DELAY DELAY_CYCLES 0 DO LOOP ;
\ вариант, чтобы появилась арифметика: : DELAY DELAY_CYCLES BEGIN 1 - DUP 0 = UNTIL DROP ;


: MAIN
BEGIN
  1 LED-PORT OUTPORT
  DELAY
  0 LED-PORT OUTPORT
  DELAY
AGAIN
;



Так уже легче. Более предметный разговор.
Вот у Вас есть набросок программы. Из него видно ЧТО нам нужно.
Даже если бы не было наработано ничего, объем создаваемых слов весьма невелик. DELAY OUTPORT все равно надо будет реализовывать самостоятельно. Стандартные слова уже наработаны их можно брать и копипастить. Система же уже существует не только в виде ядра.


Пусть даже у нас есть только ядро под нужную платформу и нужно быстренько протестировать задумку.
HEADER LED_PORT ' HERE @ , 0x 3039 ,
HEADER DELAY_CYCLES ' HERE @ , 0x 989680 ,
HEADER 0 ' HERE @ , 0x 0 ,
HEADER 1 ' HERE @ , 0x 1 ,

HEADER DELAY HERE CELL+ ,
немного низкоуровневого кода
ALIGN

HEADER OUTPORT HERE CELL+ ,
вывод в порт низкоуровнев и платформозависим, не так ли?
ALIGN

HEADER MAIN interpret# , HERE CELL-
' 1 , ' LED-PORT , ' OUTPORT ,
' DELAY ,
' 0 , ' LED-PORT , ' OUTPORT ,
' DELAY ,
BRANCH ,
' EXIT ,

Да, придется еще сделать BRANCH.

Впрочем, такое написание сразу станет неудовлетворять и быстро будет создан CONSTANT, CODE: , Word: , BEGIN, AGAIN. Под них нужно сделать еще низкоуровневый COMPILE.
То-есть надстройка над ядром начнет развиваться, но в ней не будет "лишних" слов. Вместе с тем уже наработанное можно использовать в следующих проектах.

Честно говоря руки чешутся попробовать перетащить эту систему куда-то еще. Под Колибри я делал порт, довел до консоли. Но это все-равно x86. Хочется поковырять совсем иную платформу. Что может быть полезно? Совсем не ориентируюсь в embedded.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 12:28 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Проблема возможна в том, что даже такой код (при этом я не утверждаю, что он "стандартный", это просто сценарий использования) не имеет гарантии быть поддержанным, если ядро системы почти ничего отсюда и не содержит. Для embedded важно не то, что все документировано и все можно сделать, а то, что уже можно делать что-то конкретное, выраженное в терминах операций с памятью и портами ВВ, созданием и обработкой структур данных, алгоритмами принятия решений и пр. Такие возможности, пусть они и могут быть определены через базовое ядро, все же подразумевают наличие определенных навыков. Как, к примеру, можно знать или не знать сортировку пузырьком. В ней самой по себе нет ничего чрезмерно сложного, но когда разработчик сталкивается с целой пачкой таких "в целом понятно, но что-то детали реализации никак в голове не уложатся". А в Форте это и INTERPRET, и IF THEN ELSE DO LOOP CASE, и словари, и CREATE DOES>, и что-нибудь еще по вкусу. Проблемы с реализацией этих вещей могут сделать Форт нефункциональным, а разночтения - несовместимыми.

Понятно, что никто не может охватить все. Понятно, что для embedded разработчика надо предоставить готовый инструмент. Форт предполагает, что программист сам создает нужные ему инструменты. Даже инструменты для создания инструментов. Понятно, что надо и фортера учить embedded и embedded разработчика учить Форту. И неизвестно что легче. :)

Вот почему-то все боятся разночтений. На мой взгляд идеальный форт-текст должен приближаться к basic-english. Попытки русифицировать форт неудачны в силу развитой морфологии русского языка. Очень неприятно ломать глаза об корявый русский текст. :)
Если написано HERE CREATE abc, то оно и читается так: "здесь создано абеце". В конце-концов читают же люди мануалы на английском и разночтений особенно не возникает.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 12:47 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1908
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 32 раз.
vpn289 писал(а):
Понятно, что для embedded разработчика надо предоставить готовый инструмент... Понятно, что надо и фортера учить embedded и embedded разработчика учить Форту. И неизвестно что легче.
Все намного упростится, если Вы перестанете считать FORTH чем-то, чему нужно учиться. И тем более, чем-то. что нужно писать заранее.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт система с минимальным ядром
СообщениеДобавлено: Ср апр 05, 2017 14:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6043
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
vpn289 писал(а):
Да, придется еще сделать BRANCH.

Впрочем, такое написание сразу станет неудовлетворять и быстро будет создан CONSTANT, CODE: , Word: , BEGIN, AGAIN. Под них нужно сделать еще низкоуровневый COMPILE.

Именно! :)
vpn289 писал(а):
Понятно, что никто не может охватить все. Понятно, что для embedded разработчика надо предоставить готовый инструмент. Форт предполагает, что программист сам создает нужные ему инструменты. Даже инструменты для создания инструментов. Понятно, что надо и фортера учить embedded и embedded разработчика учить Форту. И неизвестно что легче.

Часто встречаю мнение (и согласен с ним), что проще научить специалиста-предметника немножко программировать, чем учить программиста предметной области. Программист же не может сначала писать бухгалтерский софт, потом - САПР для крупнотоннажных кораблей, а потом АРМ медицинской установки. У него банально не хватит знаний о том, что он пишет. Именно здесь и есть хорошая ниша для скриптовых языков, в том числе и Форта. Раз у человека голова не замусорена никаким конкретным языком, он примерно одинаково воспримет и С, и 1С, и Лисп, и Форт.

Отсюда, правда, следует, что и стандартные конструкции управления можно хотя бы предложить. Потому что из BRANCH MARK RESOLVE, конечно, выводится IF WHILE REPEAT LOOP, но не вполне очевидно и не за пять минут. А мы же не ставим задачу продемонстрировать свое превосходство? Лучше ведь, когда такой специалист начинает практически с ходу мигать светодиодами, принимать сигналы от датчиков, работать с периферией и т.д. Там он уже себе наработает шаблоны кода, которые ему понравятся, но выход на его профессиональную сферу стоит сделать максимально простым.
vpn289 писал(а):
Вот почему-то все боятся разночтений.

Не стоит их бояться :) Когда практическое применение слабое, надо делать больше вариантов, чтобы было из чего выбирать.

vpn289 писал(а):
На мой взгляд идеальный форт-текст должен приближаться к basic-english. Попытки русифицировать форт неудачны в силу развитой морфологии русского языка. Очень неприятно ломать глаза об корявый русский текст.
Если написано HERE CREATE abc, то оно и читается так: "здесь создано абеце". В конце-концов читают же люди мануалы на английском и разночтений особенно не возникает.


Да, и даже транслитерация часто играет полезную роль - обращает внимание на то, что это технический термин. Это вообще проблема для Форта - вместо актуальных проблем не надо решать частные. Например, русификация, IDE, библиотеки, стандарты - это вторично и не решает основную проблему. А основная проблема - как упорядочить применение Форта, чтобы от него не шарахались, и чтобы не образовывалось энтузиастов, обещающих золотые горы из-за нового языка.


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

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


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

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


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

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