Forth
http://fforum.winglion.ru/

Forth под FreeBSD
http://fforum.winglion.ru/viewtopic.php?f=24&t=2670
Страница 1 из 7

Автор:  Majestio [ Вт окт 19, 2010 21:00 ]
Заголовок сообщения:  Forth под FreeBSD

Присматриваясь к новому для меня языку программирования - Форту, я конечно же обратил внимание на степень кроссплатформенности. Под форточки вопросов нет. Вторая для меня по значимости среда выполнения - ОС FreeBSD. Решил посмотреть что можно получить для нее. Поскольку время не стоит, я сразу выбрал 64-битную версию AMD64.

ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/8.1/ - можно брать тут

Предварительно поискал в портах возможные реализации Форта, нашлось три:

ficl-4.0.31_1
Forth Inspired Command Language
http://ficl.sourceforge.net/
FICL is an extremely lightweight, fast, portable implementation of FORTH
which can be bound to C functions or even embedded within C/assembler
programs. This is a port for the current version of FICL. Older versions
can typically be found in /usr/src/sys/boot/ficl on FreeBSD with the

gforth-0.6.2_3
Fast and portable Forth system
http://www.gnu.org/software/gforth/gforth.html
Gforth is a fast and portable implementation of the ANS Forth
language. It works nicely with the Emacs editor, offers some nice
features such as input completion and history and a powerful locals
facility, and it even has a manual. Gforth employs traditional
implementation techniques: its inner innerpreter is indirect or
direct threaded.

pfe-0.33.71
Implementation of ANSI Forth
http://pfe.sourceforge.net/
This package contains all neccessary ANSI-C source files to build a
running Forth-environment on most UNIX machines, on DOS and on OS/2.
The Forth-system is closely modeled along the new American National
Standard for the programming language Forth. Every word of every
word set mentioned in the dpANS-6 document of June 1993 has been
implemented. Additionally it is compatible to Forth-83.


Сперва захотелось попробовать второй вариант gforth - но порт под 64-битную архитектуру собираться отказался. Посему я выбрал последний вариант. Собрал, все получилось без ошибок. Даже попробовал набрать и выполнить всеми любимое "Hello World!", на удивление и оно сработало:

Изображение

И вот теперь нужна ваша помощь, а вернее компетентные советы:

  • Как вы считаете, среди перечисленного есть ли серьезные инструменты, или все же тут все "на коленке" делано?
  • Что из перечисленного на ваш взгляд внушает большее доверие?
  • На ваш взгляд, можно ли для FreeBSD продуктивно писать программы на Форте, учитывая вышеизложенное?

Спасибо.

