word, vocabulary, namespace

46 messages Options
Embed this post
Permalink
1 2 3
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov
Привет!
Скажу еще о виртуализации методов и объектов :)

On 8/6/08, Andrey Cherezov <[hidden email]> wrote:
> с "виртуальными" словарями путь более прямой, естественный и прозрачный:
> выделяется набор слов, через которые идёт всё откладывание кода, и этот
> набор реализуется собственным способом для каждого типа словарей.

Список слов, как объект, имеет два метода: добавить отношение и
разрешить имя (удалять отношения не принято), скажем:
RELATE-WORDLIST ( x addr u wid -- )
FIND-WORDLIST ( addr u wid -- x true | addr u false )
(опционально еще CAR и CDR для перечисления)

Эти методы могут быть как угодно виртуализованы, работая по своему для
различных wid (этот wid явно передается параметром), но их набор и
сигнатура должны быть те же. Примерно так же, как методы READ-FILE и
WRITE-FILE работают для файлов и для пайпов.


Допустим, выделен лексикон слов для откладывания кода, данных,
формирования потока исполнения и законченных определений,
представляемых в виде xt. Это немалый набор, который использует
область кода, область данных, управляющий стек, и подразумевает
внутреннее состояние и сохранение баланса (треть форт-системы ;).
Таким образом, за этим набором слов стоит некоторый объект, и эти
слова — методы к нему. Назовем этот объект кодогенератором. Заметьте,
объект "кодогенератор" является окружающим и не требует идентификатора
при обращении к нему. Это удобно, когда методов много, а
объектов-экземпляров мало (один).

Как быть, если иногда требуется работать с двумя или тремя объектами
"кодогенератор"? (реальный пример такой ситуации — сборка целевой
системы с иным форматом кода, чем инструментальная система). Поступить
так же, как для списка слов, передавать объект параметром — слишком
неудобно.


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


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

Код, который должен не зависеть от конкретного кодогенератора и
работать с каждым, загружается для каждого из этих дву-трех
кодогенераторов, привязываясь статически. Да, получается накладной
расход в памяти (будет несколько похожих экземляров объектного кода,
вместо одного экземпляра), но главное, что не будет накладных расходов
в исходном коде, и реализация каждого из кодогенераторов может без
модификаций использоваться как единственная в системе. В качестве
бонуса — оно будет работать быстрей, т.к. нет уровня косвенности в
виде "указателя на текущий объект".


--
Ruvim
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Добрый день, Ruvim Pinka!

Ваше сообщение от 09.08.2008 16:12:
> Скажу еще о виртуализации методов и объектов :)
>  
[Я не пропустил это письмо. Просто сильно выпал из контекста, и теперь
мне надо
поджидать большой кусок времени, чтобы въехать обратно и осмысленно
ответить.]


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov
Привет!

2008/8/6 Andrey Cherezov <[hidden email]>
 
Например, libxml2 очень большая, всю разом не обернешь (да и ненадо).
Поэтому, на разные ее части могут быть разные независимые файлы с
обертками. Поэтому, никакая конкретная либа с обертками не может
полагать, что слово libxml2.dll уже есть, или что его обязательно
нету. Красивого разрешения этой ситуации еще нет.
По-моему, раз не может ничего полагать, и раз никакие чужие обертки ей не
нужны, то может смело определять повторно ALSO SO NEW:, и ни к каким
сбоям это привести не должно.

Найдена альтернатива для "NEW:" (в применении к совместимым DL на разных платформах) — условное исполнение. Если слово найдено — выполнить его; иначе — игнорировать. Например, слово MAYBE ( c-addr u -- ) (см. коммит в spf4-ffi-sugar.test.f)

ALSO SO
  `libxml2.dll MAYBE
  `libxml2.so MAYBE

Или

ALSO SO
  MAYBE: libxml2.dll
  MAYBE: libxml2.so

При таком использовании  "NEW:", у нас болтаются заведомо ненужные слова (т.к. заводится и "libxml2.dll" и "libxml2.so", но может использоваться и используется только одно их них). В случае "MAYBE" ничего лишнего в системе не заводится :)


 
Даже если будут перечислены не все возможные
расположения/имена для всех возможных ОС/версий - просто под какой-то ОС
_эта либа_ не скомпилируется, только и всего. Тогда автор добавит строку, если
ему эта ОС нужна.

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

