Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июл 16, 2018 23:54

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 70 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт янв 29, 2013 09:30 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1254
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Код:
SMARTSTRING OFF
" string"

Код:
SMARTSTRING ON
"string"

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт янв 29, 2013 13:58 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6341
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
admin from eepc писал(а):
а выключать его как?

SMARTSTRING OFF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб окт 10, 2015 21:08 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 111
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Hishnik писал(а):
WingLion писал(а):
TIMER-INTERVAL ?
может, чего неправильно делаю?

TIMER_INTERVAL

Наверное, надо алиас сделать, часто ошибки из-за этого.

Не надо "алиас", надо документацию подправить. В начале раздела "2. Взаимодействие с программным окружением" перед скриншотом Proton-а есть такой текст:
Код:
При работе регулярно вызывается векторное слово <TIMER>,
интервал вызова которого задается системной переменной TIMER-INTERVAL (в
миллисекундах).

Хотя дальше в таблице форт-слов Quark-а написано:
Код:
TIMER_INTERVAL 4 Интервал вызова векторного слова <TIMER>

То есть, в начале "TIMER-INTERVAL", а потом "TIMER_INTERVAL" сразу опечатка в глаза не бросается. От сюда и регулярные ошибки у пользователей. Уважаемый Hishnik сделайте ревизию документации, добавьте пару простеньких примеров. Все будут рады. Либо сделайте документацию в виде Wiki на сайте -- пользователи сами ее дополнят/исправят.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вс окт 11, 2015 01:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6341
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
kzagradskiy писал(а):
То есть, в начале "TIMER-INTERVAL", а потом "TIMER_INTERVAL" сразу опечатка в глаза не бросается. От сюда и регулярные ошибки у пользователей. Уважаемый Hishnik сделайте ревизию документации, добавьте пару простеньких примеров. Все будут рады. Либо сделайте документацию в виде Wiki на сайте -- пользователи сами ее дополнят/исправят.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт окт 13, 2015 19:38 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1254
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Hishnik писал(а):
Обновление документации дело хорошее, насчет wiki надо подумать. Это надо организовывать и поддерживать...

Гитхаб. Там же можно сделать репозиторий для примеров кода. Готов хоть прямо сейчас сделать стартовую версию.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пн сен 05, 2016 22:31 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 585
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
пришлось тут....по долгу службы...
реализация Брезенхейма для линии на Quark-е - в 2D экран - из серии тупо и в лоб...
продолжение подобных развлечений, видимо, следует ))))
Код:
\ void drawLine(int x1, int y1, int x2, int y2) {
\     const int deltaX = abs(x2 - x1);
\     const int deltaY = abs(y2 - y1);
\     const int signX = x1 < x2 ? 1 : -1;
\     const int signY = y1 < y2 ? 1 : -1;
\     int error = deltaX - deltaY;
\     setPixel(x2, y2);
\     while(x1 != x2 || y1 != y2)
\    {
\        setPixel(x1, y1);
\         const int error2 = error * 2;
\         if(error2 > -deltaY)
\         {
\             error -= deltaY;
\            x1 += signX;
\         }
\         if(error2 < deltaX)
\         {
\             error += deltaX;
\             y1 += signY;
\         }
\     }
\ }
0 VALUE x1 0 VALUE x2 0 VALUE y1 0 VALUE y2
0 VALUE deltaX 0 VALUE deltaY
0 VALUE signX 0 VALUE signY
0 VALUE error 0 VALUE error2
0xFF00FF VALUE color
: setColor 
  TO color
;

: drawLine \ x1 y1 x2 y2 --
  TO y2 TO x2 TO y1 TO x1
    x2 x1 - ABS TO deltaX 
    y2 y1 - ABS TO deltaY
    x1 x2 < IF 1 ELSE -1 THEN TO signX
    y1 y2 < IF 1 ELSE -1 THEN TO signY
    deltaX deltaY - TO error
    x2 y2 color PIXEL
    BEGIN
        x1 y1 color PIXEL
        error 2* TO error2
        error2 deltaY -1 * > IF
          error deltaY - TO error
          x1 signX + TO x1
        THEN
        error2 deltaX  < IF
          error deltaX + TO error
          y1 signY + TO y1
        THEN
    x1 x2 = y1 y2 = AND UNTIL
;

100 100 500 70 drawLine
100 100 500 170 drawLine


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт сен 06, 2016 02:39 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6341
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
diver писал(а):
реализация Брезенхейма для линии на Quark-е - в 2D экран - из серии тупо и в лоб...

Так может в ядро внести, если надо?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт сен 06, 2016 05:48 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 585
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
Hishnik писал(а):
diver писал(а):
реализация Брезенхейма для линии на Quark-е - в 2D экран - из серии тупо и в лоб...

Так может в ядро внести, если надо?

Не очень уверен, что это сильно актуально....

