プロが教える店舗&オフィスのセキュリティ対策術

オリジナルなプログラミング言語を作ってみたいと考えています。
ただ、どうやって作ればいいかがわかりません。
私は、今のところ、Perl、なでしこ等々、簡単なプログラミング言語での
プログラミングしか出来ません。

しかし、プログラミング言語を作ることによって、
プログラミングの勉強にもなると考えているのですが
まずは、簡単なものでもいいので、それらしいものを作るには
何から勉強を始めればいいでしょうか、
又、他の言語を覚える必要はありますか。アドバイスを御願いします。

もしくは、例えば、参考になりそうなWEBサイトや、
書籍等々でも、結構です。宜しく御願いします。

A 回答 (17件中1~10件)

Perlもなでしこも「簡単なプログラミング言語」なんかじゃ


全然ないのだが・・・・

Javaあたりだと書籍がでてるか.
「いまどきのプログラム言語の作り方 」(毎コミ)
ただ。。。絶版っぽい雰囲気だな.

Javaだろうがperlだろうが,なでしこであろうが
原理的に「俺様言語」は作れるだろうけども
何にも知らないで作るのは難しいというか
何が難しいのか分からない・何を知らないといけないかも分からない
段階ではほとんど不可能だと思う.

とりあえず「逆ポーランド式の計算」をするプログラムとか
「中置記法の計算式を逆ポーランド式に変換する」プログラムとか
考えてみるといいかもね
実は「中置記法の計算式」を処理するのはかなり厄介.
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます
>何を知らないといけないかも分からない段階ではほとんど不可能だと思う.
ですから、ここで質問させていただいたり、
WEBで調べたり、本を読んだりして勉強しているのですが・・・。

もちろん、なでしこやPerlなどで、それを作ろうとは考えていません。
そして、俺様言語ではなく、最終的には、もっと誰でも使えるようなものを
作れるようになりたいと考えています。

ちなみに、図々しいかもしれませんが、Javaは、個人的に
あまり好きではありませんので・・・。

お礼日時:2008/07/16 22:20

> しかし、プログラミング言語を作ることによって、


> プログラミングの勉強にもなると考えているのですが

これは事実ですが、但し、プログラミング上級者の言うセリフです。
    • good
    • 0
この回答へのお礼

ありがとうございます。そうですね。
では、どのような勉強をするのが良いと思われますか。

お礼日時:2008/07/16 22:22

>では、どのような勉強をするのが良いと思われますか。


ソフトを1本でも2本でも作ればいいです。
たとえばウェブブラウザなど。
どれだけ大変かわかると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。例えば、ウェブブラウザを作るとして
何から始めるのでしょうか。ブラウザエンジンからですか?
又、どのような言語を使用して作れば良いと思われますか?
なでしこなら、非常に簡単に、IEのエンジンを使った
ウェブブラウザを作ってしまうことが出来ますが。

お礼日時:2008/07/16 22:58

masapiyochan語を作っても、既存の言語を理解することは不可能だと思います。


エスペラントやクリンゴン語を作っても、アイヌ語を話せるようになることはありませんから。


インタプリタやコンパイラを作らずに、言語仕様、文法を作るだけであれば、日本語で良いと思いますけどね。
私も何をしないと行けないのかもわからなければ、作ることは出来ないと思いますが。


インタプリタやコンパイラを作るのは、既存のプログラム言語での作業になると思いますので、
最低1つ、既存のプログラムの文法がわかってないと、新しい言語で作ったプログラムを実際にコンピューターで動かすことはできないと思います。

Perl、PHP、JavaScriptにはHTMLデータ(HTMLだけとは限らないが)を作るためのテンプレートエンジンというのがあるので、
変数、四則計算、ifやループ処理の仕方などは参考になるかも知れません。


> 「いまどきのプログラム言語の作り方 」(毎コミ)
あ、これはなかなか面白そう。

http://risky.cs.inf.shizuoka.ac.jp/
http://risky.cs.inf.shizuoka.ac.jp/?cmd=list
テンプレートエンジンを作るときに参考にさせて頂きました。
アルゴリズム、コンパイラ関連の項目が詳しく、わかりやすいです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
テンプレートエンジンですか。調べてみます。
教えていただいたWEBサイトですが、私には、どこを読めばいいのか
いまいち、良くわからないのですが・・・。すみません。

又、”いまどきのプログラム言語の作り方”は既に販売されていないようですが
何とかして入手して読んでみたいと思うのですが
こんなことを書くと何ですが、Javaではあまり作りたくありません。
Java以外で作ったとしても、役に立つ本でしょうか。

又、どんなプログラミング言語が最適だと思われますか?
何回も質問すみませんが、ご指導のほど宜しく御願いします。

お礼日時:2008/07/16 23:53

http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3% …

何からしなければいけないのかわからないのならば、
まず、こちらを読んで用語や知識、手法を学んでみてください。

参考URL:http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3% …
    • good
    • 0
この回答へのお礼

ありがとうございます。
一応、書いてあることは大体、理解できました。

お礼日時:2008/07/16 23:44

> まずは、簡単なものでもいいので、それらしいものを作るには


> 何から勉強を始めればいいでしょうか、

