Валерий Лаптев писал(а):
некоторой конкретной задачи из проблемной области, не относящейся к информационным технологиям. Ту же задачу раньше решали без использования компьютеров.
Хорошо. Пример: калькулятор. Калькулятор это ведь ППО? Вот надо мне сложить скажем те два числа(10 и 15). Можно запустить калькулятор (kcalc тот же), а можно запустить ghc (haskell) repl, и там написать: 10+15 , и в том и в другом случае будет выдан результат. Удобство одинаковое (хм. пожалуй repl таки удобней будет, ну да ладно). Так вот, я считаю что в этом случае и ghc и калькулятор относится к одному и тому же классу софта. Хотя, казалось бы ghc это чисто системная хрень, а калькулятор ну чисто прикладная.
Идем дальше. ещё один пример. У меня задача, скажем посчитать факториал. Вполне себе прикладная задача, правда ведь? Но к сожалению мой калькулятор не умеет считать факториал, зато он программируемый. Соответственно я пишу простенькую програмку считающую факториал и ей таки считаю оный факториал. Задача решена. Внимание вопрос -- калькулятор в этом случае прикладной софт, или таки системный? И чем принципиально отличается тыкание [1], [5], [!], от чуть более долгого тыкания в кнопочки калькулятора для получения того же результата (если на калькуляторе небыло заветной кнопочки [!])? Цели и задачи были одни и те же.
Поэтому я и говорю -- применять понятие "системный" к той самой задаче которую мы решаем прямо сейчас, нельзя. То, что мы используем для решение данной задачи -- системное, ибо образует систему, окружение, в рамках которой мы пытаемся нашу задачу решить.
И тыкание в калькуляторе 15+10 -- ничем от написания программы не отличается. Собственно это уже программа. Да, на не тьюринг-полном языке. Ну и что с того? Скажем та же быстрая сортировка тоже может быть реализована на не тьюринг-полном языке (я реализовывал), тьюринг-полнота там не нужна.
Цитата:
А потом классификацию дал:
1. ОС. Не решает никакой прикладной задачи. Обеспечивает повышение пропускной способности вычислительного комплекса
2. Инструментальное ПО. Не решает никакой прикладной задачи. Обеспечивает повышение производительности труда программиста.
3. Проблемно-ориентированное системное ПО. Или предметно-ориентированное. Не решает никакой КОНКРЕТНОЙ прикладной задачи. Но ориентировано на решение КЛАССА прикладных задач. Классический пример - СУБД. Признаки системного ПО в подобных системах: внутренний язык программирования и интерпретатор. Например, браузер - вроде чисто прикладная прога. НО! Интерпретатор HTML и JavaScript (VBSCript) - унутре работет. А это уже системное ПО.
Это всё прекрасно подходит под даденое мною определение. Браузер может быть системным ПО а может быть прикладным. В зависимости от того как мы его используем. Word -- туда же. Да и вообще любой софт, автоматизация действий же никуда не девается.
PS. Кстати, я не очень понимаю зачем нам делить софт на системный и прикладной.