yhara.jp

Recent Posts
Edit

「コンピュータの天才 9つのC言語を操る」

2017-07-14
Tech

とある映画の日本語字幕で、

    コンピュータの天才
    9つのC言語を操る

というものがあるらしい(画像はググってください)。原文はnine conputer languagesらしいので、翻訳者がC言語のことをコンピュータ言語の略だと勘違いしたのだと思われるけど、C言語を知っている人から見ればなかなかに味わい深いフレーズである。

ところで過去には、Perl、Python、PHPの3つの言語がまとめてP言語と呼ばれることがあった。であれば、頭文字がCから始まる言語のことをC言語と呼ぶことも、もしかして可能なのではないだろうか?

9つのC言語を操る

そういうわけで自分の過去のブログ記事を漁って確認したところ、「1行でもプログラムを書いて動かしたことがある」言語で、Cから始まるものがかろうじて9個あることが分かった。やったー。これで筆者も9つのC言語を操る男の仲間入りである。

CrystalはRubyに似た文法を持つ気鋭の静的型言語、ChucKは音楽関係の言語、Chefは料理のレシピみたいにプログラムを書くEsoteric Languageである(自著で紹介するためにHello Worldを書いた)。

その他のC言語

さすがにChef言語のプログラムを書いたことがある人は多くないと思うので、自分も9つのC言語を操ってみたい!という人向けに、どのような言語があるか探してみた。

Wikipediaのプログラミング言語一覧を見ると、最も利用者数が多そうなのはCOBOLである。商用メインフレームで使われる言語というイメージだが、GnuCOBOLという処理系があり、macならbrew install gnu-cobolでインストールできる。

あとはcshだろうか?macならbrew install tcshで入る。

プログラミング言語を探す際は99 Bottles Of Beerというサイトも参考になる。例えばCoqは定理証明の世界で有名な言語だが上の一覧にはない。

Concurrent CleanはHaskellのような非正格な(つまり、遅延評価がデフォルトな)言語である。

Curryは関数型と論理型を合わせた言語らしい

Catは関数型とスタック言語(Forth, Factorとかの)を組み合わせたConcatenative Languageというジャンルの言語で、公式ページの猫が印象的だったのだけど、現在はarchive.orgでしか見られなくなっているようだ。

CLUはRubyの設計に影響を与えた言語の一つで、イテレータなどを参考にしたらしい。そのあたりの話はRubyist Magazineの記事でまつもとさん自身が書かれている。

Camlはたぶん、OCamlの前身だと思われる。OCamlはObjective-Camlの略称なので、オブジェクト機能が入る前はCamlという名前だったのだろう。その頃のソースコードが入手できるかは知らない。

C--はHaskell処理系のGHCが中間表現として使っている言語である。

あとは、CASL, ColdFusion, Curlあたりは名前を聞いたことがあるけど、ほとんど分からない。

まとめ

以上を踏まえて、比較的手軽そうな(?)9個の選び方を考えてみた。最後の一つはお好みで。参考になれば幸いである。


More posts