Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн апр 19, 2021 19:14

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Вт фев 02, 2021 22:38 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1397
Благодарил (а): 3 раз.
Поблагодарили: 50 раз.
Victor__v писал(а):
Как вариант можно сделать общее пространство для обоих приложений. Как там эта фигня называется в Винде? Виртуальная диск вроде. Не помню.

Так можно прийти и к Форту в рамках Electron-приложения. (на JS уже сделаны разные Форт)

Electron: разработка настольных приложений с использованием HTML, CSS и JavaScript (и другие статьи на Хабр по Electron)

P.S. Правда, о компактности Форт программ в рамках использования этого фреймворка можно забыть.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Ср фев 03, 2021 20:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
Предлагаю размещать скриншоты созданных шаблонов проектов, чтобы можно было определиться, сколько у нас участников.

Собственно, если участников нет, это тоже ответ ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пт фев 05, 2021 00:27 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 112
Благодарил (а): 13 раз.
Поблагодарили: 7 раз.
Hishnik писал(а):
Предлагаю размещать скриншоты созданных шаблонов проектов, чтобы можно было определиться, сколько у нас участников.

Изображение
Я правильно понял, что мы параллельно пишем различные приложения, управляемые Фортом?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пт фев 05, 2021 01:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
zma писал(а):
Я правильно понял, что мы параллельно пишем различные приложения, управляемые Фортом?

Совершенно верно. Пишем то, что нужно по работе (ну или в качестве хобби), и встраиваем туда Форт-машину для управления.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Сб фев 13, 2021 14:51 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 112
Благодарил (а): 13 раз.
Поблагодарили: 7 раз.
Тема заглохла? А то я почти приложение закончил...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Сб фев 13, 2021 18:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
Первая часть оформлена, наступает время второй. Сейчас как раз жду обкатки презентации на мировом сообществе :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пт фев 26, 2021 15:39 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 112
Благодарил (а): 13 раз.
Поблагодарили: 7 раз.
Выложу свои результаты:
Приложение для фильтрации записей сетевого трафика в формате PCAP (поддерживается большинством распространённых программ-снифферов в т.ч. Wireshark и tcpdump).
Приложение применяется для анализа сетевого трафика локальной сети с целью обнаружения подозрительного трафика или сбора статистики, а также для сбора информации о сети в ходе подготовки пентеста.
Приложение работает под управлением ОС семейства Windows и имеет графический интерфейс пользователя.
Обработка осуществляется в отложенном режиме - на вход программе подаётся каталог с заранее записанными PCAP-файлами. Результатом работы программы является выходной каталог, содержащий PCAP-файлы с пакетами из входных файлов, удовлетворяющими выбранным фильтрам пактов - по одному выходному файлу на фильтр. Фильтры пакетов задаются в виде сценария на языке Форт и могут выполнять анализ пакетов на основе алгоритмов произвольной сложности. Активация фильтров для конкретного сеанса работы осуществляется элементами графического интерфейса программы.
Пример описания фильтров:
Код:
FILTER HTTP     TCP  80 PORT  8080 PORT  OR  AND  ;
FILTER TELNET   TCP  23 PORT  AND  ;

Кроме фильтрации пакетов программа позволяет собирать статистическую информацию по алгоритмам, также задаваемым в виде сценариев на Форте. Итоговая информация выводится в HTML-файл в выходном каталоге.
Пример описания статистики:
Код:
STATISTICS IP-ACTIVITY
  WHEN IP COUNT-ADDRESSES   \ При сработке фильтра IP вызвать слово COUNT-ADDRESSES для текущего пакета.
  FINALLY SHOW-COUNTS       \ После обработки всех пакетов сформировать отчёт словом SHOW-COUNTS.


Детали реализации:
- основной язык реализации программы - ANSI C99
- Форт-система разработана специально для этой программы
- косвенный шитый код
- безопасная работа с памятью (при ошибке в сценарии на Форте программа не падает, а выводит информацию о типе и месте возникновения ошибки)
- раздельная память кода и данных

Весь исходник выкладывать не вижу смысла. Если есть какие-то вопросы, могу выложить участки кода в части, касающейся Форта и его интеграции в приложение.

Интерфейс программы:
Изображение
Вывод статистики:
Изображение
Сообщение об ошибке
Изображение



За это сообщение автора zma поблагодарили - 2: Hishnik, Total Vacuum
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Сб фев 27, 2021 02:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
Прелесть какая! Вот как раз и пример того, что именно, с какой сложностью и в какие сроки можно делать. Причем и Форт не притянут за уши, а применен в одном из наиболее сильных качеств. Альтернативой был бы какой-нибудь файл с настройками в виде ключей или просто списка параметров, а это прямой путь к усложнению структуры настроек по мере развития программы. С Фортом же в качестве DSL жизнь упрощается.

