[oodisc] Не хватает одной моей головы.
AS_Pushkin
as_pushkin на tut.by
Пт Июл 8 13:02:06 MSD 2005
Доброго здоровья!
Бабич Алексей Владимирович пишет:
> GK> http://www.osp.ru/os/2000/12/045.htm
> Ладно, теперь последнее сображение: интерпретатор
> языка интерпретирует _и_ затем выполняет, а скомпилированный код просто выполняется. Делаю вывод, что интерпретатор
> всегда медленнее. То есть, интерпретатор С будет медленнее, чем код, скомпилированный с С в родной для платформы код.
Действительно, несколько медленней. Но есть у Perl'а (и других
интерпретируемых языков) кое-что, что C не сможет сделать.
Во-первых, как я уже отмечал раньше, основой, или, если угодно, ядром
системы является шаблонник, который собирает XML-документ. В сам шаблон
можно вставлять некоторый код на Perl'е. Боюсь, для C это окажется
весьма нетривиальной задачей. Ну, разве что разработка какого-то своего
собственного языка для шаблонов.
Во-вторых, чтобы заставить Perl-скрипт работать на другой платформе,
достаточно просто скопировать его туда, дать нужные права и запустить.
Программу на C нужно будет сначала оптимизировать под конкретную ОС,
отладить и скомпилировать.
В-третьих, шаблонник сам по себе может обслуживать простой сайт. Все,
что выходит за рамки сборки XML-документа, реализовано в расширениях.
Расширения написаны специально для использование с шаблонником и больше
нигде, но запускаются они по мере надобности. Расширения выполняются как
если бы они были процедурами самого ядра, т.е им доступны глобальные
переменные шаблонника. Я не знаю, возможно ли такое в C. Наверняка есть
какой-то способ, но переносимость такого подхода так же мне так же
представляется большой головной болью.
(Чтобы меня не закидали камнями недовольства по поводу такой архитектуры
приложения, сразу подчеркну: расширения работают _только_ с шаблонником,
и их применение где-либо еще просто невозможно. Именно поэтому они и
называются *расширениями*. Процедуры общего назначения, которые могут
использоваться где угодно, я предпочитаю выносить в отдельные модули.)
> То-же самое предположу про Perl, только не знаю, есть ли компиляторы Perl в родной для платформы код.
Были такие попытки, но они практически всегда обречены на провал. Perl,
по-моему, не может быть компилируемым.
--
Andrei Protasovitski mailto:andrei()siliconmaterials.com
JS "KamSil" http://www.siliconmaterials.com/
137, Brestskaya str., ICQ: 75725244
225710, Pinsk, Belarus
Подробная информация о списке рассылки Oo-discuss