Forth https://fforum.winglion.ru/ |
|
Cation Forth https://fforum.winglion.ru/viewtopic.php?f=23&t=3303 |
Страница 1 из 1 |
Автор: | Hishnik [ Пн янв 11, 2021 02:23 ] |
Заголовок сообщения: | 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. К ним и строится интерфейс. |
Автор: | KPG [ Вт янв 12, 2021 03:45 ] |
Заголовок сообщения: | 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 |
Автор: | Hishnik [ Вт янв 12, 2021 11:40 ] |
Заголовок сообщения: | Re: Cation Forth |
Интересно, но SynEdit пока вполне подходит. Впрочем, поскольку там запускаются любые виджеты, никаких проблем с еще одним редактором нет. P.S. Только это не компонент для сборки в проекте с Lazarus, а отдельный редактор, написанный на Lazarus. Это не подходит. |
Автор: | Hishnik [ Сб янв 16, 2021 04:06 ] |
Заголовок сообщения: | 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 |
Автор: | Hishnik [ Вс янв 17, 2021 21:36 ] |
Заголовок сообщения: | 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 |
Автор: | Hishnik [ Ср фев 03, 2021 23:19 ] | ||
Заголовок сообщения: | Re: Cation Forth | ||
Скриншот
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |