Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 16, 2024 21:48

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 103 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Пт окт 22, 2010 23:32 
Не в сети
Аватара пользователя

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

А какую задачу будет решать форт-код?


В итоге хочется получить компилятор Форта, который будет генерить нативный FreeBSD-код.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 01:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
viewtopic.php?f=2&t=1872
Вот тема, в которой рассматривалась одна из моделей жизненного цикла программного продукта. Я пока что, гм, воздержусь от комментирования кое-каких вышеприведенных советов.



За это сообщение автора Hishnik поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 20:53 
Не в сети
Аватара пользователя

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

Тогда подпрограммный ШК.
Но нужна тема, где Форт будет лучше, чем другие языки. :o

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 21:36 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Вот, на мой взгляд, очень хорошая обзорная статья о FORTH.



За это сообщение автора forther поблагодарил: Majestio
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 21:47 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
что я нашел
http://ftp.wuppy.net.ru/FreeBSD/7.0-200 ... loader.4th
возможно вам вообще не надо искать Форт под FreeBSD, а просто использовать имеющийся в пакете? (или, чем больше трудности, тем приятней результат?)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 22:01 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Кстати, странно, что приверженец FreeBSD про FICL не знал. Или я невнимательно эту тему читал.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 23:12 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
forther писал(а):
Кстати, странно, что приверженец FreeBSD про FICL не знал. Или я невнимательно эту тему читал.


Первый пост этой темы :?

Majestic писал(а):
Присматриваясь к новому для меня языку программирования - Форту, я конечно же обратил внимание на степень кроссплатформенности. Под форточки вопросов нет. Вторая для меня по значимости среда выполнения - ОС 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
...


Мне показалось, что это какая-то левая реализация, а хотелось бы начать знакомство с более-менее стандартизованной.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 23:33 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Мне показалось, что это какая-то левая реализация, а хотелось бы начать знакомство с более-менее стандартизованной.

более менее не
существуют

т.к. удержаться от соблазна "сделать лучше чем в стандарте"
невозмоно


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 23:53 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
mOleg писал(а):
что я нашел
http://ftp.wuppy.net.ru/FreeBSD/7.0-200 ... loader.4th
возможно вам вообще не надо искать Форт под FreeBSD, а просто использовать имеющийся в пакете? (или, чем больше трудности, тем приятней результат?)

Тот что BootFORTH - написано, что это интерпретатор и что это часть загрузчика, конфигурируемая файлами из /boot
Как на этом что-то собрать, а тем более скомпилить ... ума не приложу.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Сб окт 23, 2010 23:55 
Не в сети
Аватара пользователя

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

более менее не
существуют

т.к. удержаться от соблазна "сделать лучше чем в стандарте"
невозмоно


Я имелл ввиду, реализацию которая полностью поддерживала бы последний стандарт, если я не ошибаюсь - ANSI '94, ну а дополнительные "возможности" - это уже второстепенное.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Вс окт 24, 2010 00:05 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
forther писал(а):
Вот, на мой взгляд, очень хорошая обзорная статья о FORTH.


Приведенный там пакет Atlast собирается под Фрей и работает, как написано в документации. Только это как написано в доках "is a toolkit that makes application programmable".

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Вс окт 24, 2010 00:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Majestic писал(а):
Только это как написано в доках "is a toolkit that makes application programmable".

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Вс окт 24, 2010 00:35 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Хищник писал(а):
Majestic писал(а):
Только это как написано в доках "is a toolkit that makes application programmable".

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


Не спорю, встраиваемые скриптовые языки хороши.

Но в данной теме я хотел бы "найти" ту реализацию Форта, которая бы смогла собрать мне исполняемый файл под Фрю, без использования компиляторов прочих языков.

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


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Majestic писал(а):
Но в данной теме я хотел бы "найти" ту реализацию Форта, которая бы смогла собрать мне исполняемый файл под Фрю, без использования компиляторов прочих языков.


Зачем такое ограничения? Даже GCC использует промежуточное ассемблерное представление.
Ты сделай что-нибудь работающее. С начало чистый интерпретатор, Затем в шитый код
в рамках Форт системы. Затем можно думать создании внешнего загрузочного модуля.

Majestic писал(а):
Тот что BootFORTH - написано, что это интерпретатор и что это часть загрузчика, конфигурируемая файлами из /boot
Как на этом что-то собрать, а тем более скомпилить ... ума не приложу.


Так BootFORTH работает под твоей FreeBSD работакт?
Форт может компилировать в рамках форт-системы для исполнения в ее рамках,
иначе это не Форт. Для генерации внешнего модуля используется целевой компилятор.
На любом форе его можно создать.

chess писал(а):
Тогда подпрограммный ШК.


Можно использовать косвенный, затем преобразовать в подпрограммный.

chess писал(а):
Но нужна тема, где Форт будет лучше, чем другие языки


Там где нет интересов у крупных фирм.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth под FreeBSD
СообщениеДобавлено: Вс окт 24, 2010 16:08 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Mihail писал(а):
Majestic писал(а):
Но в данной теме я хотел бы "найти" ту реализацию Форта, которая бы смогла собрать мне исполняемый файл под Фрю, без использования компиляторов прочих языков.

Зачем такое ограничения? Даже GCC использует промежуточное ассемблерное представление. Ты сделай что-нибудь работающее. С начало чистый интерпретатор, Затем в шитый код в рамках Форт системы. Затем можно думать создании внешнего загрузочного модуля.

