オリジナルなプログラミング言語を作ってみたいと考えています。
ただ、どうやって作ればいいかがわかりません。
私は、今のところ、Perl、なでしこ等々、簡単なプログラミング言語での
プログラミングしか出来ません。
しかし、プログラミング言語を作ることによって、
プログラミングの勉強にもなると考えているのですが
まずは、簡単なものでもいいので、それらしいものを作るには
何から勉強を始めればいいでしょうか、
又、他の言語を覚える必要はありますか。アドバイスを御願いします。
もしくは、例えば、参考になりそうなWEBサイトや、
書籍等々でも、結構です。宜しく御願いします。
No.7
- 回答日時:
こんばんは、オリジナルなプログラミング言語を作るとゆうことは、
現在のインテルのCPUより高性能なCPUを作るのと同じ技術、知識と根気が必要です。
まず、プログラミング言語Cなどを完全にマスターする必要があると思います。
1000行、1万行のプログラムを簡単に作れるくらいの技術が必要です。
新しいプログラミング言語をどのツール(言語)で作成するかが問題です。
作成したら自分のプログラミング言語に移植すればいいのです。
つまりプログラミング言語Cは、C自身で書かれている場合があると思います。
コンパイラーが最初にすることは、記述された文字列が文法に合うか、
解析することから始まると思います。
このあたりを理解する必要があると思います。
>コンパイラーが最初にすることは、記述された文字列が文法に合うか、
>解析することから始まると思います。
ヒントをくださって、ありがとうございます。
C言語をマスターする必要がありますか!?
では、道はまだ果てしなく遠いのですね・・・。
ところで、それは、新しいプログラミング言語は、Cで作ると良い。と
言われているのでしょうか?それともCを勉強した上で
別の言語で作れと言われていますか?
私としても、新しい言語は、もちろん勉強したいのですが、
どれが最適かわからないのです。
No.6
- 回答日時:
> まずは、簡単なものでもいいので、それらしいものを作るには
> 何から勉強を始めればいいでしょうか、
ANo.1の方が仰っているように、
「逆ポーランド式(後置記法)の計算をするプログラム」や、
「中置記法の計算式を逆ポーランド式に変換するプログラム」なんかを作ってみると良いと思います。
この2つを合わせると、「電卓のプログラム」が完成します。
"32 + 4 × 3 ÷ (2.1 + 3)"というテキストデータを与えると
それを計算してくれるプログラムです。
電卓のプログラムには、プログラミング言語を作る上で必要なものがつまっています(字句解析や構文解析等)。
本質的なところも似ていると思うので、挑戦してみてはいかがでしょうか。
電卓を少し複雑にしたものが、プログラミング言語(を翻訳して、機械語に変換するプログラム)だと思います。
ありがとうございます。
電卓プログラムですか。たしかに、それを作れば勉強にもなりそうですね。
挑戦してみようと思います。
ところで、どのプログラミング言語を利用したら良いと思いますか。
アドバイス御願いします。
No.5
- 回答日時:
何からしなければいけないのかわからないのならば、
まず、こちらを読んで用語や知識、手法を学んでみてください。
参考URL:http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3% …
No.4
- 回答日時:
masapiyochan語を作っても、既存の言語を理解することは不可能だと思います。
エスペラントやクリンゴン語を作っても、アイヌ語を話せるようになることはありませんから。
インタプリタやコンパイラを作らずに、言語仕様、文法を作るだけであれば、日本語で良いと思いますけどね。
私も何をしないと行けないのかもわからなければ、作ることは出来ないと思いますが。
インタプリタやコンパイラを作るのは、既存のプログラム言語での作業になると思いますので、
最低1つ、既存のプログラムの文法がわかってないと、新しい言語で作ったプログラムを実際にコンピューターで動かすことはできないと思います。
Perl、PHP、JavaScriptにはHTMLデータ(HTMLだけとは限らないが)を作るためのテンプレートエンジンというのがあるので、
変数、四則計算、ifやループ処理の仕方などは参考になるかも知れません。
> 「いまどきのプログラム言語の作り方 」(毎コミ)
あ、これはなかなか面白そう。
http://risky.cs.inf.shizuoka.ac.jp/
http://risky.cs.inf.shizuoka.ac.jp/?cmd=list
テンプレートエンジンを作るときに参考にさせて頂きました。
アルゴリズム、コンパイラ関連の項目が詳しく、わかりやすいです。
ありがとうございます。
テンプレートエンジンですか。調べてみます。
教えていただいたWEBサイトですが、私には、どこを読めばいいのか
いまいち、良くわからないのですが・・・。すみません。
又、”いまどきのプログラム言語の作り方”は既に販売されていないようですが
何とかして入手して読んでみたいと思うのですが
こんなことを書くと何ですが、Javaではあまり作りたくありません。
Java以外で作ったとしても、役に立つ本でしょうか。
又、どんなプログラミング言語が最適だと思われますか?
何回も質問すみませんが、ご指導のほど宜しく御願いします。
No.1
- 回答日時:
Perlもなでしこも「簡単なプログラミング言語」なんかじゃ
全然ないのだが・・・・
Javaあたりだと書籍がでてるか.
「いまどきのプログラム言語の作り方 」(毎コミ)
ただ。。。絶版っぽい雰囲気だな.
Javaだろうがperlだろうが,なでしこであろうが
原理的に「俺様言語」は作れるだろうけども
何にも知らないで作るのは難しいというか
何が難しいのか分からない・何を知らないといけないかも分からない
段階ではほとんど不可能だと思う.
とりあえず「逆ポーランド式の計算」をするプログラムとか
「中置記法の計算式を逆ポーランド式に変換する」プログラムとか
考えてみるといいかもね
実は「中置記法の計算式」を処理するのはかなり厄介.
アドバイスありがとうございます
>何を知らないといけないかも分からない段階ではほとんど不可能だと思う.
ですから、ここで質問させていただいたり、
WEBで調べたり、本を読んだりして勉強しているのですが・・・。
もちろん、なでしこやPerlなどで、それを作ろうとは考えていません。
そして、俺様言語ではなく、最終的には、もっと誰でも使えるようなものを
作れるようになりたいと考えています。
ちなみに、図々しいかもしれませんが、Javaは、個人的に
あまり好きではありませんので・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSでDim、Private、Publicの違い
-
C言語、C+、C++、C#の違い
-
delphi vs c
-
C++における継続行
-
今プログラミングを始めるなら...
-
C言語とhtmlの違いを どな...
-
ゲーム作成
-
COBOLでのNOT = の AND条件
-
昔使っていた言語って覚えてますか
-
C言語習得したいけど本が高い・・
-
今後、プログラマーとして習得...
-
UNITY Float型の接尾辞fって
-
C言語を好きになりたいのでメリ...
-
言語の普及率って重要ですか
-
UWSCはどのプログラミング言語?
-
vbaとc言語の関連性について
-
アラートメール機能を組みたい...
-
プログラムははぜ小文字大文字...
-
C,C++,C#には共通点があるので...
-
Transitional/ENとは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今ってプログラミング言語は何...
-
C言語、C+、C++、C#の違い
-
プログラミング言語について
-
COBOLでのNOT = の AND条件
-
近年誕生したプログラミング言語
-
UNITY Float型の接尾辞fって
-
C言語とhtmlの違いを どな...
-
vbaとc言語の関連性について
-
C++における継続行
-
プログラムに書かれる"%"記号の...
-
COBOLで文字タイプを数字...
-
VBSでDim、Private、Publicの違い
-
TO_CHARで小数点以下がある場合...
-
VBSとWSHは読み方が違うだけで...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
C++ ってなんて読む?
-
UWSCはどのプログラミング言語?
-
会計システムをつくるために必...
おすすめ情報