マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2023.04.26
【OSS情報】C言語代替プログラミング言語「 Odin 」

コンテンツ
【OSS情報】C言語代替プログラミング言語「 Odin 」


Odinの「概要」
「Odin」(オーディン)とは、
「データ指向」かつ「明確な型付け」を備えたオープンソース汎用プログラミング言語です。
「C言語の代替手段」として開発されています。
設計基本原則
・シンプル
・読みやすさ
・スケーラビリティ
・最小限
・直交性の追求
・プログラム=「データを他の形式のデータに変換」
・コード=「アルゴリズムを表現するもの」「型システムではない」
・古いプログラミング言語には「知識と知恵」が埋め込まれている
→odin-lang.org →docs →faq →#what-are-the-guiding-principles-behind-the-design-of-odin
アーキテクチャサポート
・AMD64
・AArch64
・ARM64
・wasm32
→odin-lang.org →docs →faq →#what-architectures-does-odin-support
ユースケース
・システムプログラミング
・ゲーム開発
・リアルタイムアプリケーション開発
・組み込みシステム開発
・WebAssembly開発
・クロスプラットフォーム開発
Odinの「特徴」
最新コンピューター向けにゼロから設計
・SOAデータ型
・配列プログラミング
・その他の機能のサポート
データ指向言語
・オブジェクト指向言語ではない
・メソッドを提供していない
・「データ」と「コード」は別の概念として扱うべきである
・データに「動作」があってはならないと考える
・ユーザーは必要に応じて「仮想プロシージャテーブル」を作成できる
→odin-lang.org →docs →faq →#is-odin-an-object-oriented-language
ハイパフォーマンス
・「メモリレイアウト」「メモリ管理」「カスタムアロケータ」などを低レベルで制御
主要グラフィックスAPI の公式ライブラリを提供
・OpenGL
・Vulkan
・Direct3D11
・Direct3D12
・Metal
・WebGL 1/2 など
手動メモリ管理ベース言語
・Odinプログラマーが「メモリ管理」「追跡管理」を実施する必要がある
・Odinは、暗黙的システムを通じて、メモリ管理を支援
→odin-lang.org →docs →overview →#allocators
「暗黙的数値型変換」は非実装
・Odinは「明示的な変換」を使用する
・移植性が高まる
・言語を単純化できる
→odin-lang.org →docs →faq →#why-does-odin-not-have-implicit-numeric-type-conversions
「暗黙的プロシージャのオーバーロード」は非実装
・暗黙的プロシージャオーバーロードは、スコープシステムを複雑にする
・プロシージャはプロシージャ内でネストできる
「例外処理」は非実装
・制御構造に「例外処理」(try-catch-finally)を結合するとプログラムの理解が複雑になる
・Odinでは「複数の戻り値」を使用して「シンプルなエラー処理」を使用
・エラー値が「どのプロシージャから来たのか?」が明らかになる
→gingerbill.org →article →2018/09/05 →exceptions-and-why-odin-will-never-have-them
Odinの「機能」
言語機能
・UTF-8サポート
・カスタムアロケーター
・コンテキストシステム
・配列プログラミング
・メモリレイアウトの高度な制御
・エンディアン固有の整数型
・map型の実装
・型推論
・複数の戻り値
・ステートメントレベルで切り替え可能な境界チェック など
→odin-lang.org →docs →faq →#what-does-odin-offer-over-other-languages
エディタサポート機能
・Sublime Text
・GNU/Emacs
・Vim など
→github.com →odin-lang →Odin →wiki →Odin-Libs →#editor-support
ライブラリ機能
・「odin-gl_font」:フォントレンダリングをすばやくセットアップ
・「bindgen」:「C言語ヘッダファイル」を「Odinバインディングファイル」に変換
・「odinhttp」:シンプル「Odin http(s)」クライアント
・「mani」:Lua双方向バインディングジェネレーター
・「glcache」:キャッシュされたOpenGL呼び出し など
→github.com →odin-lang →Odin →wiki →Odin-Libs →#libraries
バインディング機能
・「odin-gl」:「Core OpenGL 4.5」のバインディング
・「odin-openssl」:「OpenSSL」のバインディング
・「odin-lua」:「Lua」のバインディング など
→github.com →odin-lang →Odin →wiki →Odin-Libs →#bindings
Odinの「オフィシャルサイト情報」
オフィシャルサイト
GitHubページ
主要開発元
Odinは「Odin開発コミュニティ」が中心となり開発が進められています。
ライセンス情報
Odinのライセンスは「BSD 3-Clause “New” or “Revised” License」です。
詳細について、こちらを参照ください。
→github.com →odin-lang →Odin →LICENSE
動作要件
→odin-lang.org →docs →install →#requirements
インストール
→odin-lang.org →docs →install/
ショーケース
【お知らせ】ITセミナー「マジセミ」のご紹介
「 マジセミ 」では、日々、多くのIT関連セミナーを開催しています。
参加者のみなさまのために「本当に役立つ情報の提供」を目標としています。
また、「 マジセミ 」を通じて、デジタル関連プロダクト(サービス)との「新たな出会いの場」「新たな体験の場」を創造することで、「IT業界の発展」「製造業の発展」「エンジニアの活躍促進」の実現を目指しています。
多くのセミナーの中から「ご自身のスキルやビジネスを強化できるセミナー」を見つけて、ぜひ一度、ご参加ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
ランク1位
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選ランク2位
【無料で使える】「 翻訳 」ツールまとめランク3位
【無料で使える】「 OCR 」ツールまとめランク4位
【無料で使える】「 プロジェクト管理 」ツールまとめランク5位
【OSS情報】AIネイティブ埋め込みデータベース「 Chroma 」ランク6位
【無料オープンソース】「 リモートアクセス 」ツールまとめ5選ランク7位
【AIツール実験室】Gmail効率化ツール「 Gmailリスト出力 くん」
ランク8位
【無料で使える】「 ドキュメント管理 」ツールまとめランク9位
【無料で使える】「 RPA 」ツールまとめランク10位
【無料で使える】「 ファイアウォール 」ソフトウェアまとめ
おすすめの記事

デジタル寺田の3分用語解説
2025.04.21
【デジタル寺田の3分用語解説】 「 動画SEO 」とは?
BtoBマーケティングで注目される「 動画SEO 」について、「視聴維持率やユーザーリアクションを高めるポイント」「YouTube動画検索で上位表示を狙うための動画SEOの基本テクニック」「高品質コンテンツ制作」「先行者優位で第一想起を獲得する戦略」を紹介します。