ANo.1の方が仰っているように、
「逆ポーランド式(後置記法)の計算をするプログラム」や、
「中置記法の計算式を逆ポーランド式に変換するプログラム」なんかを作ってみると良いと思います。

この2つを合わせると、「電卓のプログラム」が完成します。
"32 + 4 × 3 ÷ (2.1 + 3)"というテキストデータを与えると
それを計算してくれるプログラムです。

電卓のプログラムには、プログラミング言語を作る上で必要なものがつまっています(字句解析や構文解析等)。
本質的なところも似ていると思うので、挑戦してみてはいかがでしょうか。
電卓を少し複雑にしたものが、プログラミング言語(を翻訳して、機械語に変換するプログラム)だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
電卓プログラムですか。たしかに、それを作れば勉強にもなりそうですね。
挑戦してみようと思います。
ところで、どのプログラミング言語を利用したら良いと思いますか。
アドバイス御願いします。

お礼日時:2008/07/16 23:55

こんばんは、オリジナルなプログラミング言語を作るとゆうことは、


現在のインテルのCPUより高性能なCPUを作るのと同じ技術、知識と根気が必要です。

まず、プログラミング言語Cなどを完全にマスターする必要があると思います。
1000行、1万行のプログラムを簡単に作れるくらいの技術が必要です。

新しいプログラミング言語をどのツール(言語)で作成するかが問題です。
作成したら自分のプログラミング言語に移植すればいいのです。
つまりプログラミング言語Cは、C自身で書かれている場合があると思います。

コンパイラーが最初にすることは、記述された文字列が文法に合うか、
解析することから始まると思います。
このあたりを理解する必要があると思います。
    • good
    • 0
この回答へのお礼

>コンパイラーが最初にすることは、記述された文字列が文法に合うか、
>解析することから始まると思います。
ヒントをくださって、ありがとうございます。

C言語をマスターする必要がありますか!?
では、道はまだ果てしなく遠いのですね・・・。

ところで、それは、新しいプログラミング言語は、Cで作ると良い。と
言われているのでしょうか?それともCを勉強した上で
別の言語で作れと言われていますか?
私としても、新しい言語は、もちろん勉強したいのですが、
どれが最適かわからないのです。

お礼日時:2008/07/17 02:20

ANo.7です。


これを質問者さんのライフワークとするといいかもしれませんね。

プログラミングにはアルゴリズムとゆうものがあります、
これを習得すると上達が早いと思います。

プログラミングを始めると、アルゴリズムの壁に当たり先へ進めなくなる時があります、
こうゆう時は頭を冷やして休息しましょう、そうするといいアイデアが出てきます。

プログラミング言語ですが、最初は好きなものから取り組んだ方がいいと思います。

http://www5c.biglobe.ne.jp/~ecb/index.html
    • good
    • 0
この回答へのお礼

そうですね、ライフワークにしてみたいです。
アルゴリズムの習得ですね。やってみます。

お礼日時:2008/07/17 14:15

.pptはMicrosoft PowerPointですので、持ってない人も多いかも。

。。
古いデータはHTMLで残ってます。
http://risky.cs.inf.shizuoka.ac.jp/old/compiler2 …
前半が逆ポーランド記法のアルゴリズム、
後半が全体の構文解析のためのアルゴリズムです。

> 電卓づくり
経験があるPerlかなでしこで良いと思います。

> Java
JavaとPerl、なでしこは、文法があまりにも違うので(特にオブジェクト指向の所)
内容は見てみないとわかりませんが、もしかすると大半が参考に出来ないかも知れません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Microsoft Office2003一式を持っていますのでpptも見れます。
電卓づくりは、Perlかなでしこで十分なのですね。
たしかに、Javaと、Perl/なでしこは、文法がかなり違いますよね。
他の、Javaプログラミングの本なら読んだので、違うことはわかるのですが・・・。
やはり、あまり参考になりそうじゃないですか。
いや、これを機会に他のプログラミング言語も
勉強したほうがいいかな。とも思っているのですが。

お礼日時:2008/07/17 13:41

MicroSoft PowerPointは見るためのビューアーは無償配布されています。


http://www.microsoft.com/Downloads/details.aspx? …

「いまどきのプログラム言語の作り方」を持ってますがコレはコード付きで具体的に解説されていて分かりやすいです。
※絶版ですが比較的新しい本なので探せば未だ流通在庫が残ってるかも。
「スモールコンパイラの制作で学ぶプログラムのしくみ」とか
中田育男氏の「コンパイラ」関係の書籍など
プログラム言語を作る為の参考書は探せばたくさんあります。
ただ、実現する為のプロイグラミング言語はC++かせめてJavaが出来ないと厳しいと思います。
Parl、なでしこ しか経験が無いのではサンプリソースが読めないでしょう。
C/C++はVisualStudio2008EEやTurboC++が無償配布されていますし、Javaは無償配布されているJDKとEclipseが使えます。
    • good
    • 0
この回答へのお礼

ありがとうございます
C言語も何時かは勉強しようかと思っていました。
WEBで検索して見てみてもいまいち違いがわからないのですが、
CとC++では、どちらが向いているでしょうか。
また、どちらのほうが、まだ簡単でしょうか

お礼日時:2008/07/17 13:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!