Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 24, 2024 02:52

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Минимальное демо для новых трансляторов
Автор Сообщение
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Итого, общая идея встраивания Форта во что-то - вполне рабочая :) С IUP разработка видится "сверху вниз", согласно вот этой структуре. С кварком (cation? все никак не стабилизирую название) работа идет в стиле машины состояний - структура GUI может изменяться динамически. Но это просто другой стиль. Приятно то, что еще один вариант взаимодействия показывает жизнеспособность и при этом не связан с трудоемким процессом "все перепишем на Форте".
Сообщение Добавлено: Вт авг 03, 2021 23:59
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Victor__v писал(а):
Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось

Я так же делал в программах на Си, да и интерфейс функций создания объектов к этому располагает. Но мне показалось более логичным задавать иерархию объектов сверху вниз
Сообщение Добавлено: Вт авг 03, 2021 22:39
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Привязка IUP интересная)
Надо же создавать пустой контейнер и в него уже все складывать)
Я помню создавал сначала все объекты и разом их запихивал в контейнер. Мне так проще показалось
Сообщение Добавлено: Вт авг 03, 2021 20:21
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Victor__v писал(а):
Обертка над IUP замечательно.
А можно исходник этого?

Конечно.
https://disk.yandex.ru/d/oiv5iChgL84-Wg
Непосредственно привязка к IUP в файле main.c. Реализованы только слова, необходимые для написания демо-программ. Для поддержки всей библиотеки нужно будет добавить примитивов.
Если будут вопросы (в том числе и по Форт-системе) - задавайте. Так как писал для себя, то комментариев в коде нет
Сообщение Добавлено: Вт авг 03, 2021 17:36
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Обертка над 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
Сообщение Добавлено: Пн авг 02, 2021 10:24
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Ого! А что за библиотека в основе? Неужели чистое GDI?
Сообщение Добавлено: Пн авг 02, 2021 02:33
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Дополнил свой Форт-движок словами, необходимыми для указанных примеров. Теперь могу на Форте описывать GUI, почти как в Кварке! :pilot2;

Изображение

Изображение

Изображение
Сообщение Добавлено: Пн авг 02, 2021 02:00
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Total Vacuum писал(а):
Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать...

Квадратное уравнение - прекрасная демонстрация того, что даже в простой задаче может быть масса вариантов решения, в зависимости от исходной постановки.
Сообщение Добавлено: Пн июл 26, 2021 20:05
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Hishnik писал(а):
1. Решить квадратное уравнение ( a, b, c -- x1, x2, t | f )

:D Кстати, а зачем t/f? Ведь 2 решения (действительные, совпадающие или комплексные) есть всегда... Лучше признак real/complex сделать... :)
Сообщение Добавлено: Пн июл 26, 2021 12:29
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Я неточно выразился, под встраиваемым подразумевал встраиваемый в программу на другом языке, он приобретает специализацию в рамках этой программы. Но суть понятна, спасибо за ответ
Сообщение Добавлено: Сб июл 24, 2021 16:30
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
zma писал(а):
как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы?

Или так, или тестировать на том, для чего он преимущественно разработан. Встраиваемый может что-то измерить, послать по имеющемуся интерфейсу, разобрать принимаемые от ПК команды.
Сообщение Добавлено: Сб июл 24, 2021 14:57
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
5. Реализовать "эхо-сервер" - программу, которая принимает подключения по TCP и отправляет клиенту все принятые от него данные без изменений. Задача "со звёздочкой" - реализовать одновременную работу нескольких клиентов.

Hishnik, как тестировать встраиваемый Форт-движок, в котором соответствующих возможностей (плавучка, GUI, сеть) может не быть? Добавить их и таким образом проверить расширяемость системы?
Сообщение Добавлено: Сб июл 24, 2021 13:07
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Victor__v писал(а):
А так чем СПФ не пример:
Вызов кода из ОС есть, потоки есть, калбеки есть.


Вот как раз СПФ (с более чем 20-летней историей) и не пример в топике озаглавленном "Минимальное демо для НОВЫХ трансляторов". Мало-ли что у кого есть за годы развития... Так что аппеляция к СПФ не засчитана.

Hishnik писал(а):
Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows......

Полностью согласен, ведь в этом же и вся суть: предоствить пользователю, тобишь программисту, максимальную свободу использовать что ему нужно. Если все это есть, то демо просто покажет это.
...Как это ни парадоксально звучит, но писать Гуй под винду используя видвос апи это боль, но тем не менее такя возможность должна быть, а уж программист сам решит вокруг чего сделать враппер. Я просто думаю, что предоставлять уже готовую библиотеку оконных слов (пардон за терминологию, поправьте если что) новая ФС не должна. Новая ФС должна занимать тот самый низкий уровень обеспечивающий взаимодействие с ОС + базовый набор слов.
Сообщение Добавлено: Сб июл 24, 2021 00:24
  Заголовок сообщения:  Re: Минимальное демо для новых трансляторов  Ответить с цитатой
Простая пара LoadLibrary / GetProcAddress, конечно, позволяет подключить что угодно из dll Windows. Однако это очень уж простое решение, сводящее Форт не просто к ассемблеру, а к какому-то ассемблеру даже без элементарных макросов. Это теперь ВСЕ необходимо писать каждый раз, и каждый раз следить, чтобы не ошибиться в обязательных вещах. Я потому и предлагаю посмотреть, как будут реализовываться простые примеры. Это покажет, что неудобно, чего не хватает, за чем придется постоянно залезать в документацию.
Сообщение Добавлено: Чт июл 22, 2021 23:46

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


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