Список форумов meos.sysbin.com meos.sysbin.com
Портал моей оси!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Forth
На страницу 1, 2, 3, 4  След.
 
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов meos.sysbin.com -> Программы
Предыдущая тема :: Следующая тема  
Автор Сообщение
willow



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Wed Feb 01, 2006 4:17 pm    Заголовок сообщения: Forth Ответить с цитатой

Помнится, еще на форуме Fastbb кто-то предлагал портировать Форт систему на MeOS. Все забыли, а я запал на Форт и все подумывал о порте. Неделю назад нашел простенький eForth16 с исходниками на асме... Сегодня уже практически готова 32-битная версия для Колибри. Осталось сделать некоторые усовершенствования в консоли.
_________________
Vivat assembler et MenuetOS!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
camper



Зарегистрирован: 13.10.2005
Сообщения: 238
Откуда: Казань

СообщениеДобавлено: Wed Feb 01, 2006 11:12 pm    Заголовок сообщения: Ответить с цитатой

кгхм, м.б. фортран? Wink Но все равно, язык высокого уровня очень хорошо в любом случае (как и паскаль)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
willow



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Thu Feb 02, 2006 8:05 am    Заголовок сообщения: Ответить с цитатой

Да нет уж, именно Форт Smile Смотри http://forth.org.ru/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Thu Feb 02, 2006 6:13 pm    Заголовок сообщения: Ответить с цитатой

willow
Насколько мне помниться, форт хорош тем, что относительно быстро работает даже в режиме интерпретации, и команды в нем занимают очень мало места (2 байта?), разумеется, не считая процедуры их определяющей.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wildwest



Зарегистрирован: 18.05.2005
Сообщения: 465

СообщениеДобавлено: Thu Feb 02, 2006 9:20 pm    Заголовок сообщения: Ответить с цитатой

Язык странный и коммунити странное. Пишут компиляторы десятками, но реально интересных программ, созданных на этом языке практически нет. Запомнилась только программа построения графика синусоиды и среда разработки, отдаленно напоминающая Strannik, ну и еще этот пресловутый сервер. Осенью листал книжку по Forth - один из "реальных примеров суперкрутости языка" демонстрировал разработку вируса под ДОС. Опять же, это язык для любителей обратной польской записи. Много здесь таких?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
willow



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Fri Feb 03, 2006 8:20 am    Заголовок сообщения: Ответить с цитатой

Mario79 писал(а):

относительно быстро работает даже в режиме интерпретации, и команды в нем занимают очень мало места (2 байта?)

Он и есть интерпретирующий язык, а высокоуровневые команды занимают по 4 байта (у нас ведь 32-разрядная система)
Wildwest
Не спорю - язык нетривиальный, но лучшего интерпретатора и скриптора для Menuet пока не предвидится (я не слышал, чтобы кто-то занимался). Я же, со своей стороны, постараюсь добавить в язык поддержку системных функций и попробую написать на нем графическое приложение.
Пишите, что нужно включать в поставку интерпретатора, чтобы он был реально полезен пользователям Колибри.
_________________
Vivat assembler et MenuetOS!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
camper



Зарегистрирован: 13.10.2005
Сообщения: 238
Откуда: Казань

СообщениеДобавлено: Fri Feb 03, 2006 8:51 am    Заголовок сообщения: Ответить с цитатой

Нужна графическая поддержка, т.е. рисование примитивов в окне, и основные математические функции - показательные, тригонометрические, логарифмические, логические.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Sat Feb 04, 2006 2:16 pm    Заголовок сообщения: Ответить с цитатой

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



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Fri Feb 10, 2006 12:19 pm    Заголовок сообщения: Ответить с цитатой

Это аналог EXAMPLE.ASM на meForth, только сырой еще. Окно не простое, а с возможностью возвращаться в консоль нажатием 'Ё'. Зацените...
Код:
: >regs
   reg_struc ! ;
: new_reg
   CREATE 6 CELLS ALLOT LAST @ NAME> 9 + >regs ;
: ax reg_struc @ ! ;
: bx reg_struc @ 1 CELLS + ! ;
: cx reg_struc @ 2 CELLS + ! ;
: dx reg_struc @ 3 CELLS + ! ;
: si reg_struc @ 4 CELLS + ! ;
: di reg_struc @ 5 CELLS + ! ;
: <<
   SWAP 16 LSHIFT + ;
: sys_print ( color, stra, u, x, y -- )
  << >R SWAP ROT R> 4 sys5 DROP ;
: not_emit
   emit_proc DUP @ NOT SWAP ! ;
new_reg wnd_size
CREATE Music $3090 , \ $90 C, $30 C, 0 C,
: my_wnd
  12 ax 1 bx sysv DROP $805080D0 DUP $02AABBCC 200 50 << 200 DUP << 0
    sys6 2 bx sysv 2DROP
  $10DDEEFF $" ПРИМЕР ПРОГРАММЫ" COUNT 8 DUP sys_print
  0 $" Нажмите любую клавишу" COUNT 8 30 sys_print
  $6688DD 1 5 12 << 200 19 - 12 << 8 sys5 DROP ;
: my_wnd_resize
   200 dx 50 si 67 ax -1 DUP bx cx sysv DROP ;
