Автор: Александр aka Carapax
Так лепил мир гончар. Сейчас он стал программистом и лепит его не нуждаясь в глине...
Кутырев В.А. Оправдание бытия
Как известно second passport by investment, языки программированнии делятся на два типа - компилляторы и интерпретаторы. Компилляторы обрабатывают исходные данные и синтезируют некую жестко определенную структуру, работающую весьма эффективно, но только при выполнении всех необходимых условий. При невыполнении условий система рушится и восстановлению не подлежит (пример - DOS-овские приложения).
Плюсы и минусы такой системы: максимальная производительность при минимуме затрат крайняя негибкость. Так действуют примитивные механизмы-автоматы.
Чтобы обезопасить систему от неожиданностей и при этом не перегружать ее функциями сверх меры надо добавить алгоритм выживания.
В программировании существует понятие "события on default", "события по умолчанию" (хотя правильнее "по облому"). События, наступающие при отсутствии в системе предусмотренного решения. Это универсальные заглушки, смысл которых сводится к одному: минимизация потерь при отработатке нештатных ситуаций (грубо говоря, "уход в глухую защиту"). Они весьма эффективны в пределах поставленной задачи, и очень напоминают концепцию безусловных рефлексов. Так организованы примитивные формы жизни - одноклеточные, насекомые и проч., действующие на основе инстинкта. Существа, которые вот уже милиарды лет выживают только за счет своей крайней примитивности и многочисленности, никак при этом не прогрессируя.
(Особый взгляд second passport by investment: почему не развиваются насекомые?
В них не предусматривалось развитие изначально. Они выполняют свои четко обозначенные функции и только. В эволюции они участвуют на вторых ролях - как пищевые цепи, как "санитары леса", ускоряющие распад и переработку гниющих остатков, как опылители растений и т.д. Они в каком-то смысле био-роботы, "домашняя прислуга").
Теперь система жизнеспособна, но приспособлена только к конкретной, статичной среде, серьезных изменений в которой не предусмотрено. Мы допускаем, что будут происходить отдельные непредвиденные события, но и только. Если их станет слишком много, мы рискуем оказаться в перманентной "глухой защите".
Более сложные (и более уязвимые) существа на таких принципах выжить не могут.
Чтобы отслеживать накапливающиеся изменения, система должна не просто выживать, но и развиваться. Возможно ли заложить в скомпиллированную систему (если она не примитивна, как вирус) способность выживать при непрерывно изменяющихся условиях? Нет. Компиллятор заходит в тупик - с его помощью можно производить только тех самых био-роботов. Необходим более гибкий аппарат реагирования.
И тут на помощь приходит интерпретатор.
В интерпретатор не "зашиты" готовые решений. Громоздкий и "неактуальный" (медлителный), он, тем не менее, не мыслит готовыми схемами, а рассматривает события контекстуально и выработывает к ним рациональное отношение. Он работает параллельно автоматическому компиллятору, но по принципу не "от противного" - избежать неприятностей, а "к приятному" - оптимизировать свои действия, получить максимум результата при минимуме затрат. А это уже поведение высших животных.
(Особый взгляд: почему не развиваются животные?
Иногда создается впечатление, что Создатель их просто не доделал - махнул рукой и сказал: "Ладно, вот вам кусочек разума моего (чтоб не скучали), а там посмотрим...". Вот они и ждут, не знают чего с этим разумом делать. Но, кому дано познать Божественный замысел? Может, случись что с людьми, и "заговорят" наши возможные дублеры - дельфины, крысы, слоны... ? )