«前の日記(2005年06月02日) 最新 次の日記(2005年06月04日)» 編集

Matzにっき


2005年06月03日 [長年日記]

_ [言語] The Qu programming language

何ヶ月かに一度、Freshmeat.netをチェックして、 目新しい言語がないかと調べてみることにしている。 「言語おたく」としては当然の行為だ。

で、今回見付けたのが、これ

名前は「きゅー」と読むのだろうか。RubyやPythonより高速だと主張している

言語として目新しいのは、

  • ブロック終端を「;;」で示す。これは新しい発想だ。 慣れると「end」よりも視覚的に「軽い」ので良いかもしれない。 「end if」のような終端や、 pragmaで指定すればtabを使ったインデントによるブロックも使えるが、 その「多様性」はあんまり良くないような気がする。
  • 型の代わりにvalidatorが指定できる。validatorは要するに関数である。 高速化のヒントには使えないが、柔軟な型指定ができる。 定数についてはコンパイル時にvalidatorを呼ぶようだ。
  • switchで分岐に用いるオペレータを明示的に指定できる。 これは10年以上前に石塚さんから強く要求されたのに断ったもの。 Quではわりと文法的にきれいにまとまっている。 ただし、レシーバはswitchで指定した値のようなので、 その点はRubyと違い、使い勝手に影響しそう。
  • QuLightingモジュールによるJITが提供されている。

文法や実装のあちこちにRubyの影響が見える。が、文法には独自の発展が見られるし、 ソースコードは私のものよりも整理されているようだ。今後の楽しみな言語である。

他にも、Slateとかも興味深い。


«前の日記(2005年06月02日) 最新 次の日記(2005年06月04日)» 編集