Типа : libxml2.dll libxml2.so ;
или:   ALSO SO DEFINITIONS : libxml2.dll libxml2.so ; PREVIOUS


--
Ruvim

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov
Привет!
Пожалуй, пока Андрей поджидает большой кусок времени, можно высказать самые крамольные иди! ;)

2008/8/4 Andrey Cherezov <[hidden email]>
:)  ну, ты же допускаешь отдавать даже целой строкой, а тут отдается одним словом. Принципиальной разницы нету, имхо.
Принципиальная разница в том, что целой строкой передается предложение на языке другой системы (sql, например, или javascript, или файловый путь), а ты предлагаешь придумывать новый синтаксис _для форта_.


Граница между фортом и не-фортом проходит там, где мы ее проложим. Что есть нативная часть форт-системы, а что — чужеродная, вопрос сугубо когнитивный ;)

Например, взять те же слова-числа (числовые литералы) в классическом исполнении. Для парсера это цельное имя, которое он выбирает так же, как и другие имена, и отправляет на трансляцию. "Транслятор имени" вначале интерпертирует это имя как имя форт-слова, затем, получив неудачу, интерпретирует его как число, получает успех и само число в бинарном виде на стеке. Далее, это число (в бинарном виде) транслируется как числовой литерал: в режиме 0 остается на стеке, а в режиме 1 откладывается в текущее определение как числовой литерал.

Так вот, "имена чисел" имеют свой непростой синтаксис, с которым знаком только "интерпретатор числа (имени-числа)" (основа для слова ">NUMBER"). В этот синтаксис входят такие варианты как: двойной размер, основание системы счисления, формат с плавающей точкой. Для форта этот синтаксис, или не для форта — какая разница? Он есть. И это есть прецедент — значит, аналогично могут использоваться и другие синтаксисы :)


Простое форт-решние для чисел (и т.п.): это слово-префикс, маскирующее от фортового "транслятора имени" все, что не является форт-словами (как сделано для строк — слово 'S"' ). Функция "интерпретатор числа" в системе все-равно будет, но при этом фортовский "транслятор имени" останется простейшим.
Расширять же "транслятор имени", чтобы он понимал что-то еще, кроме форт-слов, — более трудное решение. Но оно выигрывает, потому что его проще использовать!




Касательно привязки функции "транслятор имени" к списку слов. Смысл этого в том, чтобы используя слова ALSO и PREVIOUS управлять порядоком трансляции имен. Но, если список слов будет иметь свой "транслятор имени", то это уже не список слов, а "транслятор имени" и есть (т.к. список слов в нем глубоко опционален).

Таким образом, либо система работает со всеми объектами в стеке контекста через метод "FIND-WORDLIST" и эти объекты — списки слов, либо со всеми объектами — через метод "TRANSLATE-NAME" ( i*x addr u obj -- j*x true | i*x addr u false ) и эти объекты — трансляторы имен. Причем, во втором случае списки слов функционально в системе все-равно останутся (для нативных слов), но будут прикидываться "трансляторами имен".

Мое же предпочтение иному решению: иметь отдельный стек трансляторов имен (отдельный от стека списков слов).  Слова ALSO и PREVIOUS по старому работают со стеком списка слов, а трансляция чисел, или еще чего чужеродного — добавляется и управляется через стек трансляторов имен.




Касательно фраз на другом языке. Общая тенденция состоит в том, чтобы фразы на разных языках могли легко и естественно смешиваться, переплетаться без маскировки. При этом "свой язык" обертывает "чужой язык", на сколько может (хм. звучит забавно ;).
В форте таким примером является поддержка ассемблера (даже не постфиксного, а обычного); да даже явная поддержка чисел в форте, вместо обращения с ними через слова-префиксы, тоже является тому подтверждением.
В JavaScript непосредственно поддерживаются фразы на языке регулярных выражений (RegExp).
Для платформы .NET есть проект LINQ (Language INtegrated Query). В нем реализуется поддержка для смешивания фраз, например,  C# и SQL (и т.п.).
XML в этот отношении вообще тотален, т.к. почти автоматически дает такую поддержку всем языкам, на нем основанным. Вопиющие примеры это и XSLT, и SVG с XHTML. В ForthML тоже можно будет записывать фрагменты xml-документов без xml-маскировки :)

Таким образом, при всем этом говорить о недопустимости новых синтаксисов в рамках форта — по меньшей мере, опрометчиво ;)


--
Ruvim

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Michelle Beloshitsky

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
On Wed, 13 Aug 2008 23:52:11 +0600, Ruvim Pinka <[hidden email]>  
wrote:

> Таким образом, при всем этом говорить о недопустимости новых синтаксисов  
> в рамках форта — по меньшей мере, опрометчиво ;)

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

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

"some - thing"

да и вообще можно писать

(some thing, body)

и никто не догадается, что это форт :)

--

See ya,
           Michelle Beloshitsky aka itanko

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Michelle Beloshitsky

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
On Wed, 13 Aug 2008 23:52:11 +0600, Ruvim Pinka <[hidden email]>
wrote:

> Таким образом, при всем этом говорить о недопустимости новых синтаксисов  
> в рамках форта — по меньшей мере, опрометчиво ;)

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

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

"some - thing"

да и вообще можно писать

(some thing, body)

и никто не догадается, что это форт :)

--

See ya,
            Michelle Beloshitsky aka itanko

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
День добрый!

On 8/13/08, Michelle Beloshitsky <[hidden email]> wrote:
> Кстати вот, что подмывало всегда (и сейчас подмывает :) сделать транслятор
> форта, с требованием свойства префиксности при определении новых слов
> (возможно я не очень точно выражаюсь, суть в том, чтобы никакое более
> короткое слово не могло быть префиксом более длинного).
> Это позволило бы нам убрать обязательные пробелы в некоторых местах,

И что мешает сделать его?  Это ведь просто: взгляните на photon.f от
Азамата — описываемый Вами еще раз в пять-десять проще.

Но, о чем речь, — Вы ведь все-равно не будете его использовать ;)

--
Ruvim
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
Some javascript/style in this post has been disabled (why?)
Добрый день, Ruvim Pinka!

Ваше сообщение от 13.08.2008 20:52:
Пожалуй, пока Андрей поджидает большой кусок времени, можно высказать самые крамольные иди! ;)
:) Для ответа на такие идеи большой кусок времени не нужен ;)
Касательно привязки функции "транслятор имени" к списку слов. Смысл этого в том, чтобы используя слова ALSO и PREVIOUS управлять порядоком трансляции имен. Но, если список слов будет иметь свой "транслятор имени", то это уже не список слов, а "транслятор имени" и есть (т.к. список слов в нем глубоко опционален).
Есть (или по крайней мере были) форты, в которых так и сделано - некий словарь, в котором виртуально находятся все числа, т.е. FIND их находит в обычном порядке (и этот словарь обычно последний в списке словарей для поиска). Это из разряда таких симпатичных "хаков", как "слово нулевой длины" (в советских фортах), которое помещается в словарь, чтобы всегда "находиться" в конце интерпретируемой строки и при выполнении завершать трансляцию строки. Это снимает с транслятора необходимость знать об особом признаке конца трансляции, т.е. "бери слово - ищи слово - выполняй слово" без проверки каких либо дополнительных условий - все решения на совести словарей контекста.
Таким образом, либо система работает со всеми объектами в стеке контекста через метод "FIND-WORDLIST" и эти объекты — списки слов, либо со всеми объектами — через метод "TRANSLATE-NAME" ( i*x addr u obj -- j*x true | i*x addr u false ) и эти объекты — трансляторы имен. Причем, во втором случае списки слов функционально в системе все-равно останутся (для нативных слов), но будут прикидываться "трансляторами имен".

Мое же предпочтение иному решению: иметь отдельный стек трансляторов имен (отдельный от стека списков слов).  Слова ALSO и PREVIOUS по старому работают со стеком списка слов, а трансляция чисел, или еще чего чужеродного — добавляется и управляется через стек трансляторов имен.
Хорошее решение. В PostScript'е вот тоже несколько стеков разных назначений. И PostScript для меня крамолой (не-фортом) не является :) А ты вообще предлагаешь практически 100%-совместимое решение.
Касательно фраз на другом языке. Общая тенденция состоит в том, чтобы фразы на разных языках могли легко и естественно смешиваться, переплетаться без маскировки. При этом "свой язык" обертывает "чужой язык", на сколько может (хм. звучит забавно ;).
В форте таким примером является поддержка ассемблера (даже не постфиксного, а обычного); да даже явная поддержка чисел в форте, вместо обращения с ними через слова-префиксы, тоже является тому подтверждением.
В JavaScript непосредственно поддерживаются фразы на языке регулярных выражений (RegExp).
Для платформы .NET есть проект LINQ (Language INtegrated Query). В нем реализуется поддержка для смешивания фраз, например,  C# и SQL (и т.п.).
XML в этот отношении вообще тотален, т.к. почти автоматически дает такую поддержку всем языкам, на нем основанным. Вопиющие примеры это и XSLT, и SVG с XHTML. В ForthML тоже можно будет записывать фрагменты xml-документов без xml-маскировки :)
В новом JavaScript'е можно "без маскировки" использовать xml в литералах, т.е. "name = <xml><..."
Но JavaScript при это остается самим собой, без введения команд в виде xml.
Таким образом, при всем этом говорить о недопустимости новых синтаксисов в рамках форта — по меньшей мере, опрометчиво ;)

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


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Привет!

