На что способен и на что должен быть способен FORTH?

Перейти вниз

На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Пт Дек 01, 2017 12:54 pm

Свой путь земной пройдя до половины, я оказался в сумрачном лесу... /Сами знаете, кто/

Старые размышлизмы.
Точнее, старые вопросы, на некоторые из которых я смог ответить.

Вопрос о том, как на минимальном "железе" и с минимумом затрат построить FORTH-систему, рассмотрен на данный момент очень широко и глубоко...

Стоп, стоп...
Это я десять лет назад мог написать "вопрос рассмотрен"... Даже те подробные инструкции и примеры, которые я выложил, теперь никому не помогают. Для машины A решаем задачу P...

Современный программист не способен как-то очертить контуры этой самой своей "машины A". Он мыслит о ней в рамках возможности запуска отдельных компиляторов/интерпретаторов, не понимая, как и с чем они работают, и, тем более, как и с чем будет работать скомпилированная программа.

Проблемы и с "целью писания P". Сформулировать ее в инженерных терминах современный программист тоже не способен. В лучшем случае он ставит во главу угла "оптимизацию", причем "опримизацию всего и разом" - по обеспечению кроссплатформенности, быстродействию и компактности... В худшем, цель просто продать результат.

Наверное, таким же "фортостроителям" просто не надо мешать. Пусть попробуют. Лет через пять, "когда все оригинальные попытки окончаться провалом, попробуют почитать инструкцию":
ТЕМА #15, АБЗАЦ #386
ТЕМА #30
ТЕМА #43
ТЕМА #29
***

А, вот, что делать, если аппаратно-программный комплекс, на котором мы будем реализовывать нашу FORTH-систему, позволяет расширять ее практически до полного исчерпания нашей фантазии? Ограничиться обеспечением FORTH-интерфейсов ко всем доступным в системе ресурсам, чем и предлагают заняться большинство FORTH-писателей? Даже на этом пути возникают проблемы. Как я показал в своей попытке написать сносный Win-интерфейс, попытка следовать парадигмам не-FORTH-систем в ущерб философии FORTH - дело очень муторное и бесполезное (в смысле - любой Delphi-программист может резонно спросить: "А зачем было выпендриваться?"). Кому нужна FORTH-система, в которой нельзя воспользоваться его преимуществами?

Этот вопрос я позднее переформулировал: "Что делать с "возможностями" и "интерфейсами"?"
1. Создавать лексиконы наподобие Си-библиотек?
Появляется новое "устройство" - пишем новый лексикон (особый словарь), и все. Например, определяем слова ввода-вывода в порты, опроса семафоров и т.д. Комбинируем их в высокоуровневые слова типа "вкл/выкл". Плюс - можно подключить что угодно. Минус - теряется преимущество FORTH-подхода, программа становится практически неотличимой от написанной на Си.
2. Прятать внутрь интерпретатора? Закапываем всю машинерию вглубь интерпретатора. Пользователь даже не знает, что FORTH где-то что-то химичит. Например, так обеспечивается работа с FORTH-консолью в графических ОС и реализуется классическая многопользовательность путем переключения пользовательских областей. Плюс - FORTH-программы просты и стандартны. Минус - теряется способность программиста получить легкий доступ к внутренностям системы.
3. Усложнять интерпретатор? Расширяем классический интерпретатор не свойственными ему инструментами. Дополнительные Циклы Управления, включение новых хранилищ данных, процедур их итерпретации... Например, целевая компиляция, заменяющая стандартную интерпретацию реакцией на определенный ввод пользователя. Плюс - идеально подходит для изготовления нужного проблемно-ориентированного языка. Минус - FORTH перестает быть стандартным.
4. Использовать более одного интерпретатора? Объединить несколько FORTH-систем вместе. Например, у меня в FOBOS есть две форт-системы, объединенные общим словарем: одна заполняет словарь необходимыми для примера определениями, другая обрабатывает Win-сообщения примера. Плюс - каждая из систем остается простой. Минус - взаимопроникновение нескольких FORTH-систем совершенно не проработано.

