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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 02, 2009 12:43 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
chess писал(а):
Тут ведь речь идет о том, что вроде-бы благая идея ввести типы в Форте даст больше вреда чем пользы.

Идём на http://home.vrweb.de/stephan.becher/forth/doc/toc.htm - читаем документацию на StrongForth () (можно ещё посмотреть краткий учебник отсюда http://home.vrweb.de/stephan.becher/str ... /forth.zip) и пытаемся объяснить что тут такого вредного.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
be_nt_all писал(а):
Идём на http://home.vrweb.de/stephan.becher/forth/doc/toc.htm - читаем документацию на StrongForth () (можно ещё посмотреть краткий учебник отсюда http://home.vrweb.de/stephan.becher/str ... /forth.zip) и пытаемся объяснить что тут такого вредного.

От того, что нечто лежит в интернете, оно автоматически становится образцом для подражания?


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Хищник писал(а):
be_nt_all писал(а):
Идём на http://home.vrweb.de/stephan.becher/forth/doc/toc.htm -и пытаемся объяснить что тут такого вредного.

От того, что нечто лежит в интернете, оно автоматически становится образцом для подражания?


От то, что лежит в интернете, может стать образцом для подражания.
Но в данном случае, речь идет какраз о нетостатках данной системы.
Дело в том, что не всем они очевидны.


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Mihail писал(а):
Форт ничему не противоречит. И что за стековый механизм?
Есть стек данных которым можно пользоваться, при этом можно завести
еще кучу стеков и других структур даных. Вот я и завел стек типов, который
содердит идентификаторы обознацающие типы данных на стеке данных
и процедуры, которые которые действуют в зависимости от содержимого этого стека.

Вот после этого надо будет помнить что одни процедуры работают со стеком типов, а другие не работают.
Я ничего не имею против использования типов в конкретных задачах(где это сильно надо), но вводить
типы глобально как в StrongForth это по гибкости и расширяемости форта наносить удар - увольте.
На любом стеке лежат неименованные данные и как их толковать решает программист.
Есть направления действительно повышающие мощность форта, например, расширение в направлении
привнесения синтаксической нагрузки в имена, с целью упорядочить создание функций работающих с комбинаторно
организованными данными. Например так можно написать функции работы со строками - заменить все эти SEARCH, SPLIT,
S+ и т.д. и т.п. единой синтаксической конструкцией. От обилия слов работающих с комбинаторно организованными данными
это позволит избавиться. И таких примеров можно много привести. Причем введение синтаксического наполнения имен ни в чем
не ограничит Форт, а наоборот избавит программиста придумывать массу новых имен слов на ровном месте.

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


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
chess писал(а):
расширение в направлении привнесения синтаксической нагрузки в имена, с целью упорядочить создание функций работающих с комбинаторно организованными данными. Например так можно написать функции работы со строками - заменить все эти SEARCH, SPLIT, S+ и т.д. и т.п. единой синтаксической конструкцией. От обилия слов работающих с комбинаторно организованными данными это позволит избавиться

А это как? Можно по-проще объяснить? Пример привести?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


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

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Mihail писал(а):
Но в данном случае, речь идет как раз о нетостатках данной системы.
Дело в том, что не всем они очевидны.


Как опытный фортер и человек, делавший что то подобное можешь их разъяснить?


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
VoidVolker писал(а):
А это как? Можно по-проще объяснить? Пример привести?

Ну простейший пример - стексы.

Есть имена слов, работающих как стековые манипуляторы:
DUP DROP SWAP OVER и т.п.
заменяем их все и те которые еще отсутствуют на имена с привнесенным синтаксисом
вида n\n1n2n3..nk и теперь вместо:
DUP будет написано 1\11,
DROP 1\
SWAP 2\21
OVER 2\121
ROT 3\231
-ROT 3\312
2NIP 4\34 и т.п.
и как результат, можем вместо выписывания для (1 2 3 4 -- 4 1 ) NIP NIP SWAP, написать 4\41.

Лексемы стексов для парсера такой же материал как и имена форт-слов.
В словарях имена стексов не находятся, поэтому поиск должен перейти
в синтаксический разбор(в СПФ это делается после перехода на поиск лексем в статьях NOTFOUND).
В самих статьях NOTFOUND и можно производить синтаксический разбор имен с привнесенным в них синтаксисом.
Образуются связки: группа лексем определенной синтаксической конструкции - и кодовая база для
распознавания и формирования кода для лексем группы (назовем это тезаурусом для этой группы).
При этом минимизируется тезаурус такой связки на основе
именно комбинаторного характера образования кода каждого имени(лексемы) группы.
Код для каждого имени(лексемы) группы формируется в режиме компиляции,
а в режиме интерпретации(исполнения) не только формируется но и затем исполняется
и после исполнения удаляется из памяти.

Что по строкам.
Для, скажем пары строк, можно образовать группу лексем, для которой можно
создать соответствующий тезаурус, который будет формировать код, аналогичный
коду, который создают слова SEARCH, SPLIT, S+, и им подобные еще не существующие
с различным результатом. Вид синт. конструкции, охватывающий все результаты можно подобрать и не придумывать названий.