On 8/14/08, Andrey Cherezov <[hidden email]> wrote:
[...]
>> Касательно привязки функции "транслятор имени" к списку слов. Смысл
>> этого в том, чтобы используя слова ALSO и PREVIOUS управлять порядоком
>> трансляции имен. Но, если список слов будет иметь свой "транслятор
>> имени", то это уже не список слов, а "транслятор имени" и есть (т.к.
>> список слов в нем глубоко опционален).

> Есть (или по крайней мере были) форты, в которых так и сделано - некий
> словарь, в котором виртуально находятся все числа, т.е. FIND их находит
> в обычном порядке (и этот словарь обычно последний в списке словарей для
> поиска).

Если FIND находит их в обычном порядке, возвращая нативный xt — то,
как объект, это "список слов" (пусть и виртуальный), а не "транслятор
имени". И то и другое — допустимые решения. Но, вредно "транслятор
имени" называть "списком слов" и смешивать эти понятия в термине
"словарь".

Принципиальная разница между между ними состоит в том, что к списку
слов обращение идет через метод FIND-WORDLIST, возвращающий xt
(который можно выполнить или отложить), а к "транслятору имени"
обращение идет с просьбой транслировать имя (скажем, с называнием
"TRANSLATE-NAME") по его внутренним правилам и — выполнить семантику
исполнения, связанную с заданным именем, если режим 0, или отложить
эту семантику, если режим 1.

При этом, FIND-WORDLIST не имеет явных побочных эффектов и является
идемпотентным (как метод GET в HTTP [1]), а TRANSLATE-NAME явно имеет
побочный эффект  (как метод POST в HTTP), в том числе пишет в HERE в
режиме 1 столько раз, сколько его вызвали.

   [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.2



>> Касательно фраз на другом языке. Общая тенденция состоит в том, чтобы
[...]
> В новом JavaScript'е можно "без маскировки" использовать xml в
> литералах, т.е. "name = <xml><..."

О, точно! E4X (ECMAScript for XML) тоже хороший пример. Правда,
синтаксис XPath пришлось им переложить на JS, как есть — не пошло.


> Но JavaScript при это остается самим собой, без введения команд в виде xml.
Естественно. Иначе он бы уже не назывался JavaScript. Так же, как
ForthML не называется Forth :)


>> Таким образом, при всем этом говорить о недопустимости новых
>> синтаксисов в рамках форта — по меньшей мере, опрометчиво ;)
>>
> А я такое разве говорил? Если говорил, то в другом контексте :)

В контексте темы о вызове внешних функций, и указания числа параметров
синтаксиом типа "xmlNormalizeURIPath(1)" ;)


> Само программирование на Форте является расширением не только
> функциональных его возможностей, но и лексических.
> Но вот ты выделил выше слово "/естественно/ смешиваться". Вопрос в том,
> что является естественным. Твои "вопиющие примеры" - это все xml-языки,
> поэтому они друг с другом и другими xml-языками (html, ForthML) будут
> смешиваться естественно.

Неестественно смешивается, например, php и html (и множество других
подобных решений).

С фортом хорошо смешиваются языки, которые укладываются в слова,
разделенные пробелами :) Разного рода числа, рациональные дроби,
римские, битовые или иные маски, записанные одним словом
арифметическое или регулярное выражение, ноты-звуки, URN, т.е. все это
некоторые DSL общего или частного назначения.
А в метафорт хорошо включаются как чисто конкатенативные фразы на
форте, так и xml-фичи.

--
Ruvim
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, Ruvim Pinka!

Ваше сообщение от 14.08.2008 5:02:
А я такое разве говорил? Если говорил, то в другом контексте :)
    
В контексте темы о вызове внешних функций, и указания числа параметров
синтаксиом типа "xmlNormalizeURIPath(1)" ;)
  
Да, правильно я там говорил :) Этот пример синтаксиса неправильный, сишный.
Форт и Си - языки одного уровня и примерно одного назначения, их вообще не стоит
смешивать.
Само программирование на Форте является расширением не только
функциональных его возможностей, но и лексических.
Но вот ты выделил выше слово "/естественно/ смешиваться". Вопрос в том,
что является естественным. Твои "вопиющие примеры" - это все xml-языки,
поэтому они друг с другом и другими xml-языками (html, ForthML) будут
смешиваться естественно.
    
Неестественно смешивается, например, php и html (и множество других
подобных решений).
  
Да. PHP с HTML плохо смешивается. Вот с Си он бы нормально смешался.
Такой симпатичный гибрид двух уродцев получится.

Форт с html также плохо смешивается, но мой ForthScript (других записей из форта
и html вперемешку я не знаю) и не претендует на роль языка. Это просто str5.f :)
В смысле не больше претендует, чем html претендует на роль русского языка
(хотя и смешивается с ним в разметке :).
А в метафорт хорошо включаются как чисто конкатенативные фразы на
форте, так и xml-фичи.
  
Метафорт... Скорее препроцессор для форта. Т.е. смесь форта и xml можно
программно "сплющить" в чистый форт (текст) и интерпретировать его вместо исходной смеси.



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Привет!
не в тему уже, но таки

2008/8/14 Andrey Cherezov <[hidden email]>
 
Метафорт... Скорее препроцессор для форта. Т.е. смесь форта и xml можно
программно "сплющить" в чистый форт (текст) и интерпретировать его вместо исходной смеси.

А форт можно программно "сплющить" в ассемблер (текст). Значит, он препроцессор ассемблера? Что-то тут не так ;)


--
Ruvim

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, Ruvim Pinka!

Ваше сообщение от 14.08.2008 13:08:
Метафорт... Скорее препроцессор для форта. Т.е. смесь форта и xml можно
программно "сплющить" в чистый форт (текст) и интерпретировать его вместо исходной смеси.

А форт можно программно "сплющить" в ассемблер (текст). Значит, он препроцессор ассемблера? Что-то тут не так ;)
Конечно не так. Ассемблер - не интерпретатор, поэтому сплющить можно, но не все.
Вот при целевой компиляции можно плющить форт хоть в ассемблер, хоть в Си.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Привет!

2008/8/14 Andrey Cherezov <[hidden email]>
Метафорт... Скорее препроцессор для форта. Т.е. смесь форта и xml можно
программно "сплющить" в чистый форт (текст) и интерпретировать его вместо исходной смеси.

А форт можно программно "сплющить" в ассемблер (текст). Значит, он препроцессор ассемблера? Что-то тут не так ;)
Конечно не так. Ассемблер - не интерпретатор,

А если взять форт-ассемблер? (тот же Шнайдеровский, к примеру).

 
поэтому сплющить можно, но не все.

Точно так же и из ForthML — сплющить можно, но далеко не все. Лишь самые простые варианты.


Вот при целевой компиляции можно плющить форт хоть в ассемблер, хоть в Си.

И тоже программно. Вобщем, 'программно "сплющить"' — это не аргумент! ;)

А еще есть такое интересное понятие, как трансформация — преобразование программы из одной формы в другую.

--
Ruvim

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, Ruvim Pinka!

Ваше сообщение от 14.08.2008 18:59:
Конечно не так. Ассемблер - не интерпретатор,

А если взять форт-ассемблер? (тот же Шнайдеровский, к примеру).
А это просто форт! В каком ассемблере кроме форт-ассемблера есть
возможность сразу запускать только что скомпилированное и даже
использовать это для дальнейшей трансляции?

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
2008/8/5 Ruvim Pinka <[hidden email]>
2008/8/5 Andrey Cherezov <[hidden email]>

Хотя мне нынешний вариант
ALSO SO NEW: libxml2.dll
ALSO SO NEW: /usr/lib/libxml2.so.2
(который тоже оказался прямым незапланированным следствием подхода)
нравится как раз тем, что можно без IF/[IF] обходиться - поиск сам
"бесплатно" все решает.