локальных переменных бы в стиле { a b c | d } это да )))
и пару-тройку базовых примеров с графикой в архив (можно, конечно и на форуме нарыть, но системизация простейшая бы не помешала...)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт сен 06, 2016 06:39 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 585
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
продолжение "развлечений" - прямоугольнички - контур и раскрашенный

Код:
0 VALUE h
0 VALUE v
: Rectangle \ x1 y1 h v
  TO v TO h TO x1 TO y1
  x1 y1 h color HLINE  x1 h + y1 v color VLINE
  x1 y1 v color VLINE  x1 y1 v +  h color HLINE
;
: fillRect \   x1 y1 h v color
  setColor
  TO v TO h TO x1 TO y1
    v 0 DO
       x1 y1 I + h color HLINE
    LOOP
;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вт сен 06, 2016 09:46 
diver писал(а):
реализация Брезенхейма
Линии удобнее рисовать, используя числа двойной длины. Складывать полностью, а отрисовывать только старшую половину. Т.е. младшая половина - error, а перенос из ее - превышение delta. Надобность в сравнениях отпадает.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Ср сен 07, 2016 00:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6341
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
diver писал(а):
локальных переменных бы в стиле { a b c | d } это да )))


Есть такие варианты:

Код:
: BOX // X1, Y1, X2, Y2, COLOR
  4 PICK 4 PICK 4 PICK 7 PICK - 3 PICK HLINE
  4 PICK 4 PICK 3 PICK 6 PICK - 3 PICK VLINE
  4 PICK 2 PICK 4 PICK 7 PICK - 3 PICK HLINE
  2 PICK 4 PICK 3 PICK 6 PICK - 3 PICK VLINE
  DROP DROP DROP DROP DROP
;

100 150 200 180 0xFFFF BOX

: BOX // X1, Y1, X2, Y2, COLOR
      //  4    3   2   1   0
  FRAME{
    ARG4 @ ARG3 @ ARG2 @ ARG4 @ - ARG0 @ HLINE
    ARG4 @ ARG3 @ ARG1 @ ARG3 @ - ARG0 @ VLINE
    ARG4 @ ARG1 @ ARG2 @ ARG4 @ - ARG0 @ HLINE
    ARG2 @ ARG3 @ ARG1 @ ARG3 @ - ARG0 @ VLINE
  }FRAME
;

300 150 400 180 0xFF00 BOX

: BOX
  LOC[
    QUAN X1 QUAN X2 QUAN Y1 QUAN Y2 QUAN COLOR
  ]LOC
  TO COLOR TO Y2 TO X2 TO Y1 TO X1
 
  X1 Y1 X2 X1 - COLOR HLINE
  X1 Y1 Y2 Y1 - COLOR VLINE
  X1 Y2 X2 X1 - COLOR HLINE
  X2 Y1 Y2 Y1 - COLOR VLINE
;

500 150 600 180 0xFF0000 BOX


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Ср сен 07, 2016 06:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 585
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
вот последний - совсем красивый))

(плохо я мануал курил))))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Ср сен 07, 2016 23:51 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6341
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
diver писал(а):
вот последний - совсем красивый))

Оно и было сделано как раз "по нарастанию эффекта". В последнем случае, кстати, внутри LOC[ ]LOC можно объявлять вообще что угодно, включая вложенные слова. А в них - свои такие же структуры и вложенные слова. Это не особенный режим со своими ресурсами и контекстом, а просто временный перевод в режим интерпретации, где LOC[ к тому же делает ссылку вперед, а ]LOC ставит туда переход на себя, попутно восстанавливая CURRENT на момент входа в LOC[. Получается, что в процессе определения слова в словаре делается отдельная ветка, которая при выполнении ]LOC просто выключается из поиска.

Вот мне кажется, что это есть решение в рамках форт-подхода. Не в "высокодуховном" смысле, а на основе имеющихся структур, алгоритмов и приемов программирования.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Ср сен 07, 2016 23:57 
Hishnik писал(а):
Вот мне кажется, что это есть решение в рамках форт-подхода.
"В рамках форт-подхода" это стандартно делается путем организации отдельного словаря. Сама же идея "толстых слов", требующих локальных переменных, противоречит FORTH-подходу. Нарушает FORTH-соглашения и наличие большого числа почти одинаковых строк.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 13:05 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 564
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Цитата:
Вот мне кажется, что это есть решение в рамках форт-подхода. Не в "высокодуховном" смысле, а на основе имеющихся структур, алгоритмов и приемов программирования.

Иногда делаю слова-карманы внутри слов.
Что-то вроде
: test 10 10 . . [ here 1000 allocate throw dp ! here ]
.... \ код кармана-слова
[ dup lit, ]
r> ['] throw >r ['] free >r >r
['] ] >r
[ ret, swap dp ! execute
.... \ продолжаем работу test
;

_________________
Цель: сделать 64-битную Нову под Винду


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

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


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

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


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

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