Автор:  forther [ Вт окт 19, 2010 23:38 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
[*]Как вы считаете, среди перечисленного есть ли серьезные инструменты, или все же тут все "на коленке" делано?
[*]Что из перечисленного на ваш взгляд внушает большее доверие?
[*]На ваш взгляд, можно ли для FreeBSD продуктивно писать программы на Форте, учитывая вышеизложенное?[/list]

Спасибо.


gforth серьезный инструмент, внушающий доверие и на котором можно писать программы.

Автор:  Majestio [ Ср окт 20, 2010 00:11 ]
Заголовок сообщения:  Re: Forth под FreeBSD

forther писал(а):
Majestic писал(а):
[*]Как вы считаете, среди перечисленного есть ли серьезные инструменты, или все же тут все "на коленке" делано?
[*]Что из перечисленного на ваш взгляд внушает большее доверие?
[*]На ваш взгляд, можно ли для FreeBSD продуктивно писать программы на Форте, учитывая вышеизложенное?[/list]

Спасибо.


gforth серьезный инструмент, внушающий доверие и на котором можно писать программы.


Поискал, нашел "свежую" версию 0.7.0 от 02-Nov-2008, в которой как бы улучшена (или решена) проблема с х64. Но прошло два года, а в портах ее нет. Поэтому в отношении FreeBSD о серьезности говорить не получается :( Да и вообще в ее развитии похоже наступил стоп так же в 2008 году.

Автор:  forther [ Ср окт 20, 2010 00:48 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
Поискал, нашел "свежую" версию 0.7.0 от 02-Nov-2008, в которой как бы улучшена (или решена) проблема с х64. Но прошло два года, а в портах ее нет. Поэтому в отношении FreeBSD о серьезности говорить не получается :( Да и вообще в ее развитии похоже наступил стоп так же в 2008 году.


А вы cvs log посмотрите.

Я gforth использую профессионально и он вполне серьезен и соответствует.

Автор:  Majestio [ Ср окт 20, 2010 01:26 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Странно, а почему же в портах FreeBSD такая древняя версия :cry:

Автор:  forther [ Ср окт 20, 2010 02:01 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
Странно, а почему же в портах FreeBSD такая древняя версия :cry:

мэйнтейнер нерадивый. или вообще нету.

Автор:  Mihail [ Ср окт 20, 2010 12:18 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
можно ли для FreeBSD продуктивно писать программы на Форте, учитывая вышеизложенное?


Принципиальных ограничений по использованию Форта нет.
Вопрос только в насыщении Форта подпрограммами, которое довольно бедное.
Я рекомендую использовать Форт в качестве скрипта для приложений на Си.
При этом, приложение становится саморасширяющимся. Т.е. по средствам
скрипта приложение может повысить(изменить) функиональность.
К тому-же это дополнительное средство отладки.
По моему мой http://fpauk.narod.ru/linuxspf.10.tar.bz2
для этих целей не плохо подходит.

Автор:  Majestio [ Ср окт 20, 2010 13:22 ]
Заголовок сообщения:  Re: Forth под FreeBSD

forther писал(а):
А вы cvs log посмотрите.
Я gforth использую профессионально и он вполне серьезен и соответствует.

Потратил время, посмотрел и так и сяк ... :) gforth возможно серьезен и соответствует ... но не для FreeBSD. Я понимаю, возможно некому им заниматься ... но именно этот пакет для Фри бесполезен, ибо не заточен. Простая сборка 0.7.0 из тарбола на моменте компиляции выдает ошибку. Портов нет. Соответственно вывод очевиден - не серьезен и не соответствует тому, о чем писалось в начале темы. Увы.
Mihail писал(а):
Majestic писал(а):
можно ли для FreeBSD продуктивно писать программы на Форте, учитывая вышеизложенное?

Принципиальных ограничений по использованию Форта нет.
Вопрос только в насыщении Форта подпрограммами, которое довольно бедное.

Нет. Вопрос пока просто в наличии работоспособного и полнофункционального Форта для FreeBSD. Пока я такого не вижу (или плохо смотрю? может все же - pfe?).
Mihail писал(а):
Я рекомендую использовать Форт в качестве скрипта для приложений на Си.

Применение любого встроенного скриптового языка позволяет сделать приложение саморасширяющимся. Но ведь дело не принципиально в саморасширении, а в двух вещах, проходящих конвой во всех дебатах:
  • быстрота, легкость и понятность разработок на Форте
  • генерация качественного кода
Mihail писал(а):
По моему мой http://fpauk.narod.ru/linuxspf.10.tar.bz2 для этих целей не плохо подходит.

Аббревиатура "linux" в имени файла наводит на невеселые мысли ... Чтобы вы поняли, приведу аналогию. Windows XP тоже умеет исполнять 16-битные ДОС-программы. Я же веду речь о нативном FreeBSD-Форте. Всякие там эмуляции linux-совместмостей во Фре - это от лукавого. Имхо.

Автор:  forther [ Ср окт 20, 2010 20:22 ]
Заголовок сообщения:  Re: Forth под FreeBSD

С год назад, когда мне взбрело поставить gforth на netbsd пришлось поменять одну строку в Makefile. Или добавить параметр в Configure. Точно не помню.

С другой стороны, может ну его нафиг, Форс этот? С Мейками разбираться. "Не заточен" и все дела. Еще один язык "пройден".

FreeBSD, кстати, тоже много подо что не заточен: можете назвать мне хоть один лаптоп современный, на который FreeBSD встал бы без проблем. Чтоб WiFi подхватился и Hibernate на этапе инсталяции.

Автор:  Majestio [ Ср окт 20, 2010 20:57 ]
Заголовок сообщения:  Re: Forth под FreeBSD

forther писал(а):
С год назад, когда мне взбрело поставить gforth на netbsd пришлось поменять одну строку в Makefile. Или добавить параметр в Configure. Точно не помню.

Было бы так просто, думаю порт был бы без всей этой тягомотины.
forther писал(а):
С другой стороны, может ну его нафиг, Форс этот? С Мейками разбираться. "Не заточен" и все дела. Еще один язык "пройден".

Я не коллекционирую языки :) Просто захотелось посмотреть на это. Проверить как на самом деле. Задумка языка интересная, концепция построения программ тоже. Но что в итоге? А в итоге должен быть работающий инструмент для создания ПО, а не кроссворды по настройке/созданию инструмента. Простой потребительский подход :)
forther писал(а):
FreeBSD, кстати, тоже много подо что не заточен: можете назвать мне хоть один лаптоп современный, на который FreeBSD встал бы без проблем. Чтоб WiFi подхватился и Hibernate на этапе инсталяции.

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

Было бы гораздо продуктивнее, если бы вы, со своим опытом использования gforth, глянули, почему не собирается 0.7.0 версия под FreeBSD 8.1 amd64. Тем более, если речь может идти об одной строчке - вообще было бы здорово!

Автор:  forther [ Ср окт 20, 2010 21:45 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Нету у меня фри. Есть netbsd 32 bit. Могу на ней посмотреть, чего менял. Есть ОС Х 10.6 s 64 битным gforth.
Кстати, чтоб gforth заставить компилиться знать форт вообще не надо.

Автор:  Majestio [ Ср окт 20, 2010 23:30 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Ну посмотрите, буду признателен.

Автор:  Mihail [ Ср окт 20, 2010 23:48 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
Вопрос пока просто в наличии работоспособного и полнофункционального Форта для FreeBSD.

Не полнофункционального Форта быть не может. Или Форт или не Форт.
Т.к. Форт это система с неограниченным расширением.

Majestic писал(а):
Применение любого встроенного скриптового языка позволяет сделать приложение саморасширяющимся.

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

Majestic писал(а):
Аббревиатура "linux" в имени файла наводит на невеселые мысли

Да под BSD врят-ли соберется, попробуй - http://fpauk.narod.ru/ubuspf.zip
если соберется, есть 2 примера:
./spf TT.F
./spf tetris.4

Автор:  Majestio [ Чт окт 21, 2010 00:00 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Mihail писал(а):
Majestic писал(а):
Вопрос пока просто в наличии работоспособного и полнофункционального Форта для FreeBSD.

Не полнофункционального Форта быть не может. Или Форт или не Форт.
Т.к. Форт это система с неограниченным расширением.

Ну я тут "плаваю" слегка. Вот посмотрел pfe и не пойму, как получить откомпилированный код. Интерпретатор вроде работает (см. на скрине)
Mihail писал(а):
Majestic писал(а):
Применение любого встроенного скриптового языка позволяет сделать приложение саморасширяющимся.

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

Я думаю, используя, к примеру, lua можно получить подобное.
Mihail писал(а):
Majestic писал(а):
Аббревиатура "linux" в имени файла наводит на невеселые мысли

Да под BSD врят-ли соберется, попробуй - http://fpauk.narod.ru/ubuspf.zip
если соберется, есть 2 примера:
./spf TT.F
./spf tetris.4

Чуть позже обязательно попробую и отпишу.

Автор:  Hishnik [ Чт окт 21, 2010 00:08 ]
Заголовок сообщения:  Re: Forth под FreeBSD

Majestic писал(а):
Ну я тут "плаваю" слегка. Вот посмотрел pfe и не пойму, как получить откомпилированный код. Интерпретатор вроде работает (см. на скрине)

Где-то на форуме рассматривались вопросы получения кода. Кстати, тут две разновидности - можно сформировать новые слова в процессе работы форт-системы, а можно сделать исполняемый файл для последующей самостоятельной работы. Первое проще, поскольку второе требует знания формата таких файлов для используемой ОС.
Majestic писал(а):
Я думаю, используя, к примеру, lua можно получить подобное.

Я тут могу высказать такую точку зрения: в конечном итоге эффективнее написать собственную реализацию Форта, чем разбираться с существующими продуктами.

Страница 1 из 7 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/