Вверх ↑
Этот топик читают: Гость
Ответов: 868
Рейтинг: 12
#16: 2015-05-08 12:22:02 ЛС | профиль | цитата
Любой, кто посажен в клетку dll, или exe не способен к размножению. В неволе никто не размножается.

А вирусы?
Ну это разумеется шутка

А если чуть серьезнее то скрипты не раз меня выручали ...
Существуют, кстати, и библиотеки с интерпретатором паскаля .
А вот ФОРТ насколько я помню не интерпретатор и не компилятор (то есть понятно что можно заставить его свернуть форт-систему в EXE но это не основное его свойство ) Байт код это не машинный код хотя никто мешает добавить его внутрь БК и исполнять ...
Фокус ФОРТА в том что логика или расчеты реализованные с его помощью совершено "не замечают" платформы на которой работает форт, одно плохо я не нашел "платформонезависимой" библиотеки для создания современных интерфейсов графики итд

Но есть идея что "кубизм" хай-асма может в этом помочь. С его помощью значительно проще абстрагироваться от того что навязывает конкретная платформа .

Зы
Кстати насчет EXE-плагина ..
[offtop] Вчера понадобился мне модуль для сглаживания картинки для программы в Лазарусе ...
Оп в ХайАсме есть нужный кубик !
1 Грянув в код понял что быстро переписать модуль не выйдет...
2 Подумал сделать ХайАсм DLL глянул на реализацию опять же возни много ...
3 Очень тупо но очень быстро сделал консольную тулзу ...
(Быстродействие пока не важно хотя при многократном вызове мелкий консольный модуль будет сидеть в кеше не хуже ДЛЛ.
записываю временную картинку читаю сглаживаю и записываю снова )
ВСЕ !
blurcon001.sha
Для ускорения можно предавать картинку через клипборд, DDE, TCP или еще как ...
(Кстати можно ли передавать указатель на данные в основной программе либо как то выделять "ничью память" как это можно было делать в Досе ? )

Но все неудобства меркнут в сравнении с простотой и надежностью ...
1 Никакой связи с кодом основной программы все возможные ошибки и баги сурово локализованы .
2 EXE-Тулза-плагин может быть написан на чем угодно
3 Какие угодно изменения в плагине можно делать без оглядки на основную программу
4 Отладка отдельного модуля значительно проще...
5 Сама "основная программа" может переставлять собой полностью изменяемую через скрипт-конфиг оболочку или меню...
(извинтите за само повтор но не удержался ...
Скольких проблем я "лишился" после перехода на ехе-модульный стиль не сосчитать ! )
[/offtop]



карма: 1

0
файлы: 1blurcon001.sha [1.9KB] [198]
Ответов: 4568
Рейтинг: 494
#17: 2015-05-08 14:53:00 ЛС | профиль | цитата
AlexKir писал(а):
Существуют, кстати, и библиотеки с интерпретатором паскаля .

Не удивительно http://forum.hiasm.com/forum.html?q=3&t=60882
на работе только этим и пользуюсь, инструмент на 4+
карма: 6

0
Ответов: 1636
Рейтинг: 116
#18: 2015-05-08 19:04:08 ЛС | профиль | цитата
andrestudio
Не удивительно http://forum.hiasm.com/forum.html?q=3&t=60882

Да, хорошая вещь. Часто использую.
AlexKir
А вот ФОРТ насколько я помню не интерпретатор и не компилятор

Это то и другое в одном флаконе + мини операционка.
При парсинге исходного текста программы, в зависимости от того, какие слова встречаются, система может находиться в состоянии компиляции (бинарного кода), либо непосредственного исполнения уже скомпелированного кода.
: Flint2 DO I . LOOP ; делаем определение слова Flint2 (Процедура печати значений цикла со счётчиком, Результатом функции может быть не одно значение, а сколько угодно, как в записи, только объявлять запись не надо и передача через стек, хотя можно и через запись, если что...).
10 0 Flint2 тут же его исполняем.
0 1 2 3 4 5 6 7 8 9
Нарисуй тоже самое на delpi, одной строкой не обойтись!
Есть нюансы, слова могут исполнятся и внутри определения, если это слово определенно, как слово немедленного исполнения. Если его надо всё таки скомпилировать внутрь определения, то перед ним ставится признак компиляции и наоборот, признак исполнения, если это обычное слово и его надо исполнить в режиме компиляции.
Есть много чего, что не дано компиляторам и скриптовым языкам и там, где бинарный код разбит на секции кода и данных. Одни вектора в форте чего стоят.
В ходе исполнения, а не компиляции, в одном месте программы, можно указать, что делать в другом месте, без всяких IF и Case. Т.е. без механизма выбора, т.е. совсем. Как раз не плохой механизм для запуска кода квадратиков. Внутри квадратики лучше делать на Дельфи, или Си.

