Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 00:57

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Пт окт 15, 2010 20:46 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Здравствуйте!

Давно присматривался к этому языку программирования, лет эдак 5-7, да все руки не доходили. Сам долгое время программирую на Perl и C++. А вот сейчас пытаюсь разобраться с Фортом, ну и как у всех возникают вопросы. Просматривал бегло учебники, FAQ, посты на форуме, тем не менее - вопросы есть, и если вы сможете мне на них ответить, буду благодарен. Возможно в ваших рядах появится еще один "однополчанин" :)

А вопросы вот какие:

  • Есть ли реализации Форта под FreeBSD/OpenBSD/NetBSD, если "да", развиваются ли они?
  • Есть ли реализации Форта под операционные системы мобильных устройств?
  • Есть ли в природе продукты, написанные на Форте, с развитым GUI-интерфейсом, типа графических редакторов, органайзеров, систем моделирования? (eServ и nnCron видел)
  • Есть ли в природе сложные продукты, написанные на Форте - типа клиент-серверных систем, систем с распределенной обработкой?
  • Есть ли в природе работающие/востребованные программные продукты, написанные не для M$ Windows?
  • Есть ли сложности/удачные примеры в "подключении" GUI-механизмов типа Qt или vxWindows или других подобных (не WinAPI и желательно многоплатформенных)?
  • Что есть "саморасширяющаяся" система программирования? Почему С++ не подходит под этот термин?
  • Можно ли на Форте создавать ActiveX/COM компоненты?
  • Если gcc - компилятор, а Borland CBuilder - интегрированная среда, то что есть Форт с этой точки зрения?

Извините, что так много наспрашивал. Буду признателен даже если ответите линками на материал. Спасибо!

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Пт окт 15, 2010 22:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Отвечу, на что смогу. Что касается версий, кроссплатформенности, поддержки - думаю, тут удобнее будет работать с поисковыми системами, потому что каждый отвечающий на такие вопросы что-то да пропустит.
Majestic писал(а):
Есть ли сложности/удачные примеры в "подключении" GUI-механизмов типа Qt или vxWindows или других подобных (не WinAPI и желательно многоплатформенных)?

Вот такое мы делали на Qt
http://msyst.ru/Euroforth2009.pdf
Majestic писал(а):
Что есть "саморасширяющаяся" система программирования? Почему С++ не подходит под этот термин?

Потому что программа на C++, как правило, не имеет средств достраивания себя в рантайме, а программа на Форте часто именно на этой возможности и построена. Наблюдения показывают, что проекты на Форте, которые пытаются копировать функционал С++, идут с большим скрипом. А вот если функционал не фиксирован, а требует расширения и модификации в процессе работы, то возможности Форта срабатывают очень хорошо.
Majestic писал(а):
Если gcc - компилятор, а Borland CBuilder - интегрированная среда, то что есть Форт с этой точки зрения?

Форт - язык. (С++ - язык, gcc - реализация языка в компиляторе, CBuilder - среда).

Majestic писал(а):
Извините, что так много наспрашивал.

Спросить еще больше можно в irc (ссылка туда на главной странице).



За это сообщение автора Hishnik поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 02:20 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Majestic писал(а):
Что есть "саморасширяющаяся" система программирования?

Возможно, термин не совсем правильный. Сам по себе, разумеется, язык расширяться не может.
Это делает программист (сам, без особой помощи со стороны).

Majestic писал(а):
Почему С++ не подходит под этот термин?

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

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)



За это сообщение автора WingLion поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 07:21 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Спасибо за достаточно оперативные ответы!
WingLion писал(а):
Majestic писал(а):
Что есть "саморасширяющаяся" система программирования?

Majestic писал(а):
Почему С++ не подходит под этот термин?

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

Вот тут самая непонятная непонятка. Во многих материалах термин "саморасширяющаяся" постоянно на слуху, и, скажем так режет глаз. :) Но до сих пор не пойму этой уникальной особенности, ведь тот же C/C++, равно как и Perl, имеют возможность "расширения" с помощью написания собственных библиотек. В чем тогда, кроме конечно скорости написания, уникален Форт?

Ну как классический пример, допустим нам нужны механизмы манипуляции с комплексными числами. В С++ это делается просто - объявляется в заголовочном файле новый класс, в нем перегружаются все возможные математические функции, в файле реализации вся эта кухня программируется. В итоге мой С++ уже "умеет" работать с комплексными числами. А как это произойдет, используй я Форт?

И еще, в ответах были обойдены важные для меня вопросы:
Majestic писал(а):
  • Есть ли в природе продукты, написанные на Форте, с развитым GUI-интерфейсом, типа графических редакторов, органайзеров, систем моделирования? (eServ и nnCron видел)
  • Есть ли в природе сложные продукты, написанные на Форте - типа клиент-серверных систем, систем с распределенной обработкой?