Навскидку:
\ для search, здесь b от begin, e от end, t - true, f - false, b2e1 - длина выходной строки от начала строки 2 в строке 1 до конца строки 1
s=b2,b2e1,t|s1,f
читается - если строка 2 целиком содержится в строке 1, то на выходе будет
адрес начала второй строки в первой строке, длина от адреса начала второй строки в строке один до адреса конца первой строки и TRUE,
а в случае несравнения строк - адрес строки 1, длина строки 1, FALSE.

Код:
\ search1
\ s1 ---------
\ s2   ----
\ out  -------
s=b2,u2,t|s1,f

\ search2
\ s1 ---------
\ s2   ----
\ out  ----
s=b1,b1b2,t|s1,f

\ split
\ s1      ----------
\ s2        ---
\ out     --   -----
s=b1,b1b2,e2,e2e1,t|s1,f

\ split-
\ s1      ----------
\ s2        ---
\ out     -----   --
s=e2,e2e1,b1,b1b2,t|s1,f
... и можно привести еще много разных вариантов исходных строк и функций над ними

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

Кстати потом можно наделать каких надо форт-слов под конкретную задачу.

: search ( a1 u1 a2 u2 -- a u true | a1 u1 false) s=b2,b1e1,t|s1,f ;
: split ( a1 u1 a2 u2 -- a3 u3 a4 u4 true | a1 u1 false) s=b1,b1b2,e2,e2e1,t|s1,f ;

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


Последний раз редактировалось chess Чт апр 09, 2009 06:04, всего редактировалось 1 раз.

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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Тип (сиречь "класс") - не только (и не столько) список предоставляемых внешнему миру описаний функций (методов) экземпляром этого типа, а - описание протокола взаимодействия с этим экземпляром (например, через описание синтаксиса протокола на РБНФ, напрямую поддерживаемого в языке программирования).
Подавляющее большинство программирующей братии пока, что до сего фахту ещё не допёрла... Ничего. Скоро жисть заставит. Хотя бы и через Sing# и иже с ним...


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Wlad писал(а):
Тип (сиречь "класс") - не только (и не столько) список предоставляемых внешнему миру описаний функций (методов) экземпляром этого типа, а - описание протокола взаимодействия с этим экземпляром (например, через описание синтаксиса протокола на РБНФ, напрямую поддерживаемого в языке программирования).
Подавляющее большинство программирующей братии пока, что до сего фахту ещё не допёрла... Ничего. Скоро жисть заставит. Хотя бы и через Sing# и иже с ним...


Это не отсюда? :)
http://www.delphikingdom.com/asp/viewit ... logid=1013


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Не знаю, я того ще не читал. Но за ссылку - огромное спасибо!

Про интерфейсы, описываемые не только через классические функциональные наборы-списки (что однобоко и чисто статический аспект имеет), но и через РБНФ обмена - я из Композиты и вообще трудов ETHZ узнал. Юрг Гуткнехт с Зуевым реализовали впервые это в Зонноне. Потом это подхватили в Швейцарском офисе МС ресёрч. Дальше - ушло пред светлы очи САМОГО. Наконец, когда мужичьё из Рэдмонда НАКОНЕЦ ДОПЁРЛО, Ч_Т_О им на блюдечке с голубой каёмочкой птенцы гнезда Виртового ОПЯТЬ принесли - быстренько к рукам прибрали. Появилось слово Singularity. Правда там, про ETHZ уже ВООБЩЕ никто ничего не вспоминает (так, только Меза упомянута вскользь). ... Гавнюки - они всегда и везде гавнюками остаются.

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

Какое это всё имеет отношение к форту? Ну, скажем так, что некий класс стековых автоматов очень внятно может описывать такого рода протоклолы обмена - следовательно и наиболее естественно будет реализовывать оте самые "стражи", которые на входах/выходах общающихся сущностей будут блюсти соблюдение протоколов (последовательности посылаемых/принимаемых аргументов, их типов и попадание в диапазоны значений аргументов сообщений/ответов)...

Примерно так-с, для начала...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth vs Python
СообщениеДобавлено: Пн дек 03, 2018 13:13 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Forth in Python

P.S. C github PyForth - A minimal implementation of the FORTH language, written in Python.
Other PyForth
...
Google запрос "Forth in Python Github"


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth vs Python
СообщениеДобавлено: Пн дек 03, 2018 15:24 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вот объясните мне.
Зачем, делать форт-системы на интерпретируемых языках (Питон, Луа и пр.)?
В чём выгода, а?

В расчёт не берём жабу, поскольку это чуть ли не стандарт де-факто для программирования на мобилах.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth vs Python
СообщениеДобавлено: Пн дек 03, 2018 15:45 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
Вот объясните мне.
Зачем, делать форт-системы на интерпретируемых языках (Питон, Луа и пр.)?
В чём выгода, а?

В расчёт не берём жабу, поскольку это чуть ли не стандарт де-факто для программирования на мобилах.

Могут быть варианты работы с кодовой базой на Форт в уже успешном проекте сделанном на Phyton (например в FlatCam),
к тому же для Phyton много наделали разных библиотек (производительность кода пока не рассматриваем :)
Но, в целом, да нонсенс.

P.S. Книга по JNI Java
Среди прочих языков есть и TCL в симбиозе с Форт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth vs Python
СообщениеДобавлено: Пн дек 03, 2018 16:22 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
А использовать совместно форт и питон, к примеру, с помощью сокетов совесть не позволяет :?:

_________________
Цель: сделать 64-битную Нову под Винду


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

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


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

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


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

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