одно плохо я не нашел "платформонезависимой" библиотеки для создания современных интерфейсов графики итд

Да, с графикой беда. Если есть, то под Win API заточена.
То что сделано для QT мне не нравится, не то, чтобы через ж-у, скажем сделано в лоб, не изящно. А не красивые самолёты, как известно, - не летают.

Сейчас одной задачкой занимаюсь. Приходится просматривать и опробывать много исходников и примеров на разных языках.
И надо это всё безобразие соединять в одну кучу. Если портировать в какой то язык, уйдут годы. У dll излишний код вызова, ничуть не лучше потоков, да и не всегда можно библиотеку сделать.
Пришлось изучать загрузчик PE-файлов, секции РЕ и форматы COFF объектных файлов, чтобы лебедя, рака и щуку в одном направлении погнать.
Впору вирусы писать.
Моё мнение, - квадратики, лучше всего представлять в виде бинарного кода, созданного по определённым правилам (обсуждаемо, - есть варианты, красивее всего, если раствор между кирпичей из форта). Не важно на каком языке был исходник. Тогда и переменные будут доступны из разных кусков. Кстати, переменные из одного квадратика не доступны в другом, если они не передаются через точки, или это глобальная переменная.
карма: 4

0
Гость
Ответов: 17029
Рейтинг: 0
#19: 2015-05-08 19:17:36 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 18:48:20
карма: 0

0
Ответов: 1636
Рейтинг: 116
#20: 2015-05-08 20:07:55 ЛС | профиль | цитата
г. ном
Так точно!

------------ Дoбавленo в 20.07:
AlexKir
(Кстати можно ли передавать указатель на данные в основной программе либо как то выделять "ничью память" как это можно было делать в Досе ? )

Можно указатель, можно по имени.
Я пока делаю маленький текстовый файл с адресами процедур и переменных с их типами + Relocation table, но там, как правило мало чего бывает.
Можно и в памяти такую таблицу делать для соединения модулей. Потом этот файл не нужен.
Мы об одном и том-же говорим, только разными словами. Я не отдельные exe запускаю, а склеиваю их содержательные части в один exe.
карма: 4

0
Гость
Ответов: 17029
Рейтинг: 0
#21: 2016-03-13 14:30:32 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 18:48:21
карма: 0

0
Ответов: 1636
Рейтинг: 116
#22: 2016-03-14 03:44:20 ЛС | профиль | цитата
г. Ном, да, интересно! Спасибо.
Скоро (как получится) надеюсь выложить своё решение по этой тематике (и для русского и английского языков).
Собственно схемку самого движка давно сделал, застрял с компонентом визуализации графов, что не является необходимым условием.
...Для красоты - рюшечки, бантики.
карма: 4

0
Ответов: 5
Рейтинг: 0
#23: 2020-05-27 16:49:51 ЛС | профиль | цитата
Возможно ли актуализировать ссылки в топикe?
Потёртые сообщения от Гость, возможно, были мои.
При поиске по форуму по слову SPF4 находятся ещё сообщения в других топиках.
(но, тоже, ссылки на яндекс диск уже не рабочие от flint2)

P.S. Кстати, один из возможных вариантов размещения ссылок на Webarxive.
Некоторая подборка литературы по Форт на Webarxive

Редактировалось 3 раз(а), последний 2020-05-27 17:00:21
карма: 0

0
Ответов: 1636
Рейтинг: 116
#24: 2020-05-27 23:30:41 ЛС | профиль | цитата
KPG, Честно говоря я давно сделал такую папку на диске: https://yadi.sk/d/y_1Pq0fSAD-hKg
Проблема где размещать ссылки. Они вечно теряются среди тысяч сообщений.
Вот конкретно SPF4 https://yadi.sk/d/qZtgGvicDIlY_A

А для каких целей?
Если не ради любопытства, то могу выложить интересные штуки для SPF4.
Например, как из готовой программы на SPF4 сделать DLL, или загнать её код в HiAsm сохраняя свойства интепритатора - альтернатива LUA. Можно делать слова в виде ассемблерного кода для вставки в код на паскале. Слова могут быть любой вложенности и даже "main".
Я сейчас сильно занят в двух командах. С мужиками делаем два больших проекта, но если очень надо то выберу время и распишу, что да как - темы не простые.
(ссылки ниже специально так сделал потому что отсюда переходы не правильно работают)
Я так понял, что ноги растут отсюда: http://fforum.winglion.ru/viewtopic.php?f=34&t=2696&start=75
Я старого фортера, помнишь Gudleifr-а, вот где встретил: https://gamedev.ru/code/forum/?id=250969&m=5153906#m9

Редактировалось 12 раз(а), последний 2020-05-28 00:51:11
карма: 4

