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

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

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

ValaはJürg Billeterにより構想され、彼とRaffaele Sandriniにより実装、2006年3月にセルフホスティングコンパイラとして完成した。
Q605962
GObject
MEDIA
Q15777
C言語
Concept
Q2872462
セルフホスティング
Concept
Q47506
コンパイラ
Concept
Q79872
オブジェクト指向言語
Concept
Q2370
C#
MEDIA
Q567612
無名関数
Concept
Q7512726
シグナル
UNK
Q1051282
ジェネリクス
Concept
Q2308807
メモリ管理
Concept
Q471748
例外処理
Concept
Q586459
型推論
Concept
Q3273595
for-each
Concept
Q1444922
ランタイムライブラリ
Concept
Q1862556
オーバーヘッド
UNK
Q605962
GObject オブジェクトシステム
MEDIA
Q178940
gcc
MEDIA
Q47506
コンパイラ
Concept
Q1352761
参照カウント
Concept
Q2407
C++
MEDIA
Q189464
GTK
MEDIA
Q44316
GNOME
MISC
Q2872462
セルフホスティング
Concept
Q1138939
Vala
MEDIA
Q1138939
Vala
MEDIA
Q1138939
Vala
MEDIA
Q1138939
Vala
MEDIA
Q1138939
Vala
MEDIA
Q1138939
Vala
MEDIA
2006-03-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
2006年3月
DATE
influenced by
programming paradigm
influenced by
influenced by
programming language
facet of
facet of
programming paradigm
programming paradigm
named after
programming language
instance of
instance of
programming language
influenced by
programming paradigm
programming paradigm
programming language
programming language
programming language
programming language
GUI toolkit or framework
programming language
programming language
programming language
programming language
programming language
programming language
facet of
facet of
influenced by
programming paradigm
influenced by
influenced by
influenced by
programming paradigm
influenced by
influenced by
influenced by
programming paradigm
influenced by
influenced by
influenced by
programming paradigm
influenced by
influenced by
influenced by
programming paradigm
influenced by
influenced by