Да нет, это не ограничение - это цель. Написал на Форте, скомпилил - получил исполняемый модуль.
А вот как эту цель реализовать, выше я и спрашивал (готовых Фортов, могущих компилировать под Фрю я не нашел).
Сейчас поставил себе задачу разобраться, как написать свою реализацию Форта, которая в будущем сможет компилить в исполняемый код. Пока занят изучением всяких материалов, в первую очередь тех, что советовали в этой ветке.
Mihail писал(а):
Majestic писал(а):
Тот что BootFORTH - написано, что это интерпретатор и что это часть загрузчика, конфигурируемая файлами из /boot
Как на этом что-то собрать, а тем более скомпилить ... ума не приложу.

Так BootFORTH работает под твоей FreeBSD работакт?

Ну он - есть часть загрузчика Фри. Вот небольшая инфа о нем:
Цитата:
Here you can find some simple examples how to use BootFORTH (part of the
new bootloader) together with terminal emulation code (available when
compiling /sys/boot/i386/libi386 with -DTERM_EMU).

Normally, you can place the files in /boot as they are here, and they will be
automatically loaded by /boot/loader. You must choose between boot.4th or
loader.rc, though. Copy one or the other, but not both. Also, menu.4th is
only used by boot.4th, and menuconf.4th is only used by loader.rc, so you
don't need to copy both files.

The files are:

boot.4th example of file which is always loaded by /boot/loader, if
present in /boot/
loader.rc example of file which is always loader by /boot/loader, if
present in /boot/
screen.4th helpful words for screen manipulation.
frames.4th basic frame drawing primitives. Requires screen.4th.
menu.4th example of simple startup menu.
menuconf.4th another example of simples startup menu.

You're encouraged to add more features to these files - I'm not a Forth
hacker, unfortunately...

Andrzej Bialecki
<abial@freebsd.org>

If you use loader.rc/menuconf.4th, be sure to create /boot/stable.conf and
/boot/current.conf, like described in loader.conf(5), with appropriate
configuration to distinguish one from the other.

Daniel C. Sobral
<dcs@freebsd.org>

$FreeBSD: src/share/examples/bootforth/README,v 1.3.54.1 2009/04/15 03:14:26 kensmith Exp $

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

Возможно я что-то путаю ... Вот пример, nnCron.exe - это виндовый исполняемый файл. Написан же на Форте? А как экзешник был получен? Вот нечто подобное я хочу под Фрю.

... пока зашел с другой стороны. Решил посмотреть ассемблеры под Фрю. Получается больше проблем не с самой Фрей как таковой, а именно c 64-битностью.

fasm из портов собираться отказался, потребовал сборки 32-битных библиотек. Собрал:
Код:
$ cd /usr/src
$ make build32 install32
$ ldconfig -v -m -R /usr/lib32

Только после этого порт собрался.

Вменяемых (работающих) примеров HelloWorld! под FreeBSD amd64 на fasm'е я так и не нашел. Пока ищу инфу.

С другой стороны глянул на GNUтый ассемблер as. Там как бы проще, он в ситеме предустановлен, есть полезные утилиты. Вот что получилось:

hello64.asm
Код:
.equiv STDOUT, 1                /* дескриптор для stdout */
.equiv RETVAL, 0                /* аргумент exit() */
.equiv SYS_WRITE, 4             /* идентификатор WRITE syscall */
.equiv SYS_EXIT, 1              /* идентификатор EXIT syscall  */

// Секция данных (только для чтения)
    .section    .rodata
msg:
    .string "Hello, World!\n"
    len = . - msg

// Секция кода
    .text
    .global _start
_start:
    // Вызов write(STDOUT,msg,len);
    movl    $len,%edx
    movq    $msg,%rsi
    movl    $STDOUT,%edi
    movq    $SYS_WRITE,%rax
    movq    %rcx,%r10         
    syscall
bye:
    // Вызов exit(0);
    movl    $RETVAL,%edi
    movq    $SYS_EXIT,%rax
    movq    %rcx,%r10
    syscall


Код:
$ as --64 -o hello64.o hello64.asm
$ ld -o hello64 hello64.o


Запускаем:
Код:
$ ./hello64
Hello World!


Можем еще попробовать кой-чего:
Код:
$ file hello64
hello64: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, not stripped

и еще:
Код:
$ objdump --disassemble hello64

hello64:     file format elf64-x86-64

Disassembly of section .text:

00000000004000b0 <_start>:
  4000b0:       ba 0f 00 00 00          mov    $0xf,%edx
  4000b5:       48 c7 c6 de 00 40 00    mov    $0x4000de,%rsi
  4000bc:       bf 01 00 00 00          mov    $0x1,%edi
  4000c1:       48 c7 c0 04 00 00 00    mov    $0x4,%rax
  4000c8:       49 89 ca                mov    %rcx,%r10
  4000cb:       0f 05                   syscall

00000000004000cd <bye>:
  4000cd:       bf 00 00 00 00          mov    $0x0,%edi
  4000d2:       48 c7 c0 01 00 00 00    mov    $0x1,%rax
  4000d9:       49 89 ca                mov    %rcx,%r10
  4000dc:       0f 05                   syscall


Иными словами, копаться в коде можно. Но as в отличие от fasm'а имеет "непривычный" AT&T синтаксис, лично я же более привык к MASM/TASM/NASM-овскому. Наверное единственное неудобство. Но пока еше ищу материалы по fasm'у + x64 + FreeBSD (кстати, если увидите - поделитесь, пожалуйста)

ЗЫ: Написал подробно, так чтобы просто не потерялось ... :)

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


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

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


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

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


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

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