BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Racket 6.5は改良されたTyped Racket、高速イテレーション、その他の改善をもたらす。

Racket 6.5は改良されたTyped Racket、高速イテレーション、その他の改善をもたらす。

原文(投稿日:2016/05/10)へのリンク

Racketのバージョン6.5に対するRyan Culpepper氏の記事が、Racket blogに公開された。 Racketは、Lisp/Scheme系に属するマルチパラダイム言語である。 新バージョンには、いくつもの新機能が追加されている。 その中には、型付き、型なしのコードインタラクションの性能向上や、ハッシュテーブルやセットに対するより高速なイテレーション、その他の機能が含まれている。

Culpepper氏によると、Racket 6.5では、様々な漸進的型付けプログラムにおいて、型付き、型なしの動作速度が向上している。 これは、Typed Racketとracket/contractライブラリの両方の改善により実現された。 racket/contractは、従来よりオーバーヘッドの少ないコードを生成するようになった。

ハッシュテーブルとセットは、in-hashin-hash-pairsin-mutable-hashそしてin-mutable-setといった関数を使うことにより、より高速にイテレーションを実行する。 Culpepper氏によると、マイクロベンチマークの結果では、従来比で最大100% 高速になっている、とのことである。

さらに、Racketのオプティマイザは、以前よりも多くの最適化条件を捉えることができる。 例えば、変数が常に決まった値を使用している場合は、実行時チェックを省く、などである。

Racket 6.5によってもたらされた、他の変更点は以下の通りである。

  • syntax-parse。マクロ記述や、より良いチェックを行うための文法を決定するための、ドメイン特化言語である。
  • コントラクトは、プロファイラカバレッジが向上し、パフォーマンスも改善された。
  • MySQLのマルチリザルト文のサポートが追加された。

Racketは、LGPLライセンスのもと、リリースされている。 公式のバージョン6.5は、tarballまたはGitHubからダウンロードできる。 Racketの開発目標のひとつは、プログラミング言語の創造、設計、そして実装のためのプラットフォームを提供することである。 Typed Racketは、Racketに対する静的型付け版である。 これは特に、漸進的型付けパラダイム(gradual typing paradigm。型付きコードと型なしコードが共存できる)をサポートしている。

InfoQは、Racket 6.5のアナウンスに関して、Ryan Culpepper氏と対話した。

Racket 6.5がもたらした、漸進的型付けの性能向上について、詳しく話していただけますか? この機能の性能は、どのように測定したのですか?

Asumu Takikawa氏は、彼の学術論文の中で、型付き、型なしのインタラクションを測定するフレームワークを開発しました。 これは、POPL2016の論文"Is Sound Gradual Typing Dead?"にて、解説されています。 これをもとに、Sam Tobin-Hochstadt氏たちが、Type Racketのコントラクト生成を改良しました。 Robby Findler氏は、コントラクトライブラリ自身を改良しました。 この改良において、改善点の発見と影響の調査のため、測定フレームワークを使用しました。 さらに詳しいことは、Takikawa氏の論文に書かれています。

あなたはsyntax-parseの作者です。syntax-parseがRacketのマクロシステムに与えた影響と、これがマクロ記述をどのように助けるのかを説明していただけますか?

syntax-parseは、マクロ作者に対し、文法を宣言的に、モジュール的に記述する方法を与えます。 これには、コンテキストセンシティブなチェックが含まれています。 チェックにより、マクロの不正な利用に対して、適切なエラーメッセージを自動的に生成します。 この機能は、マクロ作者の負担を軽くします。 syntax-parseはさらに、syntax-caseと比較して、表現力のあるパターンやテンプレートをサポートします。 さらに、"attribute" メカニズムは、マクロ作者に対して、文法仕様に基づきマクロのコード生成部品をまとめる機能を提供します。 端的に言えば、syntax-parseは、高品質で堅牢なマクロを書くことを容易にしてくれます。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT