Vala

Vala
パラダイム マルチパラダイム: 命令型言語, 構造化言語, オブジェクト指向言語
登場時期 2006年 (19年前) (2006)
開発者 Jürg Billeter, Raffaele Sandrini
最新リリース 0.56.17[1]/ 2024年4月19日 (9か月前) (2024-04-19)
型付け 強い静的型付け
影響を受けた言語 C, C++, C#, D, Java, Python
プラットフォーム クロスプラットフォーム
ライセンス LGPL 2.1+
ウェブサイト wiki.gnome.org/Projects/Vala
拡張子 .vala, .vapi
テンプレートを表示

ValaGObjectを利用したC言語のソースコードを生成する、セルフホスティングコンパイラを持つオブジェクト指向言語である。C#に似た構文を持ち、無名関数シグナル、プロパティ、ジェネリクスメモリ管理例外処理型推論、および、for-eachなど、C言語にはない言語仕様を持つ[2]。開発者であるJürg BilleterとRaffaele Sandriniは、これらの機能を特殊なランタイムライブラリなしに小さいオーバーヘッドで、GObject オブジェクトシステムを利用した"生の"C言語の実行環境に取り込むことを目的とした。そのため、Valaはアセンブリや中間言語に直接コンパイルされるのではなく、C言語のソースコードにコンパイルされ、Valaの出力するC言語のソースコードはgccなどの標準的なC言語のコンパイラでコンパイルすることができる[3]

メモリ管理に関して、GObjectシステムは参照カウントを提供する[4]。C言語ではプログラマーが手動で参照の追加や削除を行わなければならないが、Valaでは、直接ポインタを利用せずに言語に備わっている参照型を利用する限り参照カウントの管理は自動で行われる。

ValaからC言語のライブラリを利用するには言語間の接続を定義するvapiファイルを書く必要がある。このような定義を書くことは、特にGObjectをベースにした場合には、C言語のライブラリに対する良いドキュメントとなる。ただしC++のライブラリは利用できない。vapiファイルはGTKを含む大半のGNOMEプラットフォームについて提供されている。

ValaはJürg Billeterにより構想され、彼とRaffaele Sandriniにより実装、2006年3月にセルフホスティングコンパイラとして完成した[5]

  1. ^ Vala - Compiler Using the GObject Type System” (2024年4月19日). 2024年8月20日閲覧。
  2. ^ Vala: high-level programming with less fat - Ars Technica. Retrieved 2011-12-13 1:40PM EST
  3. ^ http://lwn.net/Articles/335966/
  4. ^ https://developer.gnome.org/gobject/stable/gobject-memory.html#gobject-memory-refcount
  5. ^ http://gnomejournal.org/article/80/writing-multimedia-applications-with-vala

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne