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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Quark 2 : пробы на Qt
СообщениеДобавлено: Чт мар 18, 2010 16:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
Состоялась более или менее удачная проба, отвечающая на принципиальные вопросы. Вкратце, кварк 2 планируется состыковать с Qt (при этом оставив ассемблерный quark как отдельный и по возможности совместимый продукт). Графический интерфейс на Qt умеет посылать строки форт-машине. Форт-машина, в свою очередь, может инициировать выполнение отдельных функций Qt. Предыдущий продукт подобного плана умел делать только первую часть - из фиксированного GUI передавать отдельные строки и скрипты форт-машине. Теперь планируется следующий шаг - Qt-приложение стартует с пустого окна, загружая форт-скрипт, который динамически создает интерфейс, привязывает его к скриптам и т.д.
Изображение


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 17:00 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1255
Благодарил (а): 3 раз.
Поблагодарили: 17 раз.
Отлично! Теперь можно хоть браузер делать, хоть веб-ос с интерфейсом, создаваемым скриптом с сервера :)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 20:51 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Теперь код Кварка 1 будет предоставлен в общесвенное пользование ... :?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 20:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
вопрос писал(а):
Теперь код Кварка 1 будет предоставлен в общесвенное пользование ...

На заборе написан? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 21:01 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 10 раз.
Что значит
Цитата:
Форт-машина, в свою очередь, может инициировать выполнение отдельных функций Qt.
Чуть подробнее можно?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 21:08 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
вопрос писал(а):
Теперь код Кварка 1 будет предоставлен в общесвенное пользование ...

На заборе написан? :)
пригрезилось


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 21:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
mgw писал(а):
Цитата:
Форт-машина, в свою очередь, может инициировать выполнение отдельных функций Qt.
Чуть подробнее можно?

Два программных модуля могут обращаться друг к другу разными способами. В QuarkCAD был использован следующий подход: модуль форт-машины имеет функцию Evaluate, которая принимает строку. Все операции с форт-машиной проводятся через посылку различных строк. Если теперь расширить эту идею, то можно и в GUI организовать машину, которая будет принимать строки и вызывать различные функции Qt.
Вот, например
Код:
CREATE-WEBVIEW WEB1
WEB1 10 20 1024 500 SET-GEOMETRY
" http://fforum.winglion.ru/index.php" WEB1 LOADWEB

Превратится в последовательность вызовов
Код:
   AddQuarklet(QUARKWEBVIEW);
   QuarkSetGeometry(id, 10, 20, 1024, 500);
   QuarkLoadWeb(id,"http://fforum.winglion.ru/index.php");

При этом, если второе уже скомпилировано, то первое - набираемый скрипт (в QTextEdit, к примеру).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 21:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
вопрос писал(а):
На заборе написан?
пригрезилось

Мне просто интересно, с какой целью нужен текст:
1. Проверить меня на профпригодность
2. Перекомпилировать под своим именем, выдавая за самостоятельный продукт
3. Пустить волну критики, тыкая в каждую строчку, и спрашивая, почему тут так, а не вот так
Вот этого мне не то чтобы не надо (потому что все равно), а от дела многих отвлечет. Возможны, однако и
4. Получить список слов для самостоятельной реализации (список слов кварка доступен в документации)
5. Разобраться в каких-то сложных моментах (я неоднократно писал, что по каждому конкретному случаю помогу, вплоть до предоставления соответствующего куска из кварка).
6. Разобраться с API (все доступно в примерах fasm, в кварке ничего особо нового нету)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 21:59 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 10 раз.
Писать в GUI еще один интерпретатор – круто! У меня более простой вариант. Вся DLL – это вызовы функций, возвращающие указатели на динамически создаваемые объекты QT .
Ну а дальше только дергать их из форта передавая параметры.
Код:
load stdlib.zim
ncodec "UTF-8" sz_:=       // Имя кодека кодовой страницы
def myApp:CQApplication  // Инициализация класса Приложение

def qs1:CQStr            // опред объект qs1 класса QString
: str-->qstr               // Переобразовать строку в QString
     1+ qs1.set qs1.% ;
0 0 def label1:CQLabel   // опред объект label1 класса QLabel
"Привет из нашей программы!" str-->qstr label1.setText   // устанавл текст в label1.
: привет label1.show ;                              // опреденовое слово
: main                                  // основная программа
    "Внимание!" str-->qstr label1.setWindowTitle         // Поставим заголовок на форму
    привет
    myApp.exec   // главный цикл, ожидание графических событий
    ;
main
mstop                    // Остановить виртуальную машину и ждать графических событий


Последний раз редактировалось mgw Чт мар 18, 2010 22:05, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:02 
Не в сети

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

будем ждать кварк 3, чтобы 1 стал не так ценен


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
mgw писал(а):
Писать в GUI еще один интерпретатор – круто! У меня более простой вариант. Вся DLL – это вызовы функций, возвращающие указатели на динамически создаваемые объекты QT .
Ну а дальше только дергать их из форта передавая параметры.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:27 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 10 раз.
Логично, привыкнув к форту (интерпретатору), хочется расширить его возможности и на GUI (C++). Это понятно. Эксперименты с кварком и QT идут и на Linux тоже? Я к тому, что интерфейсная часть на кварке одинакова и для windows и для linux?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:32 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Потому и не вызывает, что открыт ;)
вопрос писал(а):
Получить общественный инструмент для экспериментов с готовым автором в придачу.
Варианты сборок Кварка как попытки что-то делать по-другому.

А почему нельзя делать, попутно спрашивая меня, как оно сделано в кварке? Почему работа должна строиться путем пересборки кварка, и чем оно будет отличаться от попыток пересборки гнуфорта? И там, и там не будет полного понимания перечня решаемых задач, и не будет ясно, где и в какую сторону копать, чтобы получить нужное.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6439
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
mgw писал(а):
Логично, привыкнув к форту (интерпретатору), хочется расширить его возможности и на GUI (C++). Это понятно. Эксперименты с кварком и QT идут и на Linux тоже? Я к тому, что интерфейсная часть на кварке одинакова и для windows и для linux?

Да. Ничего ОС-специфичного в программах не используется, предыдущий проект делался для Debian, и Windows шел в качестве дополнительных возможностей. Там и был проверен принцип "один текст на Форте - любая ОС".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 18, 2010 22:39 
Не в сети

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


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

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


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

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


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

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