Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 23:55

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Cation Forth
Автор Сообщение
  Заголовок сообщения:  Re: Cation Forth  Ответить с цитатой
Скриншот


Вложения:
chart.png
chart.png [ 139.91 Кб | Просмотров: 29985 ]
Сообщение Добавлено: Ср фев 03, 2021 23:19
  Заголовок сообщения:  Re: Cation Forth  Ответить с цитатой
Простое мультимедиа на базе компонента MPlayer.

Код:
MPLAYER.SHOW
0 50 1000 800 MPLAYER.RECT

0 BUTTON.SHOW
0 900 200 50 0 BUTTON.RECT
" Play" 0 BUTTON.CAPTION

1 BUTTON.SHOW
250 900 200 50 1 BUTTON.RECT
" Stop" 1 BUTTON.CAPTION

2 BUTTON.SHOW
500 900 200 50 2 BUTTON.RECT
" File" 2 BUTTON.CAPTION

CREATE STR 256 ALLOT

" MPLAYER.PLAY" 0 BUTTON.ACTION
" MPLAYER.STOP" 1 BUTTON.ACTION
" STR OPENDIALOG.FILENAME STR MPLAYER.FILENAME" 2 BUTTON.ACTION
Сообщение Добавлено: Вс янв 17, 2021 21:36
  Заголовок сообщения:  Re: Cation Forth  Ответить с цитатой
Первый из реализованных примеров из RosettaCode - суммирование двух чисел. Приложение с GUI.

Код:
0 LABEL.SHOW
20 40 100 40 0 LABEL.RECT
" A" 0 LABEL.TEXT

1 LABEL.SHOW
180 40 100 40 1 LABEL.RECT
" B" 1 LABEL.TEXT

2 LABEL.SHOW
300 40 100 40 2 LABEL.RECT
" 0" 2 LABEL.TEXT

0 TEXTEDIT.SHOW
0 80 100 40 0 TEXTEDIT.RECT

1 TEXTEDIT.SHOW
120 80 100 40 1 TEXTEDIT.RECT

0 BUTTON.SHOW
320 80 100 50 0 BUTTON.RECT
" A+B" 0 BUTTON.TEXT

" 0 TEXTEDIT.GETINTEGER 1 TEXTEDIT.GETINTEGER + 2 LABEL.INTEGER" 0 BUTTON.ACTION
Сообщение Добавлено: Сб янв 16, 2021 04:06
  Заголовок сообщения:  Re: Cation Forth  Ответить с цитатой
Интересно, но SynEdit пока вполне подходит. Впрочем, поскольку там запускаются любые виджеты, никаких проблем с еще одним редактором нет.

P.S. Только это не компонент для сборки в проекте с Lazarus, а отдельный редактор, написанный на Lazarus. Это не подходит.
Сообщение Добавлено: Вт янв 12, 2021 11:40
  Заголовок сообщения:  Re: Cation Forth  Ответить с цитатой
А, какой предполагается использовать редактор-IDE?

P.S. Возможно интересный проект https://github.com/Alexey-T/CudaText
Lazarus 2.0+, Free Pascal 3.0.4+.

http://www.uvviewsoft.com/cudatext/
https://wiki.freepascal.org/CudaText
Сообщение Добавлено: Вт янв 12, 2021 03:45
  Заголовок сообщения:  Cation Forth  Ответить с цитатой
Cation Forth - продолжение проекта "софт-Форта", т.е. Форта, написанного на ЯВУ. Почему такое название? Потому что Quark уже был, а "весомые" частицы состоят из кварков. Первая оболочка для Кварка называлась Proton, "пустая" оболочка на Qt идет под именем neutron, ну вот нашелся еще cation. К тому же картинка миленькая :)

Изображение

Исходный язык - Object Pascal + IDE Lazarus. Идея подобных Фортов - управление ресурсами базового языка, т.е. приложение на Lazarus исходно пустое, и управляется динамически сообщениями из Форт-машины. В Lazarus есть два приятных компонента - TChart и SynEdit, можно удобно строить графики и заниматься разработкой embedded-приложений в неплохом компоненте редактора с подсветкой синтаксиса. Управляется все очередью сообщений из Форта, поэтому у кода на Форте нет прямого доступа к ресурсам приложения, что позволяет дополнительно контролировать параметры и заодно при необходимости осуществлять синхронизацию.
Примеры кода берутся из neutron:
Код:
0 BUTTON.SHOW
100 100 75 25 0 BUTTON.RECT
" Ok" 0 BUTTON.CAPTION

ВМ Форта - объект, которых в системе не один. Поэтому в процессе работы можно запускать много ВМ, передавая каждой свой код и свои строки для интерпретации. Это призвано не столько повысить производительность на многопоточных процессорах, сколько обеспечить определенное удобство для программиста при запуске расчетов, обмена с подключенным embedded-устройством и прочих операциях.

Производительность - не самая сильная сторона Форта. Поэтому и не надо гнаться за тем, что при лучшем раскладе будет неидеальным. Производительность - это assemebler, GPU, FPGA. К ним и строится интерфейс.
Сообщение Добавлено: Пн янв 11, 2021 02:23

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


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