Я выбрал четвертый вариант. По сути, это продолжение изначальной FORTH-идеи. От простых слов, соединенных простым способом перейти к простым машинам, опять просто соединенным.


Последний раз редактировалось: Gudleifr (Ср Дек 06, 2017 12:08 pm), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Вс Дек 03, 2017 2:46 pm

Другой FORTH-проблемой является проблема стандартизации...

Все оказалось не просто, а очень просто. Нет никакой проблемы стандартизации. Есть проблема разбиения FORTH-системы на отдельные FORTH-машины.
После того, как я тупо перечислил составные части простейшего интерпретатора и пришел к мысли, что для решения сложных задач эти интерпретаторы можно просто соединять между собой, стандартизировать что-то, что лежит "между" стало бессмысленно...


Последний раз редактировалось: Gudleifr (Чт Янв 18, 2018 11:34 pm), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Вс Дек 03, 2017 2:48 pm

Можно ли превратить FORTH-программу в полностью литературный текст?

Я до сих пор пытаюсь это сделать. Но тут FORTH оказывается чересчур хорошим средством. Проблема перестает быть проблемой языка программирования и становится проблемой умения литературно писать.
Слишком много "явно очевидного на момент писания программы" я опускаю, как само собой разумеющееся. Когда я потом читаю свои тексты, я, действительно, эти лакуны без труда восстанавливаю, но для других это так же трудно, как и читать другие мои "маловысокохудожественные" излияния. Мой "поток мыслей" одинаково кажется непонятным моим оппонентам будь он изложен на FORTH или на обычном русском языке.

Чисто технически, добавление в FORTH-транслятор дополнительных средств, распознающих слова, невзирая на склонение и знаки препинания (и честно рассчитывающих их роль в предложении), с одной стороны, кажется ненужным усложнением (вызывая применение механизмов из обычных контекстно-зависимых компиляторов, от которых FORTH так удачно отказался). С другой стороны, необходимость в таких механизмах становится явной, когда FORTH ставится задачи интерпретации других потоков текстовых данных - формул, регулярных выражений, записей баз данных (жестко форматированных или с разделителями).
Более того, по мере усложнения FORTH-системы, может возникнуть и потребность общения программы с человеком на естественном языке.

Переход к системе связанных FORTH-машин делает возможным любые варианты - читайте хоть по слогам, хоть на слух воспринимайте...

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

Вместо "саморазвертывания сложной системы" пишите "добавление новых систем", и будет вам счастье! И не надо ничего закладывать.


Последний раз редактировалось: Gudleifr (Вс Дек 03, 2017 3:14 pm), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Вс Дек 03, 2017 2:52 pm

Какова мощность множества слов первичного FORTH-словаря, которым мы будем пользоваться в больших проектах?

Никакая.

Ведь, если я переопределю в своем модуле слова интерпретации, компиляции и размещения стеков, то не смогу пользоваться практически никакими словами из начального набора - они останутся в некотором "параллельном мире", доступ к которому будет сильно ограничен.

И это хорошо! Общение FORTH-машин "через СЛОВАРЬ" - это только частный случай.

Какие FORTH-ценности должны остаться незыблемыми при разрастании системы?

Тут, главное, понять, что ПОТОК, СТЕК, СЛОВАРЬ и ЗНАЧЕНИЕ не являются FORTH-ценностями. Это только сиюминутные подробности реализации одной из машин (или интерфейса между двумя машинами).
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Вс Дек 03, 2017 7:26 pm

Ну, все мои тогдашние измышлизмы по поводу внедрения в FORTH парадигм других языков, ООП всякого... устарели точно. А вот размышления о "чем-то большем" пусть еще повисят...
***

МОЗГИ! /ИЗ ФИЛЬМА ПРО ЖИВЫХ МЕРТВЕЦОВ/

Правомерно ли сравнение программы с организмом? Как ни крути, а программы пишуться только для достижения одной из двух целей:
1. облегчения человеку какой-либо работы (текстовые и графические редакторы, визуальные интерфейсы с заумными железяками...) и
2. замены человека в какой-либо сфере деятельности (управление этими самыми железяками, поиск информации, партнерство в играх...).