Небольшии минусы этого решения:

1. Надо знать, загруженна уже эта либа, или нет. Если загружена, делать:
   ALSO libxml2.dll
а если не загруженна, то делать:
  ALSO NEW: libxml2.dll
(конечно, можно всегда делать "NEW:", но это некий оверхед и предупреждения).

2. Надо перечислять все платформы (и пути?), даже когда нет зависимости от платформы. Т.е., каждый раз вместо одного ALSO делать два (или три). При добавлении совместимой платформы надо править все такие места.

Попался живой красноречивый пример: "sync path to libxml2 with ~ac/lib/lin
" — http://spf.cvs.sourceforge.net/viewvc/spf/devel/~ygrek/lib/spec/rss.f?r1=1.5&r2=1.6


--
Ruvim

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Andrey Cherezov

Re: word, vocabulary, namespace

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)
Добрый день, Ruvim Pinka!

Ваше сообщение от 09.02.2009 18:57:
2008/8/5 Ruvim Pinka <[hidden email]>
2008/8/5 Andrey Cherezov <[hidden email]>

Хотя мне нынешний вариант
ALSO SO NEW: libxml2.dll
ALSO SO NEW: /usr/lib/libxml2.so.2
(который тоже оказался прямым незапланированным следствием подхода)
нравится как раз тем, что можно без IF/[IF] обходиться - поиск сам
"бесплатно" все решает.

Небольшии минусы этого решения:

2. Надо перечислять все платформы (и пути?), даже когда нет зависимости от платформы. Т.е., каждый раз вместо одного ALSO делать два (или три). При добавлении совместимой платформы надо править все такие места.

Попался живой красноречивый пример: "sync path to libxml2 with ~ac/lib/lin
" — http://spf.cvs.sourceforge.net/viewvc/spf/devel/~ygrek/lib/spec/rss.f?r1=1.5&r2=1.6
Использование явно заданных путей можно считать просто временной ошибкой (моей). Сейчас по умолчанию ищет ОС, а в сложнозамороченных ситуациях типа Eserv'а идёт перебор дополнительных путей внутри vDLOPEN. Всё работает стабильно. Кроме Игрека расширяет эти либы и asm@, и у меня за это время еще несколько применений нашлось, так что можно сказать, что решение пустило корни. Указанный выше плюс стал еще жирнее: прозрачный поиск действительно удобен. Минусы реально заминусеют в третьей платформе (когда-нибудь), но нужно ли будет расширять там либу (или к тому времени всё нужное будет в базовой), и будет ли сама dll/so там - еще вопрос.

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Victor Korolev

Объем словаря

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)

 
Добрый день!
Заметил, что у СПФ есть ограничение на объем скомпилированного кода,
где-то после 500 кб не сохраняет по SAVE и начинает ругаться.
Если это так можно, ли как то увеличить размер для словарей?
Не хотелось бы разбивать программу на несколько exe-ников.
Виктор.


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Ruvim Pinka

Re: Объем словаря

Reply Threaded More More options
Print post
Permalink
День добрый!

2009/2/16 КВВ <[hidden email]>
Заметил, что у СПФ есть ограничение на объем скомпилированного кода,
где-то после 500 кб не сохраняет по SAVE и начинает ругаться.
Если это так можно, ли как то увеличить размер для словарей?

spf4.exe IMAGE-SIZE 10 1024 * 1024 * + TO IMAGE-SIZE S" spf4-big.exe" SAVE BYE

Далее используйте spf4-big.exe, в котором доступно ~10 Mb


--
Ruvim

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Victor Korolev

Объем словаря

Reply Threaded More More options
Print post
Permalink

> spf4.exe IMAGE-SIZE 10 1024 * 1024 * + TO IMAGE-SIZE S" spf4-big.exe" SAVE
> BYE
>
> Далее используйте spf4-big.exe, в котором доступно ~10 Mb
>
>
> --
> Ruvim

Большое спасибо!



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Victor Korolev

Re: Объем словаря

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
Some javascript/style in this post has been disabled (why?)

> spf4.exe IMAGE-SIZE 10 1024 * 1024 * + TO IMAGE-SIZE S" spf4- big.exe" SAVE BYE
> Далее используйте spf4-big.exe, в котором доступно ~10 Mb
 
Все работает, единственное с сохранненнми ресурсами по src\tsave.f  программа не запускается.


 
 
 
 

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
1 2 3