数年前、私はプログラミング言語に関するいくつかのアイデアに取り組み始めました。それらにとても興奮していたので、それらがどのように機能するかを知りたかったので、そのための非常に単純なコンパイラーを作成することにしました。私はPHPの方が快適で経験豊富なので、PHPでコンパイラーを作成できるかどうかを調べたところ、すぐに可能であることがわかりました。だから私はそれを作り始めました、そして幸いなことにすべてが大丈夫でした、そして今それはうまく働いています。
当時、私は自分のアイデアに取り組み始める場所が欲しかったのですが、PHPは開発が速く(コンパイルする必要がない)、MySQLも手元にあり、デバッグも非常に簡単でした。
今、私はこの単純なコンパイラを拡張したいと思います、そしてそれは私があなたのアドバイスを必要とするところです。私の主な質問は、「PHPはコンパイラプロジェクトに適したツールですか?」です。公開するつもりはないと仮定して、配布などの問題ではなく、タスクを処理するPHPの機能について考えてみてください。
いくつかの利点があると思います。開発は迅速です。コードを編集してブラウザでF5キーを押すだけで、その直後にバイナリ出力が得られました。また、そこにテキストボックスを作成して、簡単なコードを記述し、送信を押してから、バイナリ出力を再度取得しました。また、MySQLで解析されたデータを保持し、作業するのも高速でした。しかし、今では、たとえばスクリプトのタイムアウトについてもっと心配しています。10,000行のソースコードをコンパイルすると、タイムアウトになると思います。タイムアウトを増やすことができることはわかっていますが、それでも心配です。また、スクリプト言語としてのPHPは、(私が聞いたように)コンパイルされたアプリケーションよりも10倍遅いことも知っています。
それで、私はCに切り替える必要があると思いますか?(私もそれで大丈夫です)...または、PHPバックエンドを続行できるが、より深刻なことを処理し、重大なミスに直面することなく、何かアイデアがありますか?
アップデート:
はい!プロジェクトは個人的で楽しいものです。あなたもそれを考慮するかもしれません!
PHPベースのコンパイラーのアプリケーションに関しては、そうです、それは実際のコンパイラーではありませんが、アイデアを他の人と共有したい場合は、コードを書くためのWebフォームを提供してボタンを押すとよいでしょう。バイナリコードをダウンロードします。それは私の目標ではありませんが、私はそれについて疑問に思っています。
Lex / Yaccに関しては、最終的なバイナリコードを最適化することを目的としていたため、Lex/Yaccを介してバイナリコードを生成するだけでは不十分でした。