Причем, первая задача обычно является подзадачей более сложной - второй.
Значит, ожидание от умных программ какой-то человекообразности имеет обоснование. Как устроен человек?


Из книги "Алгориты разума" Н.М.Амосова:
На рисунке показана схема интеллекта уровня человека и его отношения к внешнему миру, к среде. На схеме она представлена четырьмя составляющими. Это прежде всего природа, понимаемая во всей совокупности ее факторов. Затем - техника, под которой подразумеваются орудия воздействия на природу. Еще выше внешние модели - это наука. Наконец, наверху - общество. Новая схема отличается от предыдущей тем, что рецепторы получают не только энергию, косвенно сигнализирующую о внешней среде, но и прямую информацию в виде сигналов - от общества и внешних моделей. Между средой и рецепторами Рц встроены технические устройства ТУ1. Это всевозможные приборы, предназначенные для усиления внешних воздействий и превращения невоспринимаемых оргаорганами чувств видов энергии в воспринимаемые. Точно так же эффекторы Э могут быть вооружены инструментами ТУ2, значительно увеличивающими мощность их воздействий. От эффекторов идут стрелки, показывающие движение не только энергии, но и информации - сигналов, направленных в высшие системы, например в общество. Рецепторы имеют органы настройки Н, а эффекторы - свои собственные рецепторы Рцэ, обеспечивающие сигналы обратной связи. Рецепторы есть и в теле (Рцт). Моделирующая установка МУ ("Мозг") содержит модели внешней среды, тела, а также модели собственных программ и моделей действий МД. Наиболее разнообразны критерии Кр: в них представлены не только значимые качества тела, но и всех отделов внешней среды и, что самое интересное,- некоторые качества работы МУ ("мозга").

Опять натяжка? Природа - операционная система и новые драйвера, техника - драйвера, написанные нами, общество - другие программы? Смешно. Но ведь, практически все огрганы за исключением МУ и Кр уже неоднократно программировались большинством из читающих этих строки. (Более того, пользуясь этой схемой легко отделить (1) от (2).)
И если Ч.Мур - изобретатель FORTH - подчеркивал, что программирование FORTH-стиле соответствует его мышлению, то почему сложная FORTH-система должна быть способна на меньшее?
***

Как кибернетик решает задачу? "Переместить предмет X из пункта A в пункт B". Элементарно! Строим в пункте A машину, максимум энтропии которой достигается в пункте B, прицепляем к ней X, включаем, ждем...
Итак, хитрый кибернетик пользуется 2-ым началом термодинамики. Также им пользуются и все живые аппаратно-программные комплексы: информационное возбуждение нейронных сетей ограничивается их энергетическим затуханием, позволяющим обойтись без дополнительных логических петель.
В нашем программировании ничего подобного не наблюдается (за редким случаем некоторых особо удачных алгоритмов распределения ресурсов). Все наши вычисления строго информационны.
Это первое ограничение.
Второе ограничение связано с нашим нежеланием использовать в программировании вероятностные методы. Нет, конечно, анализ недетерминированных автоматов и алгоритмов иногда оказывается проще, да и хочется иногда написать "выведи сообщение где-нибудь на видном месте", но уж больно велики накладные расходы (пока нет квантовых компьютеров).
Третье ограничение - здравое понимание FORTH-программистами "бритвы Оккама": зачем делать обработчики сигналов сложнее, чем сами сигналы?

Зачем вообще мозгу нужны какие-то там критерии?

во-первых, для выбора одной из возможных моделей действий (МД) "при прочих равных";
во-вторых, для интегральной оценки успешности функционирования, которая может привести как к прекращению выполнения действия, так и к возврату к одному из узлов рекурсивного перебора.

В наиболее размытом виде:
- слово берется оттуда, откуда по мнению системы поступает наиболее важная информация (настройка рецепторов);
- слово имеет ряд контекстнозависимых признаков (сведения об источнике, логических, временнЫх и пространственных связях с ранее введенными словами);
- слова могут группироваться с выработкой обобщающего слова (понятия, абстракции);
- слово может не иметь точного совпадения со словами словаря;
- слов, подлежащих исполнению/компиляции может быть несколько (отложенная активность);
- вариантов исполнения слова может быть несколько (выбор по критерию).
***

