Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Итого, общая идея встраивания Форта во что-то - вполне рабочая С IUP разработка видится "сверху вниз", согласно вот этой структуре. С кварком (cation? все никак не стабилизирую название) работа идет в стиле машины состояний - структура GUI может изменяться динамически. Но это просто другой стиль. Приятно то, что еще один вариант взаимодействия показывает жизнеспособность и при этом не связан с трудоемким процессом "все перепишем на Форте".
Итого, общая идея встраивания Форта во что-то - вполне рабочая :) С IUP разработка видится "сверху вниз", согласно вот этой структуре. С кварком (cation? все никак не стабилизирую название) работа идет в стиле машины состояний - структура GUI может изменяться динамически. Но это просто другой стиль. Приятно то, что еще один вариант взаимодействия показывает жизнеспособность и при этом не связан с трудоемким процессом "все перепишем на Форте".
|
|
|
|
Добавлено: Вт авг 03, 2021 23:59 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Victor__v писал(а): Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось Я так же делал в программах на Си, да и интерфейс функций создания объектов к этому располагает. Но мне показалось более логичным задавать иерархию объектов сверху вниз
[quote="Victor__v"]Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось[/quote] Я так же делал в программах на Си, да и интерфейс функций создания объектов к этому располагает. Но мне показалось более логичным задавать иерархию объектов сверху вниз
|
|
|
|
Добавлено: Вт авг 03, 2021 22:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Привязка IUP интересная) Надо же создавать пустой контейнер и в него уже все складывать) Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось
Привязка IUP интересная) Надо же создавать пустой контейнер и в него уже все складывать) Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось
|
|
|
|
Добавлено: Вт авг 03, 2021 20:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Victor__v писал(а): Обертка над IUP замечательно. А можно исходник этого? Конечно. https://disk.yandex.ru/d/oiv5iChgL84-WgНепосредственно привязка к IUP в файле main.c. Реализованы только слова, необходимые для написания демо-программ. Для поддержки всей библиотеки нужно будет добавить примитивов. Если будут вопросы (в том числе и по Форт-системе) - задавайте. Так как писал для себя, то комментариев в коде нет
[quote="Victor__v"]Обертка над IUP замечательно. А можно исходник этого?[/quote] Конечно. https://disk.yandex.ru/d/oiv5iChgL84-Wg Непосредственно привязка к IUP в файле main.c. Реализованы только слова, необходимые для написания демо-программ. Для поддержки всей библиотеки нужно будет добавить примитивов. Если будут вопросы (в том числе и по Форт-системе) - задавайте. Так как писал для себя, то комментариев в коде нет
|
|
|
|
Добавлено: Вт авг 03, 2021 17:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Обертка над IUP замечательно. А можно исходник этого?
Обертка над IUP замечательно. А можно исходник этого?
|
|
|
|
Добавлено: Вт авг 03, 2021 09:54 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Hishnik писал(а): Ого! А что за библиотека в основе? Неужели чистое GDI? IUP для создания окон и CD (Canvas Draw) для рисования на холсте. IUP позволяет описывать окно, его элементы и их расположение иерархически, что позволяет не указывать явные координаты каждого элемента. Описание окна программы построения графика синуса. Слова VERTICALLY и HORIZONTALLY создают контейнеры, автоматически размещающие дочерние элементы вертикально и горизонтально соответственно. Слова ->, S-> и F-> устанавливают значение атрибута создаваемого элемента в целое, строку или число с плавающей точкой. Слово AS-ACTION устанавливает строку на Форте в качестве обработчика события "ACTION" (для кнопки - нажатие, для холста - перерисовка при разворачивании или перемещении окна). Код: WINDOW MAIN " График синуса " S-> TITLE 0 -> RESIZE VERTICALLY HORIZONTALLY LABEL AMP " Амплитуда:" S-> TITLE END TEXT AMP.TEXT " HORIZONTAL" S-> EXPAND 1.0 F-> VALUE END END HORIZONTALLY LABEL FREQ " Частота:" S-> TITLE END TEXT FREQ.TEXT " HORIZONTAL" S-> EXPAND 1.0 F-> VALUE END END HORIZONTALLY LABEL PHASE " Начальная фаза:" S-> TITLE END TEXT PHASE.TEXT " HORIZONTAL" S-> EXPAND 0.0 F-> VALUE END END BUTTON PLOT.BUTTON " Построить" S-> TITLE " PLOT" AS-ACTION END CANVAS SCREEN " 640x400" S-> RASTERSIZE " REDRAW" AS-ACTION END END END
[quote="Hishnik"]Ого! А что за библиотека в основе? Неужели чистое GDI?[/quote] IUP для создания окон и CD (Canvas Draw) для рисования на холсте. IUP позволяет описывать окно, его элементы и их расположение иерархически, что позволяет не указывать явные координаты каждого элемента.
Описание окна программы построения графика синуса. Слова VERTICALLY и HORIZONTALLY создают контейнеры, автоматически размещающие дочерние элементы вертикально и горизонтально соответственно. Слова ->, S-> и F-> устанавливают значение атрибута создаваемого элемента в целое, строку или число с плавающей точкой. Слово AS-ACTION устанавливает строку на Форте в качестве обработчика события "ACTION" (для кнопки - нажатие, для холста - перерисовка при разворачивании или перемещении окна). [code]WINDOW MAIN " График синуса " S-> TITLE 0 -> RESIZE VERTICALLY HORIZONTALLY LABEL AMP " Амплитуда:" S-> TITLE END TEXT AMP.TEXT " HORIZONTAL" S-> EXPAND 1.0 F-> VALUE END END HORIZONTALLY LABEL FREQ " Частота:" S-> TITLE END TEXT FREQ.TEXT " HORIZONTAL" S-> EXPAND 1.0 F-> VALUE END END HORIZONTALLY LABEL PHASE " Начальная фаза:" S-> TITLE END TEXT PHASE.TEXT " HORIZONTAL" S-> EXPAND 0.0 F-> VALUE END END BUTTON PLOT.BUTTON " Построить" S-> TITLE " PLOT" AS-ACTION END CANVAS SCREEN " 640x400" S-> RASTERSIZE " REDRAW" AS-ACTION END END END[/code]
|
|
|
|
Добавлено: Пн авг 02, 2021 10:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Ого! А что за библиотека в основе? Неужели чистое GDI?
Ого! А что за библиотека в основе? Неужели чистое GDI?
|
|
|
|
Добавлено: Пн авг 02, 2021 02:33 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Дополнил свой Форт-движок словами, необходимыми для указанных примеров. Теперь могу на Форте описывать GUI, почти как в Кварке! :pilot2;
[url=https://postimg.cc/y3CwPYzC][img]https://i.postimg.cc/y3CwPYzC/square-equation.png[/img][/url]
[url=https://postimg.cc/2bZshLMx][img]https://i.postimg.cc/2bZshLMx/sine.png[/img][/url]
[url=https://postimg.cc/SXcg70kw][img]https://i.postimg.cc/SXcg70kw/Video-2021-08-02-005054.gif[/img][/url]
|
|
|
|
Добавлено: Пн авг 02, 2021 02:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Total Vacuum писал(а): Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать... Квадратное уравнение - прекрасная демонстрация того, что даже в простой задаче может быть масса вариантов решения, в зависимости от исходной постановки.
[quote="Total Vacuum"]Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать...[/quote] Квадратное уравнение - прекрасная демонстрация того, что даже в простой задаче может быть масса вариантов решения, в зависимости от исходной постановки.
|
|
|
|
Добавлено: Пн июл 26, 2021 20:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Hishnik писал(а): 1. Решить квадратное уравнение ( a, b, c -- x1, x2, t | f ) Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать...
[quote="Hishnik"]1. Решить квадратное уравнение ( a, b, c -- x1, x2, t | f )[/quote] :D Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать... :)
|
|
|
|
Добавлено: Пн июл 26, 2021 12:29 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Я неточно выразился, под встраиваемым подразумевал встраиваемый в программу на другом языке, он приобретает специализацию в рамках этой программы. Но суть понятна, спасибо за ответ
Я неточно выразился, под встраиваемым подразумевал встраиваемый в программу на другом языке, он приобретает специализацию в рамках этой программы. Но суть понятна, спасибо за ответ
|
|
|
|
Добавлено: Сб июл 24, 2021 16:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
zma писал(а): как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы?
Или так, или тестировать на том, для чего он преимущественно разработан. Встраиваемый может что-то измерить, послать по имеющемуся интерфейсу, разобрать принимаемые от ПК команды.
[quote="zma"] как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы? [/quote] Или так, или тестировать на том, для чего он преимущественно разработан. Встраиваемый может что-то измерить, послать по имеющемуся интерфейсу, разобрать принимаемые от ПК команды.
|
|
|
|
Добавлено: Сб июл 24, 2021 14:57 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
5. Реализовать "эхо-сервер" - программу, которая принимает подключения по TCP и отправляет клиенту все принятые от него данные без изменений. Задача "со звёздочкой" - реализовать одновременную работу нескольких клиентов.
Hishnik, как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы?
5. Реализовать "эхо-сервер" - программу, которая принимает подключения по TCP и отправляет клиенту все принятые от него данные без изменений. Задача "со звёздочкой" - реализовать одновременную работу нескольких клиентов.
[b]Hishnik[/b], как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы?
|
|
|
|
Добавлено: Сб июл 24, 2021 13:07 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Victor__v писал(а): А так чем СПФ не пример: Вызов кода из ОС есть, потоки есть, калбеки есть. Вот как раз СПФ (с более чем 20-летней историей) и не пример в топике озаглавленном "Минимальное демо для НОВЫХ трансляторов". Мало-ли что у кого есть за годы развития... Так что аппеляция к СПФ не засчитана. Hishnik писал(а): Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows...... Полностью согласен, ведь в этом же и вся суть: предоствить пользователю, тобишь программисту, максимальную свободу использовать что ему нужно. Если все это есть, то демо просто покажет это. ...Как это ни парадоксально звучит, но писать Гуй под винду используя видвос апи это боль, но тем не менее такя возможность должна быть, а уж программист сам решит вокруг чего сделать враппер. Я просто думаю, что предоставлять уже готовую библиотеку оконных слов (пардон за терминологию, поправьте если что) новая ФС не должна. Новая ФС должна занимать тот самый низкий уровень обеспечивающий взаимодействие с ОС + базовый набор слов.
[quote="Victor__v"] А так чем СПФ не пример: Вызов кода из ОС есть, потоки есть, калбеки есть.[/quote]
Вот как раз СПФ (с более чем 20-летней историей) и не пример в топике озаглавленном "Минимальное демо для НОВЫХ трансляторов". Мало-ли что у кого есть за годы развития... Так что аппеляция к СПФ не засчитана.
[quote="Hishnik"]Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows......[/quote] Полностью согласен, ведь в этом же и вся суть: предоствить пользователю, тобишь программисту, максимальную свободу использовать что ему нужно. Если все это есть, то демо просто покажет это. ...Как это ни парадоксально звучит, но писать Гуй под винду используя видвос апи это боль, но тем не менее такя возможность должна быть, а уж программист сам решит вокруг чего сделать враппер. Я просто думаю, что предоставлять уже готовую библиотеку оконных слов (пардон за терминологию, поправьте если что) новая ФС не должна. Новая ФС должна занимать тот самый низкий уровень обеспечивающий взаимодействие с ОС + базовый набор слов.
|
|
|
|
Добавлено: Сб июл 24, 2021 00:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Минимальное демо для новых трансляторов |
|
|
Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows. Однако это очень уж простое решение, сводящее Форт не просто к ассемблеру, а к какому-то ассемблеру даже без элементарных макросов. Это теперь ВСЕ необходимо писать каждый раз, и каждый раз следить, чтобы не ошибиться в обязательных вещах. Я потому и предлагаю посмотреть, как будут реализовываться простые примеры. Это покажет, что неудобно, чего не хватает, за чем придется постоянно залезать в документацию.
Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows. Однако это очень уж простое решение, сводящее Форт не просто к ассемблеру, а к какому-то ассемблеру даже без элементарных макросов. Это теперь ВСЕ необходимо писать каждый раз, и каждый раз следить, чтобы не ошибиться в обязательных вещах. Я потому и предлагаю посмотреть, как будут реализовываться простые примеры. Это покажет, что неудобно, чего не хватает, за чем придется постоянно залезать в документацию.
|
|
|
|
Добавлено: Чт июл 22, 2021 23:46 |
|
|
|
|