KL 言語

KL is the custom language used to define operators in Fabric Engine. KL combines the benefits of high performance languages like C++ with the benefits of dynamic languages like JavaScript and Python. ‘KL’ stands for ‘Kernel Language’ and refers to the scope of the language: writing operators. Kernels are small stateless blocks of code with an entry function. The syntax of KL is similar to the syntax of JavaScript and C.

使い勝手

KLは全てのレベルの開発者 ― とくに動的言語に慣れ親しんだ開発者に使用されることを意図しています。JavaScript や Python のような動的言語が得意な開発者は KL の作法を素早く習得できるでしょう。静的言語が得意な開発者であってもものにするのは容易でしょう。

Dynamic Compilation

Fabric Engine は LLVMコンパイラを統合し、オペレータに使用された KL ソースコードをコンパイルします。 Fabric Engine は、KLソースコードをコンパイルし、動的言語として各オペレータを構築します。 Fabric Engine での作業にあたり特殊なIDEツールを必要としません。開発者は各自、普段使用するエディタを使い続けることができます。アプリケーションは動的コンパイルを使用し、その振舞をそのアプリケーション上から変更していくことができます。

Cross Platform

Fabric Engine applications are completely dynamic and portable across operating systems, CPU architectures and devices. This is because Fabric Engine dynamically compiles KL source code on target, which ensures that there is no compromise on performance. Fabric Engine currently supports all major operating systems on x86 architectures, and support for a wider range of CPU architectures is in development.

パフォーマンス

KL は Cのように強く型付けされた言語であり、したがってコンパイルを通じ同じ手法で最適化がなされます。結果、ネイティブマシンコードは C/C++ でのコードと同等の速度で実行され、それが動的にアプリケーションに統合されています。動的コンパイルの利点は、CPUアーキテクチャに最適なマシンコードが生成されることです。

セキュリティ

Fabric Engine はクライアントからサーバ環境でまで実行可能です。なぜならKL言語は拘束されているので、悪意あるアプリケーションは Fabric Engine を使い実行中のアプリケーションをハイジャック不可能になっています。これにより Fabric Engine はクライアント側でも、オンライン上のウェブサービスサイドでも安全に実行できます。

ドキュメント

KL言語の完全なドキュメントは KL プログラミングガイド あります。