А в абсолюте, наверное, в "Амосовской FORTH-машине":
слово - модель;
СТЕК - кратковременная память, СЛОВАРЬ - долговременная;
ВЫПОЛНИТЬ - оставить возбужденным в СТЕКЕ, в случае МД - реальное действие;
КОМПИЛИРОВАТЬ - связать в СЛОВАРЕ одновременно возбужденные модели;
создание новых словарных статей - возбуждение случайно возбужденных запасных моделей (и связывание с ними).


Последний раз редактировалось: Gudleifr (Пн Дек 04, 2017 12:31 am), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Пн Дек 04, 2017 12:17 am

Просто перечисление интеллектуальных возможностей FORTH-машин уже наводит на мысль о добавлении в нее некоторых новых узлов (например, арбитров, или, по Амосову, СУТ - систему усиления/торможения).
Чтобы еще немного усугубить:

СОЛЬЕМСЯ В ЭКСТАЗЕ! /ПИТКИН В ТЫЛУ ВРАГА/


Из книги "Мозг фирмы" Стаффорда Бира. Слева - человек, справа - корпорация.

Бир утверждает, что всякая уважающая себя автономная самоуправляемая система состоит из пяти уровней.

1. Первый уровень - отдельные органы (рецепторы и эффекторы), которые обеспечивают функциональность системы. Нарисованы в кружочках. Это единственные органы системы, которые обладают некоторой автономией. Автономия управляющих органов на других уровнях - зло, которое надо искоренять.
2. Второй уровень - вертикально (по важности для организма, циклу производства корпорации) организованная цепь, связывающая органы в единую сеть.
3. Третий уровень - орган равновесия, следящий за балансом систем органов. Сюда, кроме отчетности, приходящей по вертикальному каналу со второго уровня, сходится "парасимпатическая" информация, свидетельствующая об общем благополучии систем первого уровня (Бир называет ее алгедонической). Так же и управление осуществляется как по вертикали - приказы "что делать", так и в обход системы два - указания "как напрягаться". Квадратик, образуемый пересечением линий в "Центре регулирования информации", символизирует гомеостат - кибернетическую абстракцию сверхустойчивой системы (которая до последнего пытается остаться в текущем состоянии, поддерживая равновесие параметров, по, при слишком сильном возмущении, переходит в соседнее состояние и пытается достичь равновесия в нем).
4. Четвертый уровень - главный фильтр информации, передаваемой на пятый уровень, а, заодно, и средство поддержания коммуникации с внешним миром. Здесь надо отметить, что главным требованием в кибернетическом управлении является разнообразие (в кибернетическом смысле) управляющей системы большее, чем управляемой. Так что управляющие системы всех уровней занимаются фильтрацией информации, отправвляя "наверх" только самую необходимую.
5. Пятый уровень - собственно "думатель". Сложная система нейронов (людей), принимающих решения (далее - по Амосову, с его М-моделями). Основным свойством подобной организации управления Бир считает рекурсивность, т.е. рассматриваемая пятиуровневая автономная система служит в качестве системы первого уровня другой - ее охватывающей (работники - фирмы - корпорации - государства - мировое сообщество).

А как выглядят на этом фоне современные программы? Возьмем самый распространенный тип - автоматизированное рабочее место (АРМ). Т.е. программа, превращающая компьютер в некий пульт управления чем-либо (например, в интеллектуальную пишущую машинку - в случае MS Word). "По Эшби и Биру" такая программа выглядит как довесок к человеку. Т.е. оператор - "мозг" системы - уровень 5. Соответственно, оконный интерфейс - уровень 4.
В большинстве же реально существующих программ оператор рассматривается в качестве "внешней среды", формы оконного интерфейса практически полностью покрывают уровень 1, а редкие "смысловые" вкрапления и управляющие структуры образуют уровень 2. При таком подходе, казалось бы, огромное значение приобретает поддержание системы в равновесии (из которого его пытается вывести пользователь своими командами), но уровень 3, этим занимающийся, обычно отсутствует. Уровней 4 и 5 тоже не наблюдается. И не может наблюдаться в принципе, поскольку современный подход к "АСУчиванию" никаким образом не предусматривает потерю информации при передаче ее "наверх". Поэтому мы и говорим сейчас обычно не о кибернетике, а об информатике - т.е. максимально возможном накоплении информации, с развитыми способами ее поиска, сортировки, переформатирования, визуализации, передачи, и очень ограниченными - семантической обработки и использовании в управлении.
***

