Sather を試そう


Home
Lisp Scheme
Haskell
Python
Sather
xyzzy
備忘録
ゲストブック
Wiki
サイト内検索

Sather というプログラム言語をご存知でしょうか?
実は紫藤もつい最近まで知りませんでした。

「達人プログラマー」 という本でしきりに Eiffel を薦めるので、 少しかじってみました。それなりに良い感じの言語だと思いましたが、関数型言語マニアの紫藤としては高階関数が 使えないなどの不満がありました。そこで、「達人プログラマー」の付録で紹介されていた Sather を試してみました。この言語は Eiffel に関数型プログラミング言語の特徴を取り入れたもので、高階関数やイテレーターが 使えます。雰囲気はかなり Haskell に近いものです。

超マイナーな言語で、使える OS は Linux などの POSIX に限られますが、紫藤は気に入ったので紹介記事を書いてみました。 Sather の特徴は、

  1. Eiffel と類似の構文を持つオブジェクト指向言語
  2. Eiffel と同様 "契約によるプログラミング" をサポートする。
  3. Eiffel と同様に、いったん C のソースファイルを生成し、それを make する。
  4. 高階関数、イテレーターなど関数型言語の利点を取り入れている。
  5. 実行速度が早い。
の 5 点です。 つまり、さまざまな言語のいいとこどりをした言語で、バグの少ない大規模プログラムを書くために 設計されました。 特に実行速度は優れていて、 C++ プログラムと同等のパフォーマンスを示します。

自分でプログラミング言語を選べる人は試してみてください。
損はしないと思います。(たぶん)

この記事はオブジェクト指向と関数型プログラミングについてのある程度の知識のある人を対象として書かれています。 オブジェクト指向と関数型プログラミングについて知りたい人はまず Pythonを 勉強してください。
Python も勉強して損は無い言語です。(これについては保証します)

目次

  1. Sather vs C++: 実行速度の比較
  2. Sather を インストールする。
  3. Sather を 動かす。
  4. 繰り返しとイテレーター
  5. クラス定義
  6. IO
  7. 抽象クラス
  8. パラメター付クラス
  9. オペレーター
  10. 変更不能クラス
  11. データとしての手続き
  12. 例外
  13. 契約プログラミング
  14. GUI プログラミング
  15. 他言語 (C, Fortran) とのインターフェース

リンク