オリジナルなプログラミング言語を作ってみたいと考えています。
ただ、どうやって作ればいいかがわかりません。
私は、今のところ、Perl、なでしこ等々、簡単なプログラミング言語での
プログラミングしか出来ません。
しかし、プログラミング言語を作ることによって、
プログラミングの勉強にもなると考えているのですが
まずは、簡単なものでもいいので、それらしいものを作るには
何から勉強を始めればいいでしょうか、
又、他の言語を覚える必要はありますか。アドバイスを御願いします。
もしくは、例えば、参考になりそうなWEBサイトや、
書籍等々でも、結構です。宜しく御願いします。
No.1
- 回答日時:
Perlもなでしこも「簡単なプログラミング言語」なんかじゃ
全然ないのだが・・・・
Javaあたりだと書籍がでてるか.
「いまどきのプログラム言語の作り方 」(毎コミ)
ただ。。。絶版っぽい雰囲気だな.
Javaだろうがperlだろうが,なでしこであろうが
原理的に「俺様言語」は作れるだろうけども
何にも知らないで作るのは難しいというか
何が難しいのか分からない・何を知らないといけないかも分からない
段階ではほとんど不可能だと思う.
とりあえず「逆ポーランド式の計算」をするプログラムとか
「中置記法の計算式を逆ポーランド式に変換する」プログラムとか
考えてみるといいかもね
実は「中置記法の計算式」を処理するのはかなり厄介.
アドバイスありがとうございます
>何を知らないといけないかも分からない段階ではほとんど不可能だと思う.
ですから、ここで質問させていただいたり、
WEBで調べたり、本を読んだりして勉強しているのですが・・・。
もちろん、なでしこやPerlなどで、それを作ろうとは考えていません。
そして、俺様言語ではなく、最終的には、もっと誰でも使えるようなものを
作れるようになりたいと考えています。
ちなみに、図々しいかもしれませんが、Javaは、個人的に
あまり好きではありませんので・・・。
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.5
- 回答日時:
何からしなければいけないのかわからないのならば、
まず、こちらを読んで用語や知識、手法を学んでみてください。
参考URL:http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3% …
No.6
- 回答日時:
> まずは、簡単なものでもいいので、それらしいものを作るには
> 何から勉強を始めればいいでしょうか、
ANo.1の方が仰っているように、
「逆ポーランド式(後置記法)の計算をするプログラム」や、
「中置記法の計算式を逆ポーランド式に変換するプログラム」なんかを作ってみると良いと思います。
この2つを合わせると、「電卓のプログラム」が完成します。
"32 + 4 × 3 ÷ (2.1 + 3)"というテキストデータを与えると
それを計算してくれるプログラムです。
電卓のプログラムには、プログラミング言語を作る上で必要なものがつまっています(字句解析や構文解析等)。
本質的なところも似ていると思うので、挑戦してみてはいかがでしょうか。
電卓を少し複雑にしたものが、プログラミング言語(を翻訳して、機械語に変換するプログラム)だと思います。
ありがとうございます。
電卓プログラムですか。たしかに、それを作れば勉強にもなりそうですね。
挑戦してみようと思います。
ところで、どのプログラミング言語を利用したら良いと思いますか。
アドバイス御願いします。
No.7
- 回答日時:
こんばんは、オリジナルなプログラミング言語を作るとゆうことは、
現在のインテルのCPUより高性能なCPUを作るのと同じ技術、知識と根気が必要です。
まず、プログラミング言語Cなどを完全にマスターする必要があると思います。
1000行、1万行のプログラムを簡単に作れるくらいの技術が必要です。
新しいプログラミング言語をどのツール(言語)で作成するかが問題です。
作成したら自分のプログラミング言語に移植すればいいのです。
つまりプログラミング言語Cは、C自身で書かれている場合があると思います。
コンパイラーが最初にすることは、記述された文字列が文法に合うか、
解析することから始まると思います。
このあたりを理解する必要があると思います。
>コンパイラーが最初にすることは、記述された文字列が文法に合うか、
>解析することから始まると思います。
ヒントをくださって、ありがとうございます。
C言語をマスターする必要がありますか!?
では、道はまだ果てしなく遠いのですね・・・。
ところで、それは、新しいプログラミング言語は、Cで作ると良い。と
言われているのでしょうか?それともCを勉強した上で
別の言語で作れと言われていますか?
私としても、新しい言語は、もちろん勉強したいのですが、
どれが最適かわからないのです。
No.8
- 回答日時:
ANo.7です。
これを質問者さんのライフワークとするといいかもしれませんね。
プログラミングにはアルゴリズムとゆうものがあります、
これを習得すると上達が早いと思います。
プログラミングを始めると、アルゴリズムの壁に当たり先へ進めなくなる時があります、
こうゆう時は頭を冷やして休息しましょう、そうするといいアイデアが出てきます。
プログラミング言語ですが、最初は好きなものから取り組んだ方がいいと思います。
http://www5c.biglobe.ne.jp/~ecb/index.html
No.9
- 回答日時:
.pptはMicrosoft PowerPointですので、持ってない人も多いかも。
。。古いデータはHTMLで残ってます。
http://risky.cs.inf.shizuoka.ac.jp/old/compiler2 …
前半が逆ポーランド記法のアルゴリズム、
後半が全体の構文解析のためのアルゴリズムです。
> 電卓づくり
経験があるPerlかなでしこで良いと思います。
> Java
JavaとPerl、なでしこは、文法があまりにも違うので(特にオブジェクト指向の所)
内容は見てみないとわかりませんが、もしかすると大半が参考に出来ないかも知れません。
ありがとうございます。
Microsoft Office2003一式を持っていますのでpptも見れます。
電卓づくりは、Perlかなでしこで十分なのですね。
たしかに、Javaと、Perl/なでしこは、文法がかなり違いますよね。
他の、Javaプログラミングの本なら読んだので、違うことはわかるのですが・・・。
やはり、あまり参考になりそうじゃないですか。
いや、これを機会に他のプログラミング言語も
勉強したほうがいいかな。とも思っているのですが。
No.10
- 回答日時:
MicroSoft PowerPointは見るためのビューアーは無償配布されています。
http://www.microsoft.com/Downloads/details.aspx? …
「いまどきのプログラム言語の作り方」を持ってますがコレはコード付きで具体的に解説されていて分かりやすいです。
※絶版ですが比較的新しい本なので探せば未だ流通在庫が残ってるかも。
「スモールコンパイラの制作で学ぶプログラムのしくみ」とか
中田育男氏の「コンパイラ」関係の書籍など
プログラム言語を作る為の参考書は探せばたくさんあります。
ただ、実現する為のプロイグラミング言語はC++かせめてJavaが出来ないと厳しいと思います。
Parl、なでしこ しか経験が無いのではサンプリソースが読めないでしょう。
C/C++はVisualStudio2008EEやTurboC++が無償配布されていますし、Javaは無償配布されているJDKとEclipseが使えます。
ありがとうございます
C言語も何時かは勉強しようかと思っていました。
WEBで検索して見てみてもいまいち違いがわからないのですが、
CとC++では、どちらが向いているでしょうか。
また、どちらのほうが、まだ簡単でしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- アプリ botの作り方 1 2023/03/23 17:29
- Java プログラミングのプの字も知りませんが、プログラミングを勉強したいです。とりあえず、学ぶものを決めない 3 2022/11/04 13:10
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Windows 10 パソコン得意な人どうやって勉強したか教えてください 13 2022/04/26 00:41
- 法学 コンピューター プログラミングの言語で記述されたプログラミングのコード一式は、作った人に 著作権があ 4 2023/08/04 17:31
- その他(プログラミング・Web制作) プログラミングを勉強してますが、難しくて、中々頭に入りません。 ふと思いましたが、今はサイト作成ツー 12 2022/12/21 19:46
- その他(学校・勉強) 自分の市場価値を高めるには 3 2022/07/12 09:11
- その他(IT・Webサービス) 障害者の将来の仕事について 7 2022/11/20 13:09
- その他(プログラミング・Web制作) ネットで簡単に開発できるプログラミング言語 2 2022/07/26 14:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語って古いですか?
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
擬似コード
-
Int('1234') で、strをかんたん...
-
C言語 解答について。
-
Excelの開発言語ってなんですか?
-
COBOLで文字タイプを数字...
-
UNITY Float型の接尾辞fって
-
プログラミング言語の制作方法...
-
Excel VBAで文字化けする (英語...
-
UWSCはどのプログラミング言語?
-
VBSでDim、Private、Publicの違い
-
VCとVC++
-
VBSとWSHは読み方が違うだけで...
-
C言語でゲーム作り テトリス
-
ホワイトハッカーを目指そうか...
-
C#とC++のざっくりとした違いを...
-
HTMLとC++で、どんなホームペー...
-
プログラムからアイコンファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
プログラムに書かれる"%"記号の...
-
vbaとc言語の関連性について
-
COBOLで文字タイプを数字...
-
TO_CHARで小数点以下がある場合...
-
C言語とhtmlの違いを どな...
-
C++ ってなんて読む?
-
パスカルケースの由来。
-
UNITY Float型の接尾辞fって
-
VBSとWSHは読み方が違うだけで...
-
Excel VBAで文字化けする (英語...
-
C#とC++のざっくりとした違いを...
-
C++における継続行
-
UWSCはどのプログラミング言語?
-
VBSでDim、Private、Publicの違い
-
VCとVC++
-
会計システムをつくるために必...
-
VBScriptで引数を省略したい場合
-
C言語って古いですか?
おすすめ情報