• ベストアンサー

Prologについて

C言語とJavaのプログラミングはやったことがあります 春学期からPrologをやるみたいでちょっと自習してみようかと・・・・ Prologをwikiで見てみるとC言語とかJavaとちょっと違った雰囲気があって具体的にどこがどう違うのかが分かりません>< 大雑把でいいので教えていただけませんでしょうか??? あと, コンパイラ等開発環境を色々とそろえたいので参考になるサイト, 書籍などがあれば教えてください><。 できれば入門でw オネガイシマス

質問者が選んだベストアンサー

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

昔の話でうろ覚えなんで、間違ってたらすいません。 > Prologをwikiで見てみるとC言語とかJavaとちょっと違った雰囲気があって具体的にどこがどう違うのかが分かりません>< 後者の手続き型言語というのは、あーしろとかこーしろとかあらかじめ決められた命令を駆使して処理を実現します。 Prologの場合、一階述語論理という難しそうで実は単純な一連の定義によって構成される言語です。 「AはBである」と「AがBならCである」という2種類のデータベースのような論理定義で構成されたもので、実行時には質問を投げかけて回答を得るという処理になります。 たとえば上記例に「AはBですか?」と問えば「Yes」と答えるという具合です。 多少実用的なプログラムだと階乗計算なんかが優れたサンプルとしてよく引用されてますので探してみてください。 > あと, コンパイラ等開発環境を色々とそろえたいので参考になるサイト, 書籍などがあれば教えてください><。 文法(表記方法)に関しては、これも種々あるのですが大きく分けると「エジンバラ版(日本企業なんかではDEC10版が通称みたいです)」と「マルセイユ版」とがあって、日本では政府主導のプロジェクト(ICOT)もあってエジンバラ版が主流です。 エジンバラ版はICOTのホームページから国民の税金で作られたcu-Prologという処理系(UNIX)が入手できます。MS-DOSではむかし「AI-Prolog」という処理系(アセンブラソース付)が本屋さんで市販されていました。 マルセイユ版は昔ボーランドから売られていたTurboProlog(なんとコンパイラです)の文法がそれに近いかも・・・。 「BASICで学ぶPROLOGシステム」という本にはPrologの処理系がBASIC(MS系)で書かれたソースが付いてます。 「AI事典」 ちょっとググッてみると「お気楽 Prolog プログラミング入門」「神戸大学 Prolog ホームページ」というHPが処理系の紹介もしてくれているので参考になるかもしれません。

その他の回答 (1)

回答No.1

Prologって使える人どれくらいいるんでしょうね? 当然、僕も知りません(笑)。 手元の本を見ると次のような事が書いてあります。 Prolog(Programming in Logic)は、人工知能分野でLispと直接競合する言語である。Prologのアプローチは、(その本で紹介されている)どの言語とも根本的に異なる。Prologプログラムは、基本的には解決すべき問題を表すものであり、Prologが組み込みの推論エンジンを使ってそのソリューションを導く。Prologは(他の言語の制御構造に対して)簡単に対応させることができない言語である。他の言語とこれだけ違うという理由だけでも、Prologは十分に知っておく価値のある言語である。 これを読む限り、 >C言語とかJavaとちょっと違った雰囲気があって どころじゃないですね(笑)。「他と全く違う」そうです。 少なくとも、これを見る限りは、 通常のプログラム: 問題がある→解法をプログラムする→答えが出る と言う流れなんですが、Prologの場合、どうやら、 問題がある→「答えを」プログラムする→解法が出る と真逆のプロセスを辿るんじゃないか、って事です。 例えば、もっと具体的に言うと、 2+3は? と尋ねられ、 5 と答えるのが通常のプログラミング言語。 Prologの場合はそうじゃなくって、 2□3=5 と言う「問題と答えが分かってるケースに対して」 + と記号(と言うか「手続き」)を返すような、そんな言語ではなかろうか、と思います。(違っていたら申し訳ないんですが・笑) >コンパイラ等開発環境を色々とそろえたいので参考になるサイト, 書籍などがあれば教えてください 多分、ザーッと見た限り、次のサイトが良いのではないでしょうか? M.Hiroi's Home Page: http://www.geocities.jp/m_hiroi/prolog/ 僕はまるっきりPrologやった事は無いんですが、Common Lispを勉強している時にお世話になったページです。色々な「ヘンでマイナーな(失礼・笑)」言語を分かりやすく説明してくれてると思います。 また、処理系に関してもそちらのページで紹介されています。

