
Vala言語を教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOS(Linuxカーネル)の授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Verse(UEFN), Assembler (x64,aarch64).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
- 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happiness LLCのCTOとしてECサイト開発やWeb/SNSマーケティングの業務.2022年6月~現在はアメリカのノースカロライナ州チャペルヒルにあるJapanese Tar Heel, Inc.のCEO兼CTO.
- 最近は自然言語処理AIとイーサリアムに関する有益な情報発信や,Unreal Editor for Fortnite(UEFN)でゲーム開発に従事.
- (AI全般を含む)自然言語処理AIの論文の日本語訳や,AIチャットボット(ChatGPT,Auto-GPT,Gemini(旧Bard)など)の記事を50本以上執筆.アメリカのサンフランシスコ(広義のシリコンバレー)の会社でChatGPT/Geminiを訓練するプロンプトエンジニア・マネージャー・Quality Assurance(QA)の業務委託の経験あり.
- (スマートコントラクトのプログラミングを含む)イーサリアムや仮想通貨全般の記事を200本以上執筆.イギリスのロンドンの会社で仮想通貨の英語の記事を日本語に翻訳する業務委託の経験あり.
- UEFNで10本以上のゲームを開発し,フォートナイト上で公開(Fortnite,Fortnite.GG).
こういった私から学べます.
C言語を独学で習得することは難しいです.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!
独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!
目次
Vala言語とは
Vala言語とは,C言語のコードを生成できるプログラミング言語です.
正確には,Vala言語は,C言語で書かれたアプリケーションやライブラリと異なるApplication Binary Interface(ABI)を使用せず,追加のランタイム要件を課すことなく,現代的な高水準の抽象化を利用します.
また,ValaはGObject型システムを使用し,GNOMEスタックをターゲットとすることを容易にする追加のコード生成ルーチンを備えています.
Valaはネイティブバイナリが必要な他の多くの用途にも利用されます.
Vala言語の公式ドキュメントはこちらです.
Vala言語の特徴は以下になります.
- 独自のコンパイルモデル:「Valaで書く → valac がCコードに変換 → Cコンパイラでネイティブ実行ファイルになる」より,追加の巨大な専用ランタイムを要求せず,C言語で書いたライブラリ/アプリと同じABI感覚で扱えること
- 高級な書き味:クラス/インターフェースなどを使って,C言語より冗長なコードが少なめで書けること(文法はC#言語に近いと言われている)
- GNOMEスタックに強い:GObject型システムを前提にしていて,GTKアプリ開発がしやすいこと
- ネイティブ性能・C言語の資産と相互運用:C言語に落ちるので最終成果物はネイティブで既存Cライブラリも使いやすいこと
Vala言語のおすすめ動画
Vala言語のおすすめ動画は以下になります.
Ubuntu 24.04 LTSにおけるVala言語のインストール
Ubuntu 24.04 LTSにおけるVala言語のインストール方法は以下になります.
|
1 2 3 |
$ sudo apt update $ sudo apt install -y build-essential pkg-config valac $ sudo apt install -y libglib2.0-dev libgee-0.8-dev |
Vala言語でHello Worldを表示するプログラム
Vala言語でHello Worldを表示するプログラムhello_world.valaは以下になります.
|
1 2 3 4 5 6 7 8 |
/* * Author: Hiroyuki Chishiro * License: 2-Clause BSD */ void main() { print ("Hello World!\n"); } |
valaコマンドによる実行結果は以下になります.
Hello Worldが表示されました.
|
1 2 |
$ vala hello_world.vala Hello World! |
Vala言語からC言語のコードを生成する方法
Vala言語からC言語のコードを生成するためには,valacコマンドで-Cオプションを付けて実行します.
|
1 |
$ valac hello_world.vala -C |
上記のコマンドで生成したhello_world.cは以下になります.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* hello_world.c generated by valac 0.56.16, the Vala compiler * generated from hello_world.vala, do not modify */ /* * Author: Hiroyuki Chishiro * License: 2-Clause BSD */ #include <glib.h> #if !defined(VALA_STRICT_C) #if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14) #pragma GCC diagnostic warning "-Wincompatible-pointer-types" #elif defined(__clang__) && (__clang_major__ >= 16) #pragma clang diagnostic ignored "-Wincompatible-function-pointer-types" #pragma clang diagnostic ignored "-Wincompatible-pointer-types" #endif #endif static void _vala_main (void); static void _vala_main (void) { g_print ("Hello World!\n"); } int main (int argc, char ** argv) { _vala_main (); return 0; } |
実行結果は以下になります.
|
1 2 3 |
$ gcc hello_world.c $(pkg-config glib-2.0 --cflags) $(pkg-config glib-2.0 --libs) $ a.out Hello World! |
まとめ
C言語のコードを生成できるプログラミング言語「Vala」を紹介しました.
Vala言語を使うことで,C言語で書かれたコードをうまく活用して開発できることがわかりました.
C言語を独学で習得することは難しいです.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!
独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!
