Написание графического интерфейса для приложения Forth
Мой друг попросил меня написать простой графический интерфейс, содержащий несколько диаграмм и набор общих команд для приложения, которое он написал в Forth. Тем не менее, я практически ничего не знаю о Forth, только то, что вы не можете написать GUI на этом языке (по крайней мере, так он мне сказал).
Теперь мне стало интересно, какие другие языки программирования вы бы предложили, которые хорошо взаимодействуют с Forth и предоставляют библиотеки (например, Java Swing) для программирования интерфейсов?
Примечание: я все еще новичок в программировании, и мой опыт пока ограничен Java, HTML, CSS, JavaScript и некоторыми C#.
5 ответов
Win32Forth поставляется с полным графическим интерфейсом Windows и словами, чтобы использовать все user32.dll
а также gdi32.dll
функции. Он также имеет отличную среду разработки и создатель и редактор оконных форм. Очень легко создавать пользовательские интерфейсы с ним.
MINOS Бернда Пайсана может быть способом написать код GUI на Forth:
https://bernd-paysan.de/theseus/minos-1.html
SP-Forth позволяет разрабатывать приложения с графическим интерфейсом и библиотекой WinLib: http://spf.sourceforge.net/ библиотеки пользовательского интерфейса: http://spf.sourceforge.net/docs/devel.en.html
Я бы предложил XHTML и Co. (т.е. CSS, JavaScript, XSLT, HTTP) создать пользовательский интерфейс (GUI) и взаимодействовать с Forth. В большинстве случаев вы включаете http-сервер в систему Forth. В некоторых особых случаях объект веб-браузера может быть встроен в приложение Forth (например, с помощью COM в Windows). Также в Windows вы можете использовать HTA (HTML Application) - довольно простое решение. HTA можно запустить как из Forth, так и из Forth из HTA.
Другой способ - использовать каркас Qt (некоторые системы Forth могут иметь привязки).
Еще один способ - просто использовать API для базовой системы (например, user32.dll и gdi32.dll в Windows). Некоторые системы Forth содержат GUI-библиотеки, которые основаны на базовом системном API.
Также в качестве пограничного случая пользовательский интерфейс может быть реализован на любом языке как общая библиотека или как отдельный процесс с IPC (межпроцессное взаимодействие) для системы Forth.
В любом случае, обычно GUI создается с использованием специальных языков, библиотек или API. GUI не является предметом Forth как языка программирования общего назначения.
Добавление GUI к программе, написанной на Forth, ничем не отличается от той же проблемы на любом языке. Вы должны либо написать графический код самостоятельно, либо иметь возможность вызывать графические библиотеки. В обоих случаях, например, в MS-Windows, вы должны вызывать функции, присутствующие в DLL, и вам нужна документация по этим функциям. Наиболее серьезные Форты позволяют вызывать DLL. Конечно, библиотеки, которые являются внутренними по отношению к другому языку, менее легко используются, но зачем вам это? Затем вы переходите на этот язык, и вам лучше использовать этот язык с самого начала.
Будучи переводчиком, вы можете легко соединить программу сюжета через трубу, но это улица с односторонним движением. Это может быть жизнеспособным, если в программе печати есть нужное вам взаимодействие (например, увеличение, изменение масштаба, обрезка, печать и т. Д.).