関連するQ&A

  • システムエンジニアについて

    Javaなどを勉強する入門書の本や雑誌は何がいいですか? c言語はよく本が理解できなかったので、かなり簡単なプログラミングやソフト開発の本を教えてください!

  • オブジェクト指向のプログラミング言語の勉強法について

    オブジェクト指向のプログラミング言語の勉強法について お尋ねします。 iPhoneアプリを作ってみたいと思い、最近プログラミングの勉強を始め、C言語の入門書を一通り熟読しました。そして、次にオブジェクト指向の言語を勉強しようと思っているのですが、iPhoneアプリの開発に用いる言語は「Objective-C」で、他にも開発に使用できる言語として、「C++」や「Java」などいくつかあると聞き、どれから勉強すればいいのか迷っています。 Objective-CとC++やJavaでは、技術的(表現力?)に大きな差はあるのでしょうか?それとも、Objective-Cだけでも十分なのでしょうか? そのほか、まだC言語を勉強したばかりでわからないことが多いのですが、ゲームアプリの開発にどのような知識が必要なのか、また効率のよい学習順序、お勧めの書籍など助言を頂ければ幸いです(__) ちなみに、 ・プログラミングの経験は全くありません。 ・はじめはシューティングなど動的なゲームアプリを作ろうと思っています。 ・妥協せず、基礎からきちんと勉強したいと思っています。

  • JAVA入門者にお勧めの本

    普段、VBやC(初級~中級程度)のプログラミングをしていますが、どれもWindows用のVisual Studioを使っていますし、移植するのも大変なので、マルチプラットホームに対応しているJAVAを学んでスキルをあげようと思っています。 そこで、JAVAの入門書を探しているのですが、普段別の言語で愛読している「逆引き大全」シリーズのJAVA編は2004年の発行ですし、私の地域の書店を5件ぐらい回っても見つかりませんでした。 JAVAの入門からAWT、Swingのプログラミングまで幅広く学べる初級~中級ぐらいの書籍を探しています。上記の書籍以外に何か入門者がJAVA言語プログラミングについて深い知識を得られるお勧めの書籍はありませんか?

    • ベストアンサー
    • Java
  • プログラミングについて

    プログラミングを今年の四月にはじめたばかりなのでまったくプログラミングの知識がない状態で、大学の3年の授業でJSPをやっているのですが、ほとんどわかりません。(大学には3年次編入で入りました) ちなみにJSPは授業をとらないといけません。 しかし今、一年の授業でC言語を習っていますが、JSPで使うのはJavaなので、C言語をこのまま勉強するべきなのか、それともJavaをやったほうがいいのか迷ってます。プログラミングに関してもっている参考書はやさしいC、明解C言語入門編、 JSP業務アプリケーション短期開発入門です。 何かいい教科書や勉強法、アドバイスがありましたら教えてください。

  • オブジェクト指向プログラミング学習向けのサンプルプログラム

    「これは参考になるよ」というような、 オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか? 言語はDelphiです。 Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です (移植しますので、出来ればCUI、GUIが少ないものが理想です) よろしくお願いいたします。 Delphiにてオブジェクト指向プログラミングを学んでいます。 書籍等で、基本的なことは学びました。 理解度およびスキルを上げるために、実際にプログラミングしたいと思います。 (入門書を利用してや、 自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)

  • PIC用のフリーCコンパイラはありますか?

    PICでプログラムを組みたくて、本屋で 「C言語によるPICプログラミング入門」 を買ってきました。 さて早速取り組もうと思ったのですが、いきなりCコンパイラは有料(高価)であるとのこと・・・T-T そこでフリーのCコンパイラについてご存知の方がいらっしゃいましたら紹介して頂けないでしょうか? 以上よろしくお願いします。

  • C言語より後に開発されたプログラミング言語は

    C言語を基にして開発されたのでしょうか? C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

  • プログラミング入門者の選択すべき言語について

    プログラミング入門者の選択すべき言語について 私はプログラミングを始めようと思っているものです。 始めるにあたってまず考えなければならないのが どの言語でプログラムするかと言うことだと思います。 Cやjavaなどたくさん種類がありますが、 まずどれから始めたらいいのでしょう。 とりあえずは円周率を求めたり 計算のできるアプリケーションを作りたいと思っています。 また、それを作るにあたって必要なソフト?なども教えていただけたらうれしいです。 全くの初心者です。 わかりやすくお願いします。

  • 初級者のプログラミング用コンピューター

    初めまして、 プログラミングの仕事をしていまして、それに適する新しいコンピューターを買います。 プログラミングは、 Cや、 C++, Java言語を使います。 特に、Java言語ではJDK, サクラエディタと使っています。 C、C++言語はMicrosoft Visual C++ 2010 Expressを使っています。 将来的には、Androidアプリの開発をする環境をする予定です。 これらの条件で適したコンピューターを教えていただけますか? よろしく御願いします。

  • CでGUI作成

    プログラミング初心者のものです。現在Cを独学していますが、C言語で、JavaのようなGUIアプリケーションは作れるのでしょうか。入門書にはCUIプログラムしか載っていないので、わかる人教えてください。(コンパイラはBorlandです)