Каким образом соединять FORTH-машины для получения таких цепочек?


Последний раз редактировалось: Gudleifr (Пн Дек 04, 2017 12:33 am), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Пн Дек 04, 2017 12:22 am

КАК КОММЕНТИРОВАТЬ КОММЕНТАРИИ?

Если, с точки зрения декомпозиции, т.е. разбиения сложной программы на обозримые фрагменты, FORTH оставлет далеко за флагом все остальные языки, то проблема управления проектированием программ проработана явно недостаточно.
Как, вообще, может помочь компьютер программисту в написании программ? Т.к. компьютер не умеет думать, то, наверное, он должен уметь сохранять результаты раздумий программиста (даже в незаконченной форме) и обеспечивать удобный способов извлечения этих данных для доведения до ума и вставки в проект. База знаний в чистом виде. Языки высокого уровня на это замахнулись, обрастая со временем бешеным количеством библиотек на все случаи программистской жизни, введя абстрактные классы и шаблоны. Однако, им не хватает двух вещей: отсутствует возможность хранения незаконченных фрагментов и, что более существенно, поиск нужного полуфабриката приходится производить методом полного перебора библиотеки.
Единственным узаконенным FORTH-полуфабрикатом является черновая запись слова с игнорированием стековых операций. Это близко к той "нитке бус", которую предлагал Дейкстра, но абсолютно неприемлемо для последователей структурного программирования в стиле Вирта (для которых структуры данных важнее структуры программы).
С точки зрения "машин пятого поколения", язык для "записи идей" должен включать: средства описания и вычисления предикатов (в том числе, вероятностные), развитые структуры данных, семантические сети. (Не удивительно, что у японцев ничего не получилось.)
***

Другое, сразу приходящее в голову, усовершенствование языка программирования для описания идей - возможность компактной записи вариантов программного блока. Когда работа над блоком начинается, мы записываем сюда просто его спецификацию. Когда пытаемся проверить программу без него - пишем заглушку. Иногда вставляем в это место пользовательский интерфейс - для отображения ситуации и ручного ввода якобы выходных параметров этого блока. В конце концов это место занимает настоящая программная реализация - в отладочном или окончательном виде. Желательно бывает хранить здесь не одну, а несколько реализаций.
В C-подобных языках подобное реализуется (очень неаккуратно) тремя механизмами: комментариями, условной компиляцией или наличием нескольких вариантов библиотек (условной сборкой). Условная компиляция, вроде бы, дает большую наглядность, но приводит к появлению совершенно нечитаемых текстов. Это послужило причиной многочисленных рекомендаций, в случае наличия нескольких реализаций модуля, хранить их в виде отдельных библиотек (хоть это и громоздко).
Дейкстра группировал варианты в рамках одной машины, говоря о наборах бусин. Кнут разбивал процедурные блоки на три группы - комментариев, определений и кода (связывая их перекрестными ссылками).
FORTH в этом случае оказывается не на высоте. Слова-синонимы, конечно, возможны, но сохранить их так, чтобы самому не запутаться вряд ли возможно. Кроме того необходим некоторый формализм меток блоков (как у Кнута). Блок должен быть явно помечен как, например: ОПИСАНИЕ, ПРЕДИКАТЫ, ЗАГЛУШКА, ЗАПРОС, ОТЛАДКА, РЕАЛИЗАЦИЯ и т.д. Необходимо так же хранить подобные блоки рядом, да еще с указанием применимости каждого из них в конкретном случае: самодокументирование, отладка, операционная система такая-то...
Возникает мысль использовать что-то вроде условных конструкций Дейкстры (пары условие-действие, перебираемые с случайном порядке, пока условие не выполнится) и даже возникает крамольный вопрос, не допустимо ли оставить в проекте не одну реализацию, а несколько, с ненулевой вероятностью выбора? Однако, это не совсем то, что нужно в FORTH, ориентированном в первую очередь на вычисления и таблицы, а не на громоздкие CASE-конструкции.
***