Действительно, сложно это назвать навскидку? Я интересуюсь этим по одной простой причине: хочу знать как "ведет себя Форт" при практическом, скажем так, "нелабораторном" использовании. Увиденные мною eServ и nnCron - как ни крути, это службы. GUI, да и просто UI - это не их конек. Раз настроил и получил рабочий инструмент. Меня же интересуют реализации более масштабных продуктов.

Ну вот к примеру, как вы видите реализацию на Форте нечто подобного, типа небезизвестного FAR? Базовая функциональность + развитый API + подключение внешних плагинов. Будет ли на ваш взгляд разработка на Форте быстрее и понятнее в будущем, нежели та же реализация сего на, к примеру, Virtual Pascal + портированный к нему Turbo Vision?

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 09:33 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Majestic писал(а):
Вот тут самая непонятная непонятка. Во многих материалах термин "саморасширяющаяся" постоянно на слуху, и, скажем так режет глаз. Но до сих пор не пойму этой уникальной особенности, ведь тот же C/C++, равно как и Perl, имеют возможность "расширения" с помощью написания собственных библиотек. В чем тогда, кроме конечно скорости написания, уникален Форт?

что такое Форт.

а уникальность в том, что просто не существует одновременно более простого, мощного, и масштабируемого языка одновременно.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 09:44 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Majestic писал(а):
Есть ли реализации Форта под FreeBSD/OpenBSD/NetBSD, если "да", развиваются ли они?

Если не ошибаюсь, FreeBSD начинает свою загрузку с Форта.

Majestic писал(а):
Есть ли реализации Форта под операционные системы мобильных устройств?

есть, ищите (ссылки были на форуме).

Majestic писал(а):
Есть ли в природе продукты, написанные на Форте, с развитым GUI-интерфейсом, типа графических редакторов, органайзеров, систем моделирования? (eServ и nnCron видел)

Есть, но они не распространены особо. Опять же ссылки на форуме пробегали, как оно сейчас сказать не могу, т.к. не отслеживал. Да, в основном это САПР.
Да, не забывайте, что Форт имеет уже внуков, например *.pdf файлы - это вариант развития постскрипта, который в свою очередь сын Форта и Лиспа 8)

Majestic писал(а):
Есть ли в природе сложные продукты, написанные на Форте - типа клиент-серверных систем, систем с распределенной обработкой?

есть, но они специфичны (аки управление аэропотром, или телефонными станциями).

Majestic писал(а):
Можно ли на Форте создавать ActiveX/COM компоненты?

можно, смотрите в пакет СПФ (точно было), наверняка есть и в других системах.

Majestic писал(а):
Если gcc - компилятор, а Borland CBuilder - интегрированная среда, то что есть Форт с этой точки зрения?

Есть или было(есть в WIN32FORTH например, в том же СПФ было до версии 3х), но обычно не нужно.

WingLion писал(а):
Сам по себе, разумеется, язык расширяться не может.

может 8) те же генетические алгоритмы взять в пример.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur



За это сообщение автора mOleg поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 10:45 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
Majestic писал(а):

что такое Форт.


Прочел, вроде начало приходить понимание ... :D

Ради интереса "распотрошил" код nncron.exe программулькой на Perl'е:
Код:
#!/usr/local/bin/perl

use IO::File;

$H = new IO::File "nnCron.exe", "r" || die "\n:(\n";
$L = join(" ",<$H>);
undef $H;

while($L =~ /.*?([A-Z]{2,})(.*)/s) {
  $A{$1} = ".";
  $L = $2;
}

foreach (sort(keys(%A))) {
  print "$_\n";
}


Получил список отсортированных в алфавитном порядке слов, состоящих их заглавных букв латинского алфавита. Список получился более полутора тысяч. Типа такого:
Цитата:
AA
AASA
AASD
AB
ABCDEFGHIGKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCO
ABORT
ABOUT
ABS
ABSL
ACCEPT
ACCESS
ACDO
ACE
ACL
ACT
ACTION
ACTIONE
ACTIVATE
ACTIVE
AD
ADATE
ADD
ADDR
ADDRESS
ADDRMNDR
ADDTASK
ADK
ADMIN
....
WAIT
WALLOCATE
WARNING
WASCIIZ
WATA
WATCH
WATCHES
WAZ
WB
WBW
WC
WCHCTIME
WCHSIZE
WCHWTIME
WCOMPARE
WD
WDATE
WDAY
WDAYS
WDIR
WEB
WEEK
WEEKDAYS
WEEKLY
WF
WFILE
WG
WGET
WH
WHERE
WHILE
...


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

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 10:46 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Majestic писал(а):
Вот тут самая непонятная непонятка. Во многих материалах термин "саморасширяющаяся" постоянно на слуху, и, скажем так режет глаз. :) Но до сих пор не пойму этой уникальной особенности, ведь тот же C/C++, равно как и Perl, имеют возможность "расширения" с помощью написания собственных библиотек. В чем тогда, кроме конечно скорости написания, уникален Форт?

