Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:26

...
Google Search
Forth-FAQ Spy Grafic

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




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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
mgw писал(а):
Почему SPF-4.20 не гарантирует в слове S" наличие завершающего нуля?

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


Код:
: PARSE ( char "ccc<char>" -- c-addr u )
  CharAddr >IN @
  ROT SkipUpTo
  >IN @ - NEGATE
  >IN 1+! ;

: S"     [CHAR] " PARSE [COMPILE] SLITERAL ; IMMEDIATE


да, прошу заметить, что речь идет о использовании S" в режиме интерпретации, в случае, если строка скомпилирована, в конце обязательно будет завершающий Z.
т.е., если пишется:
: some bla bla bla S" sample string" bla bla bla ; ноль в конце будет всегда
а, если просто:
bla bla bla S" sample string" DUMP
- строка будет без завершающего нуля.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Вс сен 29, 2013 14:59 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
mgw писал(а):
Почему SPF-4.20 не гарантирует в слове S" наличие завершающего нуля? Пожалуйста аргументированный пример.
Если разговор о других фортах, то это совсем другое дело, я и не спорю.

Потому что в режиме выполнения для строки не выделяется отдельный блок памяти и фактически строка остается во входном буфере. А в режиме компиляции в конце строки таки записывается ноль.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Вс сен 29, 2013 19:11 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
bla bla bla S" sample string" DUMP

Код:
G:\SPF-420>spf4
SP-FORTH - ANS FORTH 94 for Win95/98/Me/NT/2k/XP/Vista
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.20 Build 001 at 21.Jan.2009

7 S" ABC" DUMP S" ABC" DUMP S" ABC" DUMP

221C25   41 42 43 00 20 44 55 4D  50 20 53 22  20 41 42 43 ABC. DUMP S" ABC
221C32   41 42 43 00 20 44 55 4D  50 20 53 22  20 41 42 43 ABC. DUMP S" ABC
221C3F   41 42 43 00 20 44 55 4D  50 0D 0A 00  00 00 00 00 ABC. DUMP....... Ok
( 7 )


0 дописывает SLITERAL. В общем так, при компиляции проблем нет, это
точно, при интерпретации надо обработать строку в той же строке, где
она и определена:
S" ABC" DUMP \ правильно
S" ABC"
DUMP \ ошибка, пред. строка из буфера уже заменена.

Вывод: S" - работает корректно, но надо понимать, что делаешь
и почему. Вот собственно, почему я остановился на SPF, а не на других
фортах, так это возможность посмотреть любой аспект его работы по исходникам.

P.S. По моим наблюдениям в России программистов на Forth в несколько раз больше, чем на D.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Вс сен 29, 2013 22:11 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
mgw писал(а):
P.S. По моим наблюдениям в России программистов на Forth в несколько раз больше, чем на D.

Кто все эти люди? :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Пн сен 30, 2013 01:13 
Не в сети

Зарегистрирован: Чт янв 19, 2012 08:35
Сообщения: 11
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста как правильно скомпилировать файл с библиотеками и как заполучить вот эту полезную штуку REQUIRE CDECL-CALL ~mgw/mgw_dll.f
Код:
WINAPI: Tcl_Init C:\Tcl\bin\tcl86.dll
WINAPI: Tcl_CreateInterp C:\Tcl\bin\tcl86.dll
WINAPI: Tcl_Eval C:\Tcl\bin\tcl86.dll

WINAPI: Tk_Init C:\Tcl\bin\tk86.dll
WINAPI: Tk_MainWindow C:\Tcl\bin\tk86.dll
WINAPI: Tk_MainLoop C:\Tcl\bin\tk86.dll
WINAPI: Tk_ConfigureWidget C:\Tcl\bin\tk86.dll

: Tcl_Interp Tcl_CreateInterp ;

Tcl_Interp CONSTANT tcl

: TCL
    tcl Tcl_Init 2DROP
    tcl Tk_Init 2DROP
    tcl Tk_MainWindow 2DROP
;

: Eval DROP tcl Tcl_Eval 2DROP DROP ;

: MAIN
    TCL
    S" package require Tk " Eval
    S" wm title . " Eval
    S" proc x {} {puts exit}" Eval
    S" button .b -text 132154 -command x" Eval
    S" pack .b -fill both " Eval
    S" entry .e " Eval
    S" pack .e -fill both " Eval
    S" after 5000 {x} " Eval
    Tk_MainLoop
;

MAIN
\ 0 TO SPF-INIT?
\ ' ANSI>OEM TO ANSI><OEM
\ TRUE TO ?GUI
\ ' MAIN MAINX !
\ S" go.exe" SAVE 
\ run
\ BYE



пробовал всяко заканчивается вылетанием


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Пн сен 30, 2013 08:52 
Не в сети

Зарегистрирован: Чт янв 19, 2012 08:35
Сообщения: 11
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Простите зря потревожил. Уже понял в чем ошибка константу надо было заменить на переменную ))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Пн сен 30, 2013 16:06 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Skokov писал(а):
как заполучить вот эту полезную штуку REQUIRE CDECL-CALL ~mgw/mgw_dll.f

На http://qte.ucoz.ru/load архив от 30.09.13. В нем есть каталог SPF. Там два варианта, для Windows и Linux.
По тексту они одинаковые, различаются кодировкой.Там же графическая консоль и смотрелка текстов форта.
В качестве примера использования ~mgw/mgw_dll.f смотри ~mgw/qte.f
Всё собираюсь попробовать подключить JavaScript из Qt. Уже подсоединил QtScript, но дальше сдвинутся не могу. Всё время не хватает времени.
Начал переписывать свою графическую консоль на QtE. Пока в Linux, называется console2.f Планирую вставить
Help, поиск слова по первым буквам и автодополнение, просмотр исходников с подсветкой (всё было в старом варианте).
Что бы в неё такого вставить, жизненно необходимого, но не сложного для программирования?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Пн сен 30, 2013 16:57 
Не в сети

Зарегистрирован: Чт янв 19, 2012 08:35
Сообщения: 11
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
mgw писал(а):
Всё время не хватает времени.


Вот то то и оно уже три ночи с фортом не спал по хорошему ) и все равно еще ничего толком не понял, но затягивает он интереснее чем все то что я знал раньше.

Спасибо за архив.

И снова вопрос что значит это?
Код:
( n ppStmt -- addr u ) \ коментарии что на входе и на выходе наверное

а это?
Код:
{ addr u par xt sqh \ pzTail ppStmt i -- }

и это
Код:
addr u sqh db3_prepare -> ppStmt -> pzTail


что передает эта стрелка -> и почему у меня на ней ошибка


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Графика встроенными средствами Forth
СообщениеДобавлено: Пн сен 30, 2013 17:36 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Skokov писал(а):
И снова вопрос что значит это?
Код:
( n ppStmt -- addr u ) \ коментарии что на входе и на выходе наверное


Да. Комментарий к словам.

Skokov писал(а):
а это?
Код:
{ addr u par xt sqh \ pzTail ppStmt i -- }

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


Skokov писал(а):
и это
Код:
addr u sqh db3_prepare -> ppStmt -> pzTail


что передает эта стрелка -> и почему у меня на ней ошибка

Скорее доступ к элементу струтуры по значению адреса
Нужно найти где оно определяется или откуда берётся.:)
\ Бывают вариации использования этого варианта присваиванию значений переменной VALUE вместо стандартного слова TO для этого.


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

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


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

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


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

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