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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/02/11 10:57:11
  • 終了:--

回答(6件)

id:siigimaru No.1

siigimaru回答回数556ベストアンサー獲得回数52006/02/11 11:10:50

ポイント15pt

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

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

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

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

id:Kassan

ありがとうございます。

勉強します。

2006/02/11 13:39:47
id:fruitage No.2

fruitage回答回数77ベストアンサー獲得回数02006/02/11 11:23:35

ポイント15pt

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

JISC 日本工業標準調査会

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


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

id:Kassan

ありがとうございます。

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

2006/02/11 13:48:11
id:lupu No.3

lupu回答回数214ベストアンサー獲得回数02006/02/11 12:24:01

ポイント15pt

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: スモールコンパイラの制作で学ぶプログラムのしくみ: 本: 石田 綾,中田 育男

などの本があります。


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

id:Kassan

ありがとうございます。

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

2006/02/11 13:54:54
id:z_u_m_i No.4

z_u_m_i回答回数3ベストアンサー獲得回数02006/02/11 12:46:39

ポイント15pt

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

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

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

id:Kassan

ありがとうございます。

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

2006/02/11 13:57:28
id:olo No.5

olo回答回数80ベストアンサー獲得回数12006/02/11 13:06:43

ポイント15pt

http://www.tokumaru.org/

自作コンパイラの部屋

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

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

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

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


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

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

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

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

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

id:Kassan

ありがとうございます。

2006/02/11 13:58:05
id:Kumappus No.6

くまっぷす回答回数3784ベストアンサー獲得回数1852006/02/11 13:18:01

ポイント15pt

http://kmaebashi.com/programmer/devlang/

�v���O���~���O����������

http://codezine.jp/a/article.aspx?aid=78

プログラミングと開発者のためのCodeZine:JavaとSAXパーサでXMLベースのプログラミング言語を作る(XML, SAX, メタ言語, Interpreter)

その通り、プログラミング言語の自作はプログラミングの勉強の中で最も力が付くもののひとつです。

URLに実際にやってるひとの例を挙げました。

プログラミング言語作成に必要な知識のうちで一番重要なのは構文解析の部分で、文字列処理の機能が使える状態にあるかどうかでかなり手間というか苦労の度合いに差が出ます。

昔はまさに文字列処理の部分から作らざるを得なかったわけですが、今は2番目のURLにあるようにJavaなどをベースにしてその上にプログラミング言語を何か作っていくようにしたほうが楽ですし、本質的なことが学べてよいと思います。

id:Kassan

ありがとうございます。

実際に作った人の例は参考になります。目的は勉強なので頑張ってみます。

2006/02/11 14:17:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません