関数型言語VS論理型言語

僕はプログラマーではないけど、関数型か、論理型かという違いには興味があるつもり。

ずいぶん前に「普通の奴らの上をいけ」という本が発売されました。


この本の中では関数型言語であるLISPが紹介されています。
LISP人工知能用言語としても有名だったのですが、現代でもいろいろ使われているみたいですね。関数型言語としての特徴は、いちいちコンピュータに手続きを教える必要がないので、効率性がいい、という話だったと思います。他にもEmacsLISPを標準で備えているので、この方面からもLISPを使う人がいると思います。(EmacsLispとCommonLispは少し違うみたいですけど。)

こういうサイトも→ http://lyrical.bugyo.tk (「魔法言語 リリカル☆Lisp」さま)

でも調べてみると、Lispの他にも、様々な言語がインターネットの上で頒布されていたりするようです。その一つにAlgol68Genie(GNUプロジェクトで使われる、GPLの基準で配布されている、Algol68)があります。これは手続き言語の祖になった言語のようです。
とりあえず。

この表を見てみますと、Algol58が一番新しいという事でいいのでしょうか。
(引用もと→ http://jmvdveer.home.xs4all.nl/algol68g.pdf この中の表を使わせていただきました。年表はこちらのようです→http://www.softwarepreservation.org/projects/ALGOL/

このAlgolのプロジェクトに参加した、Wirthさんはこんなことを言っています。

Algol60はたくさんの国からの13の専門家の連合によってデザインされました。その目的は、アルゴリスム(プログラムの)についての形式についての共通の表記法を作る事にあり、コンピュータによるアルゴリスムの解釈ばかりではなく、プログラマーによるアルゴリスムについての研究や学習を助ける目的もありました。

http://www.ethoberon.ethz.ch/WirthPubl/ProgInOberonWR.pdf から引用。
(意味は外していないはずですが・・英語理解力が足りなくて><)

いろいろ改良されており、この後Wirthさんは、Algolの子孫とも言えるコンピュータ言語を作り出します。自分でもっとも普及したというPascal、Modula-2,Oberonの設計にも携わるようです。また、PascalからDelphiという言語が生まれる事になります。DelphiWindowsだけで使われるソフトですね(と、ググって調べました笑)

このようにけっこう広い論理型言語・Algolの一族がある訳ですね。

このAlgolの一族はそのまま埋もれるのは惜しいと思いますので、僕はちょこちょこプログラミングを勉強して、普及したいなあと思います。ちょっと今の僕には大きすぎる夢ですけど。


ちなみにAlgolではこういう図もかけるみたいです。

フラクタルみたいな?w (先ほどのAlgol68Genieのマニュアルに出てきます。)

Algol68Genieはコンテキストフリーのようですけど、あまり実用的ではないのでしょうか。

実際、論理型言語を始めるなら、Free Pascal あたりから始めた方がいいのでしょうか。
(このまえ、ダウンロードしたんですけど、そのままです汗。)

正直、関数型言語は扱い方が難しそうですけど、効率良さそうですしね・・(弱気)