Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода. Концепция незавершённая, потому и ... без сколь-нибудь
[quote="Хищник"]Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода. [/quote]Концепция незавершённая, потому и ... без сколь-нибудь
|
|
|
|
Добавлено: Пн янв 26, 2009 20:06 |
|
|
|
|
|
Заголовок сообщения: |
Re: гипер-расширяемость до других языков... |
|
|
victor79 писал(а): были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков.
Для Форта grace на основе gray5 - несколько утилит и для BNF
http://www.qlikz.org/forth/
[quote="victor79"]были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков. [/quote]
Для Форта grace на основе gray5 - несколько утилит и для BNF
http://www.qlikz.org/forth/
|
|
|
|
Добавлено: Пн янв 26, 2009 08:55 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Mihail писал(а): Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь. Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы представлялись в виде словарных статей.
Только все это проходит по категории "Форт ради Форта" и никак не помогает писать эффективные программы. Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода. И дело не в том, что можно или нельзя, а в том, что сама постановка вопроса говорит о нежизнеспособности направления на практике.
[quote="Mihail"]Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь. Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы представлялись в виде словарных статей.[/quote]
Только все это проходит по категории "Форт ради Форта" и никак не помогает писать эффективные программы. Введение других языков в Форт декларируется уже очень давно, без сколько-нибудь существенного полезного выхода. И дело не в том, что можно или нельзя, а в том, что сама постановка вопроса говорит о нежизнеспособности направления на практике.
|
|
|
|
Добавлено: Ср авг 06, 2008 16:46 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку.
Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь.
Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы
представлялись в виде словарных статей.
[quote="Хищник"]Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку.[/quote]
Вроде никто не предлагал валить все в одну кучу. Хотя комуто, может понадобится подобная смесь.
Следует организовать вставки других языков. Желательно, чтобы в результате компиляции новые программы
представлялись в виде словарных статей.
|
|
|
|
Добавлено: Ср авг 06, 2008 16:33 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
VoidVolker писал(а): mOleg писал(а): Слишком много "фич" тоже плохо - сложно вникать.
При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.
Речь не столько о фичах, сколько о минимально необходимом ядре языка. Если ядро развесистое и навороченное, пользоваться им неудобно, потому что надо очень много всего учесть. Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку. А вот "несколько сотен реально используемых слов" из 3500 - нормальное соотношение. Это уже ядро плюс некие специализированные навороты, в которые можно углубиться при необходимости.
[quote="VoidVolker"]mOleg писал(а): Слишком много "фич" тоже плохо - сложно вникать.
При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.[/quote]
Речь не столько о фичах, сколько о минимально необходимом ядре языка. Если ядро развесистое и навороченное, пользоваться им неудобно, потому что надо очень много всего учесть. Особенно если язык доведен сразу до состояния бейсикосипаскальфортранолиспа - куча доступных слов будет только мешать транслятору распознать опечатку. А вот "несколько сотен реально используемых слов" из 3500 - нормальное соотношение. Это уже ядро плюс некие специализированные навороты, в которые можно углубиться при необходимости.
|
|
|
|
Добавлено: Вт авг 05, 2008 23:31 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): Слишком много "фич" тоже плохо - сложно вникать.
При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.
[quote="mOleg"]Слишком много "фич" тоже плохо - сложно вникать.[/quote]
При наличии хорошей и удобной документации это совсем не так. Пример ннкрон - более 3500 тысяч слов, реально используемых конечно несколько сотен, и документация очень хоршая.
|
|
|
|
Добавлено: Вт авг 05, 2008 22:47 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Mihail писал(а): mOleg писал(а):нет необходимости в форте создавать другие языки! Если другие языки нужны, то форте-окружение их не испортит. Согласен. Mihail писал(а): Дополнительные возможности не могут быть недостатками по определению. могут. Определение тут не при чем. Слишком много "фич" тоже плохо - сложно вникать. Mihail писал(а): Чем ограниченные лексиконы не другие языки?
так сразу и не скажу
лексиконы проще других языков (обычно), лексиконы наследуют форт-идеалогию, в то время как другие языки основаны на собственной.
[quote="Mihail"]mOleg писал(а):нет необходимости в форте создавать другие языки! Если другие языки нужны, то форте-окружение их не испортит.[/quote] Согласен.
[quote="Mihail"]Дополнительные возможности не могут быть недостатками по определению.[/quote] могут. Определение тут не при чем. Слишком много "фич" тоже плохо - сложно вникать.
[quote="Mihail"]Чем ограниченные лексиконы не другие языки?[/quote]
так сразу и не скажу :)
лексиконы проще других языков (обычно), лексиконы наследуют форт-идеалогию, в то время как другие языки основаны на собственной.
|
|
|
|
Добавлено: Вт авг 05, 2008 21:18 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): нет необходимости в форте создавать другие языки!
Если другие языки нужны, то форте-окружение их не испортит.
Дополнительные возможности не могут быть недостатками по определению.
Чем ограниченные лексиконы не другие языки?
[quote="mOleg"]нет необходимости в форте создавать другие языки![/quote]
Если другие языки нужны, то форте-окружение их не испортит.
Дополнительные возможности не могут быть недостатками по определению.
Чем ограниченные лексиконы не другие языки?
|
|
|
|
Добавлено: Вт авг 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
могут иметь общее назначение (могут применяться в других программых).
Смысл Форта в том, что слова-команды, из которых состоит форт-система независимы друг от друга.
[quote="victor79"] Код:
CODE: CMD CODE | CMD ; CMD: (NAME ":=")? EXPR ";"; EXPR: NAME | EXPR "*" EXPR | EXPR "+" EXPR | EXPR "/" EXPR |...;
и таким образом описываются все структуры языка.[/quote]
Во первы это описывает только синтаксис, нужно като задать семантику.
Может это описание достаточно наглядно, но наглядность вещь субъективная.
Жесткое описание не самое компактное. Его можно сократить за счет избыточных возможностей.
(эти возможности могут оказаться полезными).
На пример мое расширение Форта для применения инфиксной со скобками записи
http://spf.cvs.sourceforge.net/spf/devel/~mak/infix.f?revision=1.4&view=markup
выражение
[code] _INF_ { 1+2*(1+TTT) } .[/code] можно заменить на [code] _INF_ { 1+ 2 (1 TTT +)* } .[/code]
Но пользователю этого можно и не знать.
Обрати внимание на размер текста infix.f, при том, что определения SCAN PASS\N MTOKEN
могут иметь общее назначение (могут применяться в других программых).
Смысл Форта в том, что слова-команды, из которых состоит форт-система независимы друг от друга.
|
|
|
|
Добавлено: Пн авг 04, 2008 13:06 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
victor79 писал(а): а что за продукты ANTLR и Gold Parser в двух словах?
Генераторы парсеров.
P.S. Поисковик может дать больше информации.
Граматики разбора можно отлаживать и визуализировать.
[quote="victor79"]а что за продукты ANTLR и Gold Parser в двух словах?[/quote]
Генераторы парсеров.
P.S. Поисковик может дать больше информации.
Граматики разбора можно отлаживать и визуализировать.
|
|
|
|
Добавлено: Пн авг 04, 2008 11:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
а что за продукты ANTLR и Gold Parser в двух словах?
а что за продукты ANTLR и Gold Parser в двух словах?
|
|
|
|
Добавлено: Пн авг 04, 2008 09:38 |
|
|
|
|
|
Заголовок сообщения: |
Re: гипер-расширяемость до других языков... |
|
|
victor79 писал(а): были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков.
Вопрос: почему под форт такой вещи нету (я не видел упоминания), хотя форт отчасти позиционируется под замещение других языков? да и многие другие решило бы моменты, которые сейчас делаются более сложными вещами.
.
Для Форта тоже есть:) И ищется по двум ключевым словам BNF Forth
Например в gforth ecть BNF парсер gray5
P.S. Не хватает, возможно, продукта для пользователя подобного ANTLR, Gold Parser
и др.
[quote="victor79"]были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков.
Вопрос: почему под форт такой вещи нету (я не видел упоминания), хотя форт отчасти позиционируется под замещение других языков? да и многие другие решило бы моменты, которые сейчас делаются более сложными вещами.
.[/quote]
Для Форта тоже есть:) И ищется по двум ключевым словам [b] BNF Forth [/b]
Например в 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 на нужную позицию.
были такие програмулины - yacc, bison; цель которых облегчать программирование синтаксиса языков. В среднем смысл их был таков:
[code] CODE: CMD CODE | CMD ; CMD: (NAME ":=")? EXPR ";"; EXPR: NAME | EXPR "*" EXPR | EXPR "+" EXPR | EXPR "/" EXPR |...; [/code]
и таким образом описываются все структуры языка. Любой структурный (вроде так это называется) язык можно описать за пару часов со всеми его нюансами (насколько его знаешь).
Вопрос: почему под форт такой вещи нету (я не видел упоминания), хотя форт отчасти позиционируется под замещение других языков?
да и многие другие решило бы моменты, которые сейчас делаются более сложными вещами.
пусть есть
S" описание языка Х" APPLYLANGUAGE
и дальше программируем на описаном языке.
или
S" описание языка Х" S" подпрограмма на языке Х" RUNLANGUAGE
Как это должно выполняться: в указанный синтаксис делаются вставки типа
NAME: {pos_parse @} "[a-z_][a-z0-9_]*" {OVER -} ;
/ в результате в стеке получаем указатель на имя и его длину
весь шаблон компилится в байт-код (компиляция этой штуки во многом похожа на компиляцию регулярных выражений), после применяется к коду языка Х, тоже подобно рег.выражениям. В результате применения формируется список из фортовских вставок, которые последовательно выполняются, перед выполнением каждой вставки перемещаем pos_parse на нужную позицию.
|
|
|
|
Добавлено: Пн авг 04, 2008 08:41 |
|
|
|
|