Работа с интерпретируемым языком в Apache - PullRequest
4 голосов
/ 21 июня 2011

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

Я предполагаю, что apache передает файл, который необходимо скомпилировать, в какой-нибудь исполняемый файл, который будет «исполнять» код и возвращать apache html, который будет отправлен пользователю? Пожалуйста, поправьте меня, если я ошибаюсь.

У кого-нибудь есть идеи, как мне это сделать? возможно образцы? Язык на самом деле не имеет значения (хотя C # или Java были бы хороши, так как я могу справиться с обоими), это больше для понимания.

Ответы [ 3 ]

3 голосов
/ 21 июня 2011

Если вы не хотите идти по пути CGI, подумайте над написанием модуля Apache, который либо размещает ваш интерпретатор, либо вызывает его в другом процессе.Звучит пугающе, но на самом деле все не так плохо.Места для начала:

Как только вы освоитесь, вы можете взглянуть на более точные реализации:

  • Из источника httpd / httpd / mod_wombat / trunk / завершено (носложное представление о том, как Lua размещается в Apache
  • modwsgi - это богатый опциями Python в Apache.Он соблюдает протокол WSGI .

Вы не сможете избежать C, если выберете модуль.

1 голос
/ 21 июня 2011

Я предлагаю вам использовать существующий язык, который уже поддерживает Apache.

Если вы хотите понять, как долго может потребоваться разработка нового языка / компилятора / комплекта времени выполнения, вы можете использовать Java или PHP в качестве руководства.

OpenJDK

Codebase         4,782,692 lines
Effort (est.)     1451 person-years
Estimated Cost $79,802,051

http://www.ohloh.net/p/openjdk/estimated_cost

PHP

Codebase     2,696,715 lines
Effort (est.)      772 person-years
Estimated cost     $42m.

http://www.ohloh.net/p/php/estimated_cost

Разработав язык, вы должны будете интегрировать его с Apache.

1 голос
/ 21 июня 2011

Common Gateway Interface (CGI) описывает, как веб-сервер должен взаимодействовать с программой (такой как интерпретатор), которая создает динамические веб-страницы.Когда-то свыше 90% всех нестатических веб-страниц создавались интерпретатором Perl, вызываемым через CGI ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...