Пользовательский интерпретатор PHP? [закрыто

StackOverflow https://stackoverflow.com/questions/5346555

  •  27-10-2019
  •  | 
  •  

Вопрос

По сравнению с некоторыми языками, синтаксис PHP немного длинный (например, в Java, вызывающий метод объекта A, выполняется с периодом (.) Вместо PHPS (->)).

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

Поэтому вместо этого я подумываю написать анализатор в PHP, который преобразует мой синтаксис в PHP -код, а затем запускает это с использованием режима и прочим.

Причины этого: PHP - это стабильный язык для веб -сайтов (мой синтаксис будет подходить для веб -разработчиков). Я уже знаю PHP на профессиональном уровне (или, по крайней мере, я думаю), я уже видел реализацию чего -то подобного: http://tetraboy.com/lolcode/lol_core.phpsЭто преобразует LOLCODE в PHP. И я знаю, что это просто шутка, но все же это было сделано

Так что, поскольку у меня есть доказательства того, что это возможно. Мой вопрос: могу ли я сделать что -то, что я мог бы использовать для будущих проектов? Например, могу ли я заставить его быть таким же быстрым или почти таким же быстрым, как PHP?

Я собираюсь попробовать это в любом случае только для целей изучения немного больше о PHP и о том, как языки собираются вместе, но мне интересно, могу ли я действительно превратить конечный результат во что -то, что стоит.

Это было полезно?

Решение

Во всяком случае, это очень забавный учебный проект.

Есть и другие, которые имели ту же идею с другими языками. Например, взгляните на CoffeeScript, которая в основном та же идея, но для JavaScript.

Вы можете сделать эту работу, но вам придется принять во внимание процесс конверсии. Если вы ищете производительность, вы не хотите, чтобы это было сделано Реальное время по каждому запросу. Потому что добавление слоев сложности просто замедлит ваш код. Даже если это просто крошечное. Чтобы вспомнить этот CoffeeScript предлагает командную строку «компилятор» для предварительной компиляции, но также позволяет лечить ситуацию с загрузкой, которая прекрасно работает для целей разработки. Такая настройка может сработать для вас.

Вы захотите посмотреть Php_lexergenerator а также Php_parsergenerator Для реализации вашего анализатора. Даже если последнее больше не поддерживается :)

Удачи! ;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top