Ну как классический пример, допустим нам нужны механизмы манипуляции с комплексными числами. В С++ это делается просто - объявляется в заголовочном файле новый класс, в нем перегружаются все возможные математические функции, в файле реализации вся эта кухня программируется. В итоге мой С++ уже "умеет" работать с комплексными числами. А как это произойдет, используй я Форт?

Ну к примеру, не было бы в C++ оператора do...while, как Вы его туда добавите?
Если делать так,
Цитата:
#define dw(B,E) if (1) { A: B; if (E) goto A; }

вылезут разные проблемы при передаче в макрос нетривиального B. :?
Расширяемость С++ ограничена переопределением функций/операторов, а в ф-те ключевые слова можно доопределять и переопределять, как и обычные слова. Надо только знать, как компилируются переходы. :roll:
Ну а комплексные числа, но проблемо! :D Дописываете к ф-ту статический вывод типов, сможете сделать перегруз арифметических слов. :mrgreen: :^)
А если хотите быстро, просто определите свои слова С+ С- С* С/, которые будут применять + - * / к последовательным двойкам слов в памяти . В итоге ваш ф-т уже "умеет" работать с комплексными числами.



За это сообщение автора dynamic-wind поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 10:50 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Majestic писал(а):
Ради интереса "распотрошил" код nncron.exe программулькой на Perl'е:

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


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



За это сообщение автора dynamic-wind поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 11:04 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
dynamic-wind писал(а):
Majestic писал(а):
Да, это словарь форта. Он там только для того, чтобы можно было компилировать новый, пользовательский код. Тот код, что уже там есть, скомпилирован!


Хм. Необычно. :) Тогда еще вопрос, что в терминологии Фортера есть свои библиотеки, как это реализуется? Зависит ли реализация/использование от используемого Форта?

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 11:15 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Majestic писал(а):
Похоже на слова Форта? Получается, компилятор Форта (или что там создает исполняемые файлы?) сгенерировал .exe - который является грубо интерпретатором Форта с присоединенным исходным кодом? Или я опять заблуждаюсь?

Как такового компилятора Форта нет, точнее он распреелен между определениями 8)
есть языковая среда, в которую можно добавлять новые понятия (опеределения или слова), а так же использовать уже существующие определения. Кроме того, видимостью этих самых определений можно управлять.
Статьи все-таки стоит почитать 8) как раз для таких случаев они и писались, там же можно уточнающие вопросы позадавать 8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur



За это сообщение автора mOleg поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 11:23 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Majestic писал(а):
Тогда еще вопрос, что в терминологии Фортера есть свои библиотеки, как это реализуется?

берем какой-нибудь Форт (рекомендую SPF, т.к. по нему может помочь максимальное количество народа, если не проблема английский язык, можно взять win32forth) и смотрим как что в нем сделано, ну и вопросы задаем тут наводящие 8)

да, от конкретной реализации много чего может измениться, и хотя ядро более\менее одинаковое у всех фортов код не всегда просто перенести на другой транслятор.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur



За это сообщение автора mOleg поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 11:27 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
Статьи все-таки стоит почитать 8) как раз для таких случаев они и писались, там же можно уточнающие вопросы позадавать 8)


Не заметил! Уже читаю :)

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 15:09 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
Majestic писал(а):
Тогда еще вопрос, что в терминологии Фортера есть свои библиотеки, как это реализуется?

берем какой-нибудь Форт (рекомендую SPF, т.к. по нему может помочь максимальное количество народа, если не проблема английский язык, можно взять win32forth) и смотрим как что в нем сделано, ну и вопросы задаем тут наводящие 8)


На самом деле я избалован публичной библиотекой Perl, хочется узнать, в Форте нечто подобное есть? Или все же каждый работает больше для себя? По статьям пробежался, ссылок на подобное не заметил, или опять был невнимателен :oops:

Иными словами, как Фортеры делятся своими наработками с коллегами?

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Взгляд на Форт с Perl/C++ колокольни
СообщениеДобавлено: Сб окт 16, 2010 15:20 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
В основновном прямо исходниками - их ведь можно догружать по ходу работы программы.

В SP-Forth есть каталог с библиотеками \devel, но из-за неудачного решения по организации библиотек они сортированы не по назначению, а по авторам.
Хотя и присутствует каталог \lib.

В win32forth лежат уже готовые проекты в исходниках с примерами,отдельных библиотек мало.

Тем не менее большинство форт-систем в исходниках на самом форте. Кроме этого существует несколько проектов библиотек для определённых целей, например: Forth Foundation Librarys и Forth Scientific Library

Проблема форта не в том, что библиотек нет - проблема в бессистемности их расположения, сложности нахождения и очень инертном сообществе.



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

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


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

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


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

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