Кстати, сколько получилось строк в форт-машине?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Сб фев 27, 2021 12:37 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 112
Благодарил (а): 13 раз.
Поблагодарили: 7 раз.
Hishnik писал(а):
Кстати, сколько получилось строк в форт-машине?

1300 строк Си на машину, интерпретатор и общие примитивы, ещё почти 200 - на примитивы, специфичные для приложения. Всего в системе получилось чуть меньше 50 слов. Был приятно удивлён, когда понял, что бóльшая часть слов, которые обычно есть в Форт-системах, для решения данной конкретной задачи не нужна, и их можно не реализовывать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пн мар 01, 2021 00:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
Спасибо, показательные цифры. Движок обычно так и получался - около 50 слов и 1000 строк кода, дальше идет развитие в сторону проекта. Опять же характерно, что много разговоров вокруг важности иметь "правильный" Форт - попросту информационный шум, потому что на практике написать все несложно, и написанное таким образом становится полезным и вполне сопровождаемым для разработчика.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пн мар 01, 2021 11:33 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1397
Благодарил (а): 3 раз.
Поблагодарили: 50 раз.
zma
Если не реализовывались какие то Слова Форта, то это из-за того, что уже был прототип проекта или в процессе реализации системы делался и проект задачи параллельно с ним? (или что то ещё?)
Какие Слова или Дизайн Форт-системы были упрощены? (типа хватило базиса Forth-83 или варинта 94года)?
Какой базис Форт-слов остался в проекте?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пн мар 01, 2021 15:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 144
Откуда: Москва
Благодарил (а): 22 раз.
Поблагодарили: 3 раз.
zma, симпатичное решение получилось...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пн мар 01, 2021 18:24 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 112
Благодарил (а): 13 раз.
Поблагодарили: 7 раз.
KPG писал(а):
zma
Если не реализовывались какие то Слова Форта, то это из-за того, что уже был прототип проекта или в процессе реализации системы делался и проект задачи параллельно с ним? (или что то ещё?)

Скорее, в процесса решения задачи параллельно реализовывалась система. Слова добавлялись по необходимости.
KPG писал(а):
Какие Слова или Дизайн Форт-системы были упрощены? (типа хватило базиса Forth-83 или варинта 94года)?
Какой базис Форт-слов остался в проекте?

Исключена работа с реальными адресами. Словарь только один, и он реализован в виде динамического массива сишных структур, а не в виде связного списка традиционных словарных статей. Собственно в шитый код компилируются индексы этого массива. Убраны все слова для доступа к внутреннему устройству Форт-системы, в рамках данной задачи они и не нужны.
На какой-либо стандарт не опирался. В целом, получилось, что не упрощал какую-либо из существующих систем, а делал с нуля только то, что нужно здесь и сейчас.
Из общеупотребительных слов применены:
Код:
EXIT : ; = LIT CONSTANT + ( AND OR NOT BRANCH ?BRANCH IF ELSE THEN CREATE
VARIABLE @ ! +! . INCLUDE HERE , CELL+ CELLS BEGIN WHILE REPEAT DUP DROP SWAP
NIP 2DUP ?DUP ." CR

Очевидно, что при дальнейшем использовании придётся расширять словарь, но в текущем виде это уже работает.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Вс мар 21, 2021 19:54 
Не в сети

Зарегистрирован: Сб фев 27, 2016 23:11
Сообщения: 8
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Дружно повторяем эти шаги, получая N приложений на разных языках. Кому что нравится и кто каким приложением хочет управлять.
будем брать каркас приложения, и все, что настраивается, настраивать из Форта.
:)

как я понял задачи такие:
написать на ЯВУ ФОРТ, затем данные наработки вставляешь в другую программу и далее большая часть программы делается "на форте" . Компилировать все вместе на изначальном ЯВУ компиляторе. В итоге получаем оптимизацию от ЯВУ, взаимодействие с ОС от него же, но также чать возможностей о форта?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт на ЯВУ
СообщениеДобавлено: Пн мар 22, 2021 01:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7197
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
disatarial писал(а):
написать на ЯВУ ФОРТ, затем данные наработки вставляешь в другую программу и далее большая часть программы делается "на форте" .

Да, совершенно верно.
disatarial писал(а):
Компилировать все вместе на изначальном ЯВУ компиляторе. В итоге получаем оптимизацию от ЯВУ, взаимодействие с ОС от него же, но также чать возможностей о форта?

Так компилировать в идеале необходимо один раз, дальше вся работа будет происходить с встроенным Фортом. Понятно, что идеал недостижим, но общая идея в том, чтобы один раз скомпилированное приложение на ЯВУ превратилось в управляемое только Фортом на протяжении длительного времени. Докомпиляция, конечно, будет иметь место, но на практике с течением времени соотношение между запусками Форта и перекомпиляцией программы на ЯВУ постоянно увеличивается.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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