人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラミング言語自体を自分で作るにはどうすれば良いのでしょうか?自分のスキルは大したことないですが,自作できるなら色んな知識が身に付けられそうなので勉強してみたいです。

●質問者: Kassan
●カテゴリ:コンピュータ
✍キーワード:スキル プログラミング言語 勉強 自作
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● siigimaru
●15ポイント

http://www2.airnet.ne.jp/sardine/langs/Assembly.html

$B%W%m%0%i%_%s%08@8l(B $B%"%;%s%V%j(B

結論から言うと、自分でプログラム言語を作るのはまだ、難しいです。簡単に言えば自分が、「?語です。」と言って喋っても誰も理解できないからです。

まず、高級言語(COBOL)とか、一番マシーンに近い言語(アセンブラ)辺りを勉強したらどうでしょう?

◎質問者からの返答

ありがとうございます。

勉強します。


2 ● fruitage
●15ポイント

http://www.jisc.go.jp/

JISC 日本工業標準調査会

プログラミング言語を自作する方法ですが、仕様さえ決定すれば、それで作ったことになります。具体的なことは、既存の言語仕様を参考にするとよいでしょう。紹介したURLからJIS検索を使って、プログラミング言語の規格書を見ることができます。例えば、C言語なら「X3010」を検索すれば閲覧できます。


コンパイラやインタプリタのような処理系の実装は、プログラミング言語自体ではないので、また別の話になります。

◎質問者からの返答

ありがとうございます。

はじめてC言語の規格書を見ました。勉強になります。


3 ● lupu
●15ポイント

http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/250-3984494-...

Amazon.co.jp: コンパイラ―原理・技法・ツール〈1〉: 本: A. V. エイホ,R. セシィ,J. D. ウルマン,原田 賢一

http://www.amazon.co.jp/exec/obidos/ASIN/4781905862/250-3984494-...

Amazon.co.jp: コンパイラ―原理・技法・ツール〈2〉: 本: A. V. エイホ,R. セシィ,J. D. ウルマン,原田 賢一

まずは、こういった本を読んでみてはどうでしょうか?

プログラミング言語を作るという事は、コンパイラ(またはインタプリタ)を作るという事になると思います。

それが出来たら、後は、どういう仕様にするか考えるだけだと思います。


他にも、

http://www.amazon.co.jp/exec/obidos/ASIN/4000103458/250-3984494-...

Amazon.co.jp: プログラミング言語処理系: 本: 佐々 政孝

とか、

http://www.amazon.co.jp/exec/obidos/ASIN/4774121770/250-3984494-...

Amazon.co.jp: スモールコンパイラの制作で学ぶプログラムのしくみ: 本: 石田 綾,中田 育男

などの本があります。


(アセンブラ言語の知識も必要となってくると思うので、知らない場合はそっちの勉強も必要だと思います。)

◎質問者からの返答

ありがとうございます。

図書館に置いてあったので借りて読んでみます。


4 ● z_u_m_i
●15ポイント

http://www.cmagazine.jp/contents/200005.html

C MAGAZINE - 2000年5月号

Cなどのようなコンパイラ言語は、ソースを字句解析・構文解析してアセンブラに変換して・・・と、だいぶ大変だと思います。

インタプリタなら多少現実的でしょう。一行ずつ読んで、自分で決めた文法に従って正規表現を使ったりして解析して出力していく感じでしょうか。

URLは、C-Magazineのバックナンバーです。

◎質問者からの返答

ありがとうございます。

バックナンバー探してみます。


5 ● olo
●15ポイント

http://www.tokumaru.org/

自作コンパイラの部屋

http://pcweb.mycom.co.jp/news/2005/09/30/027.html

コンパイラやインタプリタを生成するフレームワーク - SableCC 3.1 公開 (MYCOMジャーナル)

大方針として、インタープリタをつくるのか、

コンパイラをつくるのかで、必要な知識が違ってきます。


コンパイラは中間コード、マシン語、CPUの知識等が必要ですね。

インタープリタはそこらへんが必要ないですね。

どちらも字句解析、構文解析等の知識と実現する必要がありますが、

この部分はフレームワーク化されているものが

あるので、それを利用した方が現実的でしょう。

◎質問者からの返答

ありがとうございます。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