Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс ноя 19, 2017 9:48 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 82 сообщения ]  На страницу 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Forth
СообщениеДобавлено: Ср фев 01, 2006 7:17 pm 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Помнится, еще на форуме Fastbb кто-то предлагал портировать Форт систему на MeOS. Все забыли, а я запал на Форт и все подумывал о порте. Неделю назад нашел простенький eForth16 с исходниками на асме... Сегодня уже практически готова 32-битная версия для Колибри. Осталось сделать некоторые усовершенствования в консоли.

_________________
Vivat assembler et KolibriOS!


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 02, 2006 2:12 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 13, 2005 12:00 pm
Сообщения: 299
кгхм, м.б. фортран? ;) Но все равно, язык высокого уровня очень хорошо в любом случае (как и паскаль)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 02, 2006 11:05 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Да нет уж, именно Форт :-) Смотри http://forth.org.ru/


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 02, 2006 9:13 pm 
willow
Насколько мне помниться, форт хорош тем, что относительно быстро работает даже в режиме интерпретации, и команды в нем занимают очень мало места (2 байта?), разумеется, не считая процедуры их определяющей.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 03, 2006 12:20 am 
Не в сети

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


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 03, 2006 11:20 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Mario79 писал(а):
относительно быстро работает даже в режиме интерпретации, и команды в нем занимают очень мало места (2 байта?)

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

_________________
Vivat assembler et KolibriOS!


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 03, 2006 11:51 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 13, 2005 12:00 pm
Сообщения: 299
Нужна графическая поддержка, т.е. рисование примитивов в окне, и основные математические функции - показательные, тригонометрические, логарифмические, логические.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 04, 2006 5:16 pm 
willow
Надо чтобы программы можно было запускать, с помощью SYSXTREE, то есть, чтобы интерпретатор поддерживал запуск с параметром. Чтобы запуск приложений был прозрачен и почти неотличим для пользователей. А так хорошая идея для реализации игрушек, например.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 10, 2006 3:19 pm 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Это аналог 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 KolibriOS!


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 10, 2006 5:58 pm 
Да, примерчик довольно непонятный... :)


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 10, 2006 7:21 pm 
willow
Все оценили твою шутку, особенно те, кто форт не знает. ;-)
Придется тебе написать заодно и доку к своему интерпретатору, а так текст программы довольно короткий и если ввести в сам интерпретатор побольше стандартных команд, то думаю, его можно будет сделать еще короче и тогда написание программ будет вообще простым.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 13, 2006 11:03 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Да, конечно, без документации никуда!


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 13, 2006 2:11 pm 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
А вот что линуксоиды говорили недавно:
http://www.linux.org.ru/view-message.jsp?msgid=1258482


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 16, 2006 6:55 pm 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
О том, как меФорт может запускать систему вместо 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


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 19, 2006 5:07 pm 
А когда C/C++ портируем? =)


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

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB