Forth http://fforum.winglion.ru/ |
|
Quark 2 : пробы на Qt http://fforum.winglion.ru/viewtopic.php?f=23&t=2532 |
Страница 1 из 4 |
Автор: | Hishnik [ Чт мар 18, 2010 16:52 ] |
Заголовок сообщения: | Quark 2 : пробы на Qt |
Состоялась более или менее удачная проба, отвечающая на принципиальные вопросы. Вкратце, кварк 2 планируется состыковать с Qt (при этом оставив ассемблерный quark как отдельный и по возможности совместимый продукт). Графический интерфейс на Qt умеет посылать строки форт-машине. Форт-машина, в свою очередь, может инициировать выполнение отдельных функций Qt. Предыдущий продукт подобного плана умел делать только первую часть - из фиксированного GUI передавать отдельные строки и скрипты форт-машине. Теперь планируется следующий шаг - Qt-приложение стартует с пустого окна, загружая форт-скрипт, который динамически создает интерфейс, привязывает его к скриптам и т.д. |
Автор: | VoidVolker [ Чт мар 18, 2010 17:00 ] |
Заголовок сообщения: | |
Отлично! Теперь можно хоть браузер делать, хоть веб-ос с интерфейсом, создаваемым скриптом с сервера |
Автор: | вопрос [ Чт мар 18, 2010 20:51 ] |
Заголовок сообщения: | |
Теперь код Кварка 1 будет предоставлен в общесвенное пользование ... |
Автор: | Hishnik [ Чт мар 18, 2010 20:55 ] |
Заголовок сообщения: | |
вопрос писал(а): Теперь код Кварка 1 будет предоставлен в общесвенное пользование ...
На заборе написан? |
Автор: | mgw [ Чт мар 18, 2010 21:01 ] |
Заголовок сообщения: | |
Что значит Цитата: Форт-машина, в свою очередь, может инициировать выполнение отдельных функций Qt. Чуть подробнее можно?
|
Автор: | вопрос [ Чт мар 18, 2010 21:08 ] |
Заголовок сообщения: | |
Хищник писал(а): вопрос писал(а): Теперь код Кварка 1 будет предоставлен в общесвенное пользование ... На заборе написан? |
Автор: | Hishnik [ Чт мар 18, 2010 21:37 ] |
Заголовок сообщения: | |
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, к примеру). |
Автор: | Hishnik [ Чт мар 18, 2010 21:44 ] |
Заголовок сообщения: | |
вопрос писал(а): На заборе написан?
пригрезилось Мне просто интересно, с какой целью нужен текст: 1. Проверить меня на профпригодность 2. Перекомпилировать под своим именем, выдавая за самостоятельный продукт 3. Пустить волну критики, тыкая в каждую строчку, и спрашивая, почему тут так, а не вот так Вот этого мне не то чтобы не надо (потому что все равно), а от дела многих отвлечет. Возможны, однако и 4. Получить список слов для самостоятельной реализации (список слов кварка доступен в документации) 5. Разобраться в каких-то сложных моментах (я неоднократно писал, что по каждому конкретному случаю помогу, вплоть до предоставления соответствующего куска из кварка). 6. Разобраться с API (все доступно в примерах fasm, в кварке ничего особо нового нету) |
Автор: | mgw [ Чт мар 18, 2010 21:59 ] |
Заголовок сообщения: | |
Писать в 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 // Остановить виртуальную машину и ждать графических событий |
Автор: | вопрос [ Чт мар 18, 2010 22:02 ] |
Заголовок сообщения: | |
Цитата: Мне просто интересно, с какой целью нужен текст: Получить общественный инструмент для экспериментов с готовым автором в придачу.
Варианты сборок Кварка как попытки что-то делать по-другому. СПФ плохо задокументирован, составлен многими авторами и не является раздражителем гнуфорт открыт, но почему-то не вызывает интереса сообщества будем ждать кварк 3, чтобы 1 стал не так ценен |
Автор: | Hishnik [ Чт мар 18, 2010 22:15 ] |
Заголовок сообщения: | |
mgw писал(а): Писать в GUI еще один интерпретатор – круто! У меня более простой вариант. Вся DLL – это вызовы функций, возвращающие указатели на динамически создаваемые объекты QT .
Ну а дальше только дергать их из форта передавая параметры. Так интерпретатор - по сути механизм "дергания из форта" Просто собрать список указателей, передать их в Форт (попутно разложив по правильным местам), организовать в Форте обвязку - это все чревато бОльшим количеством сложностей, чем написание несложного интерпретатора. К примеру, договорились мы о формате, при котором некоторая функция записывается со смещением 20 в таблицу адресов - и теперь для обеспечения совместимости необходимо всегда там ее и держать. А если вдруг забудем, или не состыкуемся со стороны Форта, то и полезут логические ошибки (если не аварийные завершения). В то же время текстовый запрос интерпретатору позволит хотя бы отследить ситуацию "Форт просит то, чего нет", а заодно и не вспоминать про порядок укладки адресов. Собственно, указатели на структуры данных и методы обработки в форт-машину уже передавались. Итог таков, что в GUI захотелось интерпретатор |
Автор: | mgw [ Чт мар 18, 2010 22:27 ] |
Заголовок сообщения: | |
Логично, привыкнув к форту (интерпретатору), хочется расширить его возможности и на GUI (C++). Это понятно. Эксперименты с кварком и QT идут и на Linux тоже? Я к тому, что интерфейсная часть на кварке одинакова и для windows и для linux? |
Автор: | Hishnik [ Чт мар 18, 2010 22:32 ] |
Заголовок сообщения: | |
вопрос писал(а): гнуфорт открыт, но почему-то не вызывает интереса сообщества Потому и не вызывает, что открыт вопрос писал(а): Получить общественный инструмент для экспериментов с готовым автором в придачу.
Варианты сборок Кварка как попытки что-то делать по-другому. А почему нельзя делать, попутно спрашивая меня, как оно сделано в кварке? Почему работа должна строиться путем пересборки кварка, и чем оно будет отличаться от попыток пересборки гнуфорта? И там, и там не будет полного понимания перечня решаемых задач, и не будет ясно, где и в какую сторону копать, чтобы получить нужное. |
Автор: | Hishnik [ Чт мар 18, 2010 22:38 ] |
Заголовок сообщения: | |
mgw писал(а): Логично, привыкнув к форту (интерпретатору), хочется расширить его возможности и на GUI (C++). Это понятно. Эксперименты с кварком и QT идут и на Linux тоже? Я к тому, что интерфейсная часть на кварке одинакова и для windows и для linux?
Да. Ничего ОС-специфичного в программах не используется, предыдущий проект делался для Debian, и Windows шел в качестве дополнительных возможностей. Там и был проверен принцип "один текст на Форте - любая ОС". |
Автор: | вопрос [ Чт мар 18, 2010 22:39 ] |
Заголовок сообщения: | |
Цитата: Потому и не вызывает, что открыт Не потому, а потому что избыточно оригинален (тоже "не совсем форт") а хищниковское детище, как можно предположить, тяготеет к классическому форту и являлось бы стартовой площадкой для нововведений
|
Страница 1 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |