Almazq
@Almazq
Новичок в мире IT

Возможно ли написать свой ЯП на php?

Просто чисто теоретический возможно или нет написать саой язык программирования?
Как пчп написано на 'C' 'C+' , java тоже написан на 'C' (ну я так читал где то )
И есть такие языки написанный на php?
Просто стало интересно
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 5
samodum
@samodum
Какой вопрос - такой и ответ
Конечно можно. Потому что php, как и все другие языки, Тьюринг-полный.
Я писал свои ЯП на Delphi, C#, Java.
В этом нет ничего сложного.
Для совсем ленивых есть ANTLR, где достаточно только описать грамматику языка в конфиг-файле и всё остальное сгенерирует сама либа на любом языке.
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
PHP умеет записывать бинарные файлы, потому на нём можно написать компилятор любого языка, компилирующий в машинный код. И из буханки хлеба можно сделать троллейбус. Но зачем?
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
На любом языке можно написать его клон. Т.е. использующий те же (или меньшие!) возможности и ту же среду ("экосистему") исполнения.

Если нужно написать что-то, что превосходит текущий (выбранный язык) по возможностям - нужно "спускаться" к более низкому уровню кодирования.
Ответ написан
Комментировать
@16tomatotonns
Томат
Есть два варианта, каким образом это можно сделать:
1. Написать на пхп компилятор. Он будет простым переводчиком текста с вашего нового языка программирования в машиный код конкретного процессора;
2. Написать на пхп интерпретатор. В таком случае, программа на пхп будет условно построчно считывать текст программы, и выполнять какие-либо действия в соответствии с командами в данном тексте.

Ещё можно написать на пхп транслятор с нового языка на сам пхп, подобным образом работают typescript (js) и moonscript (lua).
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Можно, причём 30% у вас уже - есть парсер и лексер
https://www.php.net/manual/ru/parle.examples.lexer.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы