- ベストアンサー
自分専用のプログラムの作り方
今、VBやJAVAといったプログラム言語が存在していますが、実際自分専用のプログラムを作るとしたらどうすればいいのでしょうか? たとえばこの世に存在していなく全く新しい言語を作るときとか? できれば作り方や用意するものなどわかりやすく(できれば専門用語は控えめで)教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1.目標を立てます 最終的にコンピュータが理解できる言語(機械語)にしますが、とりあえず現 在存在する言語に変換できればいいでしょう。例えば新規言語をC言語に翻訳 できればコンピュータで実行可能です。 2.1.の目標を日本語から英語に変換と例えれば下記2つを解決する必要があります 1)文法の変換問題 (構文解析で検索すると沢山でてきます) 2)単語、文字の変換問題 (字句解析で検索すると沢山でてきます) 下記で想像されればいいのではないでしょうか。 これはペンです。 -> This is a pen. 但し、これは自然言語の翻訳で例外の発生、単語が複数の意味を持つ、慣用句 など難しい問題が多くあります。 しかし実際のコンピュータ言語ではこの問題がほとんど発生しないように作成 しますので、(設計者=貴方が普通に作成しようとすれば自然とそうなります )かなり簡単に作成可能です。 また#1の方が紹介されているようにlex(字句解析機),yacc(構文解析機)のツー ルもありますので作成は容易です。 貴方が一番大変な部分は字句解析と構文解析の規則(ルール)を作成する部分 という事になり、後は外注(ツールを使用する)という形でしょうか。
その他の回答 (2)
言語の仕様を決めます。これがやたら面倒。 言語の解釈するルーチンを作ります。 言語の実行するルーチンを作ります。 必要に応じて.言語の実行状態を監視したり.制限したりするルーチンをつくります(作成したルーチンのデバックルーチンであり.あるいは.ユーザープログラムのデバックるーちんであったりします)。 これらを適当に統合するルーチンをつくります。内容を見て順次解釈して行くインタープリターが作るのには楽でしょう。 こんなところでしょうか。
- hazenoki
- ベストアンサー率33% (21/62)
私もそんなに詳しくないのですが、自分専用のプログラムを作るということは、 自分でプログラム言語の文法を定義するということですよね。 lex や yacc というツールを使うと、比較的簡単に、文法や字句を解析できます。 lex や yacc というのは、コンパイラーを作るためのツールです。 ちなみに、コンパイラーは、人間が書いたプログラムソースをコンピューターが理解できる形式に変換するものです。ですので、プログラム言語の文法の解釈は、このコンパイラーがします。 インターネットで lex や yacc で検索すると、いろいろ説明出てきますので、くわしくはそちらを見て下さい。 (奥が深いので、ここで、すべては説明しきれない。) yacc の代わりに最近は、bison というツールを使うのかな?