0
Ответов: 5
Рейтинг: 0
#25: 2020-05-28 01:02:03 ЛС | профиль | цитата
Да, интересно, но пока не определился в каком направлении и какой программный код "потерзать" поэтому особо не к спеху.
DLL собирал для Far, но там есть какая то нестабильность её работоспособности.

P.S. На Gamedev у меня тоже есть аккаунт, но читаю только пару тем на форуме, Gudlifer знатно троллит на форуме, если встречаю его сообщения. (даже был поэтому забанен где-то на пол года)
Сейчас вспомнил про монографию Тузова В.А. и возникло подспудное желание сделать на этой базе семантический разбор текста (типа учебной программы с объяснением правил грамматики русского языка)
Есть какой то внутренний интерес к лингвистике.

На Github встретил и одно из решений по морфологическому разбору языка тюрской группы на Форт suddenly is a finite-state morphological analyzer especially effective for agglutinative languages.

Редактировалось 4 раз(а), последний 2020-05-28 01:32:01
карма: 0

0
Ответов: 1636
Рейтинг: 116
#26: 2020-05-28 11:58:34 ЛС | профиль | цитата
KPG писал(а):
DLL собирал для Far, но там есть какая то нестабильность её работоспособности.

А DllMain у тебя правильная?
: (dllinit) ( reserved reason hinstance -- retcode )
2DROP DROP
1 \ 0 to fail
;
VARIABLE _CNT

: PROCESS-INIT-ONCE ( n -- )
_CNT @ 0= IF PROCESS-INIT ELSE DROP THEN _CNT 1+!
;
ALIGN HERE
3 CELLS LIT,
' PROCESS-INIT-ONCE COMPILE,
' (dllinit) COMPILE,
RET,
HEADER DllMain ' _WNDPROC-CODE COMPILE, ,
В архиве https://yadi.sk/d/jiy-jgwReUkpmw машинка для закатывания твоих программ в dll.
script.f для примера экспортирует две функции SPFSCRIPT - она-же SPFSCRIPT-EVALUATE и QWERTY
На всякий случай в архив кинул capi-func.f
Эту папку надо закинуть в SPF и поправить соответственно все пути в script.f.

В архиве https://yadi.sk/d/IAgac8LMzBU53Q disasm1 мой дизассемблер и пример TEST3.f, как получить из слова ассемблерную функцию (EVALUATE) для паскаля.
Для нормальной работы нужен переход с сохранением регистров и стека. Пример привёл в заголовок.txt
В delphi не очень хороший ассемблер и не понимает некоторые директивы, по этому некоторые команды нужно заменять на такое:
@574F64:	JMP     @574F6C 
@574F66: MOV EAX , [EBP +4]
LEA EBP , [EBP +8]
@574F6C: db $FF,$44,$24,$18
db $FF,$4C,$24,$14
@574F74: JMP @574E04
RET
Если чего, то пиши.

KPG писал(а):
Есть какой то внутренний интерес к лингвистике.

Я тоже этим увлекаюсь.
Вот тут некоторые вещи выкладывал: https://gamedev.ru/code/forum/?id=252457
Даже делал генератор фантастических рассказов: https://gamedev.ru/code/forum/?id=252457
и хотел его приспособить к написанию сценариев. Конечно ничего путного не вышло - разные подходы нужны.
Сейчас пилю генератор сценариев и сюжетов по Проппу, Польти, Макки, Кэмпбеллу и цепях Маркова. ))
Есть и побочный эффект: придумал систему проверки орфографии без словарей - стало быть компактную.
Вроде даже покруче работает, чем Word и Яндекс. )) На днях сделаю такой компонент для HiAsm.
P.S. Нет желания поучаствовать:
https://gamedev.ru/projects/forum/?id=251965&page=4&m=5180848#m48 на Конкурсе генераторов контента?

Редактировалось 6 раз(а), последний 2020-05-28 12:21:57
карма: 4

0
Ответов: 5
Рейтинг: 0
#27: 2020-06-01 08:40:32 ЛС | профиль | цитата
flint2 писал(а):
P.S. Нет желания поучаствовать:
https://gamedev.ru/projects/forum/?id=251965&page=4&m=5180848#m48 на Конкурсе генераторов контента?

Думаю, это достаточно сложная тема для понимания.
Чат-боты с ней тоже сопересекаются.

Редактировалось 1 раз(а), последний 2020-06-01 08:45:09
карма: 0

0
Ответов: 1636
Рейтинг: 116
#28: 2020-06-01 12:42:06 ЛС | профиль | цитата
KPG писал(а):
Чат-боты с ней тоже сопересекаются.

Никоим образом!
Чат-боты это даже не пролог-машина с бэктрекингом, а набор хитрых шаблонов.

Редактировалось 1 раз(а), последний 2020-06-01 12:57:23
карма: 4

0
28
Сообщение
...
Прикрепленные файлы
(файлы не залиты)