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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - гипер-расширяемость до других языков...
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода.
Концепция незавершённая, потому и ... без сколь-нибудь
Сообщение Добавлено: Пн янв 26, 2009 20:06
  Заголовок сообщения:  Re: гипер-расширяемость до других языков...  Ответить с цитатой
victor79 писал(а):
были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков.


Для Форта grace на основе gray5 - несколько утилит и для BNF
http://www.qlikz.org/forth/
Сообщение Добавлено: Пн янв 26, 2009 08:55
  Заголовок сообщения:   Ответить с цитатой
Mihail писал(а):
Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь.
Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы
представлялись в виде словарных статей.

Только все это проходит по категории "Форт ради Форта" и никак не помогает писать эффективные программы. Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода. И дело не в том, что можно или нельзя, а в том, что сама постановка вопроса говорит о нежизнеспособности направления на практике.
Сообщение Добавлено: Ср авг 06, 2008 16:46
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку.


Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь.
Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы
представлялись в виде словарных статей.
Сообщение Добавлено: Ср авг 06, 2008 16:33
  Заголовок сообщения:   Ответить с цитатой
VoidVolker писал(а):
mOleg писал(а):
Слишком много "фич" тоже плохо - сложно вникать.

При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.

Речь не столько о фичах, сколько о минимально необходимом ядре языка. Если ядро развесистое и навороченное, пользоваться им неудобно, потому что надо очень много всего учесть. Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку. А вот "несколько сотен реально используемых слов" из 3500 - нормальное соотношение. Это уже ядро плюс некие специализированные навороты, в которые можно углубиться при необходимости.
Сообщение Добавлено: Вт авг 05, 2008 23:31
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
Слишком много "фич" тоже плохо - сложно вникать.

При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.
Сообщение Добавлено: Вт авг 05, 2008 22:47
  Заголовок сообщения:   Ответить с цитатой
Mihail писал(а):
mOleg писал(а):нет необходимости в форте создавать другие языки!
Если другие языки нужны, то форте-окружение их не испортит.

Согласен.

Mihail писал(а):
Дополнительные возможности не могут быть недостатками по определению.

могут. Определение тут не при чем. Слишком много "фич" тоже плохо - сложно вникать.

Mihail писал(а):
Чем ограниченные лексиконы не другие языки?

так сразу и не скажу :)
лексиконы проще других языков (обычно), лексиконы наследуют форт-идеалогию, в то время как другие языки основаны на собственной.
Сообщение Добавлено: Вт авг 05, 2008 21:18
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
нет необходимости в форте создавать другие языки!


Если другие языки нужны, то форте-окружение их не испортит.
Дополнительные возможности не могут быть недостатками по определению.
Чем ограниченные лексиконы не другие языки?
Сообщение Добавлено: Вт авг 05, 2008 12:12
  Заголовок сообщения:   Ответить с цитатой
дело в том, что на самом деле так делать не дело ;)
А именно: нет необходимости в форте создавать другие языки!
Надо создавать ограниченные лексиконы, достаточные для решения задачи, спроектированные так, чтобы можно было легко расширять их функциональность.
Сообщение Добавлено: Пн авг 04, 2008 21:27
  Заголовок сообщения:   Ответить с цитатой
victor79 писал(а):
Код:

CODE: CMD CODE | CMD ;
CMD: (NAME ":=")? EXPR ";";
EXPR: NAME
| EXPR "*" EXPR
| EXPR "+" EXPR
| EXPR "/" EXPR
|...;


и таким образом описываются все структуры языка.


Во первы это описывает только синтаксис, нужно като задать семантику.
Может это описание достаточно наглядно, но наглядность вещь субъективная.
Жесткое описание не самое компактное. Его можно сократить за счет избыточных возможностей.
(эти возможности могут оказаться полезными).
На пример мое расширение Форта для применения инфиксной со скобками записи

http://spf.cvs.sourceforge.net/spf/deve ... iew=markup

выражение
Код:
_INF_  { 1+2*(1+TTT) } .

можно заменить на
Код:
_INF_  { 1+ 2 (1 TTT +)*  } .


Но пользователю этого можно и не знать.

Обрати внимание на размер текста infix.f, при том, что определения SCAN PASS\N MTOKEN
могут иметь общее назначение (могут применяться в других программых).

Смысл Форта в том, что слова-команды, из которых состоит форт-система независимы друг от друга.
Сообщение Добавлено: Пн авг 04, 2008 13:06
  Заголовок сообщения:   Ответить с цитатой
victor79 писал(а):
а что за продукты ANTLR и Gold Parser в двух словах?


Генераторы парсеров.

P.S. Поисковик может дать больше информации.
Граматики разбора можно отлаживать и визуализировать.
Сообщение Добавлено: Пн авг 04, 2008 11:44
  Заголовок сообщения:   Ответить с цитатой
а что за продукты ANTLR и Gold Parser в двух словах?
Сообщение Добавлено: Пн авг 04, 2008 09:38
  Заголовок сообщения:  Re: гипер-расширяемость до других языков...  Ответить с цитатой
victor79 писал(а):
были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков.

Вопрос: почему под форт такой вещи нету (я не видел упоминания), хотя форт отчасти позиционируется под замещение других языков?
да и многие другие решило бы моменты, которые сейчас делаются более сложными вещами.

.


Для Форта тоже есть:) И ищется по двум ключевым словам BNF Forth
Например в gforth ecть BNF парсер gray5

P.S. Не хватает, возможно, продукта для пользователя подобного ANTLR, Gold Parser
и др.
Сообщение Добавлено: Пн авг 04, 2008 09:14
  Заголовок сообщения:  гипер-расширяемость до других языков...  Ответить с цитатой
были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков. В среднем смысл их был таков:

Код:
CODE: CMD CODE | CMD ;
CMD: (NAME ":=")? EXPR ";";
EXPR: NAME
       | EXPR "*" EXPR
       | EXPR "+" EXPR
       | EXPR "/" EXPR
       |...;


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

пусть есть
S" описание языка Х" APPLYLANGUAGE
и дальше программируем на описаном языке.
или
S" описание языка Х" S" подпрограмма на языке Х" RUNLANGUAGE

Как это должно выполняться: в указанный синтаксис делаются вставки типа

NAME: {pos_parse @} "[a-z_][a-z0-9_]*" {OVER -} ;
/ в результате в стеке получаем указатель на имя и его длину

весь шаблон компилится в байт-код (компиляция этой штуки во многом похожа на компиляцию регулярных выражений), после применяется к коду языка Х, тоже подобно рег.выражениям. В результате применения формируется список из фортовских вставок, которые последовательно выполняются, перед выполнением каждой вставки перемещаем pos_parse на нужную позицию.
Сообщение Добавлено: Пн авг 04, 2008 08:41

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


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