|
Luaと他言語 最後にLuaと他の言語との関係について触れる。 まずCとLuaについて考えてみよう。CとLuaは文法も意味論もまったく異なるが、Luaにとって最重要な言語だ。前述のようにLuaは組み込み用途に優れており、Cに組み込んで使うことによって、アプリケーションに対してC言語にはない柔軟性と拡張性をもたらすことが可能だ。また、逆にLuaの機能を拡張するためにCを使うこともできる。 続いてJavaScriptとの関係だ。「Luaに一番よく似ている言語をあげよ」といわれたら、筆者はきっとJavaScriptをあげるだろう。この2つの言語は出自も使用される領域も違うのだが、まるで兄弟のように似ている。 一番の類似点はJavaScriptでいうオブジェクトとLuaでいうテーブルはほぼ同じもので、両者のオブジェクト指向のアプローチも同じもの(プロトタイプベース)だ。言語としてのJavaScriptを本格的に学んだ人ならば、Luaをすんなり理解できるだろう。 そして最後はSchemeとの関連だ。Luaの作者らは「Luaが進化するにつれ、SchemeはLuaへのインスピレーションの源泉としての重要度を増していった」と述べている。 この2つの言語は見かけこそまったく違うものの、意味的には高い類似を示している。Luaはある意味では「リストの代わりにテーブル、括弧の代わりにキーワードを使ったScheme」ともいえるほどだ(そこが違ったら全然違う!とSchemeファンに怒られるかもしれないが)。 しかしLuaとSchemeの最も重要な類似点は「言語仕様としては最小限のものだけを提供し、その組み合わせで高いレベルの機能を実現する」という設計思想にあると筆者は考えている。
まとめ 本記事では近年注目度を増しているプログラミング言語Luaについてごく簡単に紹介した。Luaはアプリケーションに簡単に組み込める軽量なスクリプト言語であり、言語仕様が極めてクリーンなミニマリズムに貫かれている。 本記事を読んでLuaに興味をもたれた方は、次のステップとして1ページ目で紹介したProgramming in Luaを読み、Luaのさらなる興味深さに触れてもらいたい。ただしWebページで公開されているのはLua 5.0の仕様を基にした第1版のため、最新の仕様に追従した書籍版(Luaの作者らが自費出版している)を入手することをお勧めする。Luaの思想を体現するかのようなミニマルで美しい装丁の本だ。 次回は 次回は、型推論と並列支援機能を持つJVM上の関数型言語「Scala」を取り上げる。11月19日の公開をお楽しみに! |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||