: my_key
   2 sys1 8 RSHIFT DUP 96 = IF not_emit DROP ELSE Music DUP si 1+ C!
 55 DUP ax bx sysv DROP THEN ;
: my_btn
   17 sys1 8 RSHIFT ." Pressed button #" DUP . CR 1 = IF BYE THEN ;
CREATE handlers ' my_wnd , ' my_key , ' my_btn ,
VARIABLE hnd
: msg_loop ( subs -- )
   CR DUP hnd ! @EXECUTE  my_wnd_resize
   0 emit_proc !
   BEGIN
   10 sys1 ?DUP
   IF
     1-
    CELLS hnd @ + @EXECUTE
    emit_proc @
    IF
       WINDOW KEY 96 =
       IF
          not_emit hnd @ @EXECUTE  my_wnd_resize
       ELSE
         EXIT
       THEN
    THEN
  THEN
  AGAIN ;
: new_me ( new main loop)
  handlers msg_loop ;

_________________
Vivat assembler et MenuetOS!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Hex



Зарегистрирован: 01.01.2005
Сообщения: 212
Откуда: из Северной Пальмиры

СообщениеДобавлено: Fri Feb 10, 2006 2:58 pm    Заголовок сообщения: Ответить с цитатой

Да, примерчик довольно непонятный... Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Fri Feb 10, 2006 4:21 pm    Заголовок сообщения: Ответить с цитатой

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



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Mon Feb 13, 2006 8:03 am    Заголовок сообщения: Ответить с цитатой

Да, конечно, без документации никуда!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
willow



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Mon Feb 13, 2006 11:11 am    Заголовок сообщения: Ответить с цитатой

А вот что линуксоиды говорили недавно:
http://www.linux.org.ru/view-message.jsp?msgid=1258482
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
willow



Зарегистрирован: 25.05.2005
Сообщения: 160
Откуда: Украина, Киев

СообщениеДобавлено: Thu Feb 16, 2006 3:55 pm    Заголовок сообщения: Ответить с цитатой

О том, как меФорт может запускать систему вместо LAUNCHER. Файл AUTOLOAD.F с комментариями:
Код:

( добавляет 0 в конец строки)
: >asciiz ( адрес строки, длина -- )
   + 0 SWAP C! ;

( заполняет поле path в fileinfo)

: >path ( адрес пути файла, длина -- )
   finfo @ 20 + \ смещение пути в структуре fileinfo
   0  finfo @ 8 + ! \ обнуляем поле параметров
   DUP >R SWAP DUP >R ( запоминаем приемник и длину в стеке возвратов)
   CMOVE ( копируем строку пути)
   R> R> SWAP ( восстанавливаем приемник и длину)
   >asciiz  ( добавляем 0 в конец)
;
   
( заполняет поле param в fileinfo)

: >param ( адрес строки параметров, длина -- )
   OVER finfo @ 8 + !
   >asciiz  ( добавляем 0 в конец)
;
   
( запуск приложения с параметром и задержкой после запуска,
   пути уже занесены в fileinfo)
   
: exec ( время задержки -- )
   16 finfo @ ! \ подфункция 16
   finfo @ 58 sys2 ." started, code=" . CR
   (  вызываем int 0x40 с двумя параметрами,
      код возврата показываем)
   5 sys2 DROP ; \ пауза
\ QUIT


( Стандартный AUTORUN.DAT выглядит так:

7                          # <- Number of programs in the list

# Program          Parameters  Delay
/RD/1/GRSCREEN        <NO>       99    # Set system colors & wallpaper
/RD/1/@RB             <NO>       30    # Desktop right-click menu
/RD/1/@SS             <NO>       30    # Screensaver from M. Lisovin
/RD/1/@PANEL          <NO>       30    # Start panel
/RD/1/SETUP           BOOT       30    # Load device settings
/RD/1/ICON2           BOOT       10    # Multithread icon from Mario79
/RD/1/board           <NO>       50    # Start panel
### Total: 1.1 seconds ###

)
\ А это новый его текст:
\   формат:
\     S" /rd/1/tinypad" >path  S" /rd/1/example.asm" >param 25 exec

S" /RD/1/GRSCREEN" >path 99 exec     \ Set system colors & wallpaper
S" /RD/1/@RB"      >path 30 exec     \ Desktop right-click menu
S" /RD/1/@SS"      >path 30 exec     \ Screensaver from M. Lisovin
S" /RD/1/@PANEL"   >path 30 exec     \ Start panel
S" /RD/1/SETUP" >path S" BOOT" >param 30 exec \ Load device settings
S" /RD/1/ICON2" >path S" BOOT" >param 10 exec \ Multithread icon from Mario79
S" /RD/1/board" >path  25 exec       \ Start panel

BYE \ и закрываем meForth
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ipr



Зарегистрирован: 17.05.2005
Сообщения: 240
Откуда: Усинск

СообщениеДобавлено: Sun Feb 19, 2006 2:07 pm    Заголовок сообщения: Ответить с цитатой

А когда C/C++ портируем? =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Quick Reply
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов meos.sysbin.com -> Программы Часовой пояс: GMT
На страницу 1, 2, 3, 4  След.
Страница 1 из 4

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by www.phpbb.com