Недавно снова столкнулся с подобной проблемой в FORTH. Что должно быть более информатировным для пользователя при интерактивной разработке: листинг программы, результат ее работы или некоторая дополнительная справочная система?


Последний раз редактировалось: Gudleifr (Пн Дек 04, 2017 12:34 am), всего редактировалось 1 раз(а)
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Gudleifr в Пн Дек 04, 2017 12:28 am

ГРАНИЦЫ САМОРАСШИРЕНИЯ

Брукс, Мифический целовеко-месяц:



"В левом верхнем углу рисунка находится программа. Она является завершенным продуктом, пригодным для запуска своим автором на системе, на которой была разработана. В гаражах обычно производится такой продукт, и это - тот объект, посредством которого отдельный программист оценивает свою производительность.
Есть два способа, которыми программу можно превратить в более полезный, но и более дорогой объект. Эти два способа представлены по краям рисунка.
При перемещении вниз через горизонтальную границу программа превращается в программный продукт. Это программа, которую любой человек может запускать, тестировать, исправлять и развивать. Она может использоваться в различных операционных средах и со многими наборами данных. Чтобы стать общеупотребительным программным продуктом, программа должна быть написана в обобщенном стиле. В частности, диапазон и вид входных данных должны быть настолько обобщенными, насколько это допускается базовым алгоритмом. Затем программу нужно тщательно протестировать, чтобы быть уверенным в ее надежности. Для этого нужно подготовить достаточное количество контрольных примеров для проверки диапазона допустимых значений входных данных и определения его границ, обработать эти примеры и зафиксировать результаты. Наконец, развитие программы в программный продукт требует создания подробной документации, с помощью которой каждый мог бы использовать ее, делать исправления и расширять. Я пользуюсь практическим правилом, согласно которому программный продукт стоит, по меньшей мере, втрое дороже, чем просто отлаженная программа с такой же функциональностью.
При пересечении вертикальной границы программа становится компонентом программного комплекса. Последний представляет собой набор взаимодействующих программ, согласованных по функциям и форматам, и вкупе составляющих полное средство для решения больших задач. Чтобы стать частью программного комплекса, синтаксис и семантика ввода и вывода программы должны удовлетворять точно определенным интерфейсам. Программа должна быть также спроектирована таким образом, чтобы использовать заранее оговоренный бюджет ресурсов - объем памяти, устройства ввода/вывода, процессорное время. Наконец, программу нужно протестировать вместе с прочими системными компонентами во всех сочетаниях, которые могут встретиться. Это тестирование может оказаться большим по объему, поскольку количество тестируемых случаев растет экспоненциально. Оно также занимает много времени, так как скрытые ошибки выявляются при неожиданных взаимодействиях отлаживаемых компонентов. Компонент программного комплекса стоит, по крайней мере, втрое дороже, чем автономная программа с теми же функциями. Стоимость может увеличиться, если в системе много компонентов.
В правом нижнем углу рисунка находится системный программный продукт. От обычной программы он отличается во всех перечисленных выше отношениях. И стоит, соответственно, в десять раз дороже. Но это действительно полезный объект, который является целью большинства системных программных проектов".

А как быть с FORTH-системой?
Во-первых, она изначально должна быть в некоторой степени "программным продуктом", поскольку изначально включает интерактивную составляющую.
Во-вторых, программный комплекс, должен быть, скорее, новой машиной, чем доработкой старой.
В-третьих, хочется, чтобы системный программный продукт был машиной, пригодной для встраивания в более сложные машины...
avatar
Gudleifr
Admin

Сообщения : 892
Дата регистрации : 2017-03-29

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: На что способен и на что должен быть способен FORTH?

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения