А с моей точки зрения сценарий (например, perl) - всё-таки не приложение.
Вряд ли где-нибудь можно найти общепринятый критерий, который позволяет отличать приложения от НЕ приложений, но если заглянуть на Глоссарий.ру, то увидим, что термин "приложение" там синонимичен термину "прикладная программа":
www.glossary.ru писал(а):Прикладная программа
Приложение
Application program; Application
Прикладная программа - в широком смысле - программа или пакет прикладных программ, реализующие обработку данных в определенной области применения. Прикладная программа непосредственно выполняет функции, необходимые пользователю.
Прикладная программа - в узком смысле - программа, решающая проблему конечного пользователя.
то есть приложение должно быть программой. А программа на том же глоссарии определена следующим образом:
www.glossary.ru писал(а):Программа
Program; Routine
Программа - последовательность машинных команд, предназначенная для достижения конкретного результата.
Программа - согласно ГОСТ 19781-90 - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма.
Таким образом, исходя из первой части опеределения, программа должна быть последовательностью машинных кодов и сценарий, в рамках этого определения, программой определенно не является (вторая часть определения кажется мне вообще несколько странной - меня с детства учили не путать программный код и данные). Причем даже программу на языке java, судя по всему, тоже можно считать программой - только для java-машины.
Но вообще-то скорее всего единственно верного ответа на вопрос "что есть приложение" не существует - вопрос очень субъективный.
Для меня приложение - это нечто самодостаточное, не требующее в обязательном порядке для своего исполнения других приложений (ОС - это не приложение).
И разделяемые библиотеки не приложения.
Хотя любой программе формате elf необходим динамический загрузчик, а он ведь сам по себе тоже отдельная программа...
В общем, дело тёмное.
