マジセミドライブ
ウェビナー関連のニュースや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位🏆
【無料で使える】「 マルウェア 」対策ツールまとめ - 🏆ランク2位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク3位🏆
【OSS情報アーカイブ】Asterisk - 🏆ランク4位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク5位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク6位🏆
【AIツール実験室】楽曲作成ツール「 Suno AI 」〜AI生成ミュージックフェス〜 - 🏆ランク7位🏆
【OSS情報アーカイブ】WinSCP - 🏆ランク8位🏆
【AIツール実験室】画像生成AIツール「 Emi 」(前編) - 🏆ランク9位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク10位🏆
【無料で使える】「 RPA 」ツールまとめ
おすすめの記事
ウェビナーまとめ
2024.05.15
経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜
2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。