gudleifr писал(а):
Еще один пример из жизни.
Пойдя на поводу у классиков, призывавших, если нет явных противопоказаний, хранить даные в текстовом формате, мы, вместо одного, получаем целых три типа операций над этими самыми данными:
1) ОБЩИЕ: преобразуем текст в структуры данных, преобразуем, преобразуем структуры обратно в текст;
2) ПОСЛЕДОВАТЕЛЬНЫЕ: прогоняем текст через какой-либо фильтр;
3) ЧАСТНЫЕ: вырезаем из текста нужный фрагмент, правим записываем обратно.
Такой подход изначально ориентирован на работу в 'nix-ах.
С Форт тоже это и также делается пока задача не имеет отработанного "бизнес" решения.
gudleifr писал(а):
Там присутствуют a) мощные скриптовые языки; b) файловый способ организации взаимодействия процессов; c) разнообразные фильтры...
FORTH как бы к такой организации не готов. Кроме разговоров о FORTH-OS, никто всерьез не рассматривает его скриптовое применение.
"Скриптую" на Форт и "скриптовать" буду вне зависимости от данного мнения
gudleifr писал(а):
Даже сам Мур все больше говорит об обязательной целевой компиляции проекта.
Пока нет готовых отработавших алгоритмов решения, то и от целевой компиляции можно немного отвлечься,
В пользу инкрементального цикла отработки нужного решения.
gudleifr писал(а):
Не понимает FORTH и такой сущности как "файл" (даже в ограниченном значение - "данные на диске"), заставляя программиста пользоваться для работы с ними уродливыми "библиотеками".
А стандартные слова Форт системы недостаточны? И к тому же по факту переопределение потоковых операций существует во всех форт системах (через определённые векторные слова и стандартно можно узнать откуда идёт поток данных с консоли или файла)
gudleifr писал(а):
Даже наиболее естественное текстовое FORTH-представление данных - предваряемых командами, их читающими, дает нам только возможность ОБЩЕЙ обработки.
Достаточную для решения большого круга задач.
gudleifr писал(а):
Поэтому чистый FORTH здесь не особо применим.
Не применяйте, если уверены в правоте своих выводов!
gudleifr писал(а):
Первоначальное решение состояло из оконного скрипта на Tcl/Tk с вызовом Perl-скриптов (одного большого, обеспечивающего выполнение ОБЩИХ операций, и кучи маленьких - на одну операцию.
ЧАСТНЫЕ операции в большинстве случаев выполнялись вручную - в обычном текстовом редакторе
Замена Форта на Тсl/Tk не изменяет описанный процесс.
gudleifr писал(а):
Проблемно-ориентированных языков было целых два - язык разметки текстового файла и язык операций главного Perl-скрипта.
Маленькие Perl-скрипты так лихо пользовались последним, что я даже попытался записывать скрипты на нем в текст самих данных.
По сути, эти два языка являлись двумя сторонами одной монеты: "язык разметки" обеспечивал конструирование объектов, "язык команд" - операции над этими объектами.
Да хоть сто, если они "появились" в процессе решения задачи.
gudleifr писал(а):
Рассмотрим эти языки немного поподробнее.
...
Разве списки не применяются в Форт?
gudleifr писал(а):
Здесь мы можем опять забыть о предметной области и вернуться к разговорам о языке.
Построить непротиворечивый и полный набор операций работы над множествами (хотя бы в тех пределах, что позволяет теорема Геделя)?
Моя практика применения этих структур этому противоречит: в разных вариантах применения требовались разные наборы операций, иногда с лихвой покрываемые текущим "универсальным ОБЩИМ управлятором", иногда же требующие немедленного его переписывания.
Нормальная практика программирования решения задачи.
gudleifr писал(а):
Т.о. естественным видится FORTH-решение: написание простейших слов, что-то умеющих делать с деревом, и попытка их комбинирования по месту, чтобы решить текущую проблему.
"Комбинирование" слов и есть способ решения задач на Форте. А с "кем" и "чем" их комбинировать это уже сам программист решает.
gudleifr писал(а):
Но, наличие трех видов операций требует наличия у FORTH-системы возможностей "языка управления заданиями" (или, хотя бы, его OS-ориентированности), а желательность как можно более широкого использования ПОСЛЕДОВАТЕЛЬНЫХ и ЧАСТНЫХ операций (как наиболее простых) требует умения FORTH работать не столько со строками, сколько с последовательными файлами, т.е. опять (OS- и даже POSIX-ориентированности).
Снабдить FORTH C-подобными библиотеками? Проще уж FORTH на C написать.
Форт написанный на С останется тем же Форт (см. реализации Форт систем на С) и ОS-ориентированность это какая то общая "абстрактность" не присущая Форту?
gudleifr писал(а):
Т.о. вопрос о FORTH-OS заменяется другим. Для возможности постепенного решения задачи снизу-вверх нужен не FORTH-компилятор, умеющий все, а FORTH-shell, позволяющий разговаривать с OS языком ПОТОКОВ-СТЕКОВ...
Форт и так это умеет через создания "обёрток" к существующим ОС. А то что ОС может не "разговаривать" c Форт в терминах ПОТОКОВ-СТЕКОВ, то это "проблема" конкретной ОС.