Generator of memory manager and Database-oriented framework
What is GommaDof ?
GommaDof は拡張BNFから安全で効率のよい様々なデータ構造とそれらを扱うための関数を自動生成するコードジェネレータです。GommaDof を導入することで、ソフトウェア技術者はバグやパフォーマンス低下を生じやすいメモリまわりの煩雑な管理から解放され、開発の本質となる処理の設計・実装に注力できるようになります。
GommaDof はメモリ使用効率が良く、検索速度に優れたデータ構造を生成し、カスタマイズによりコンテナ型データの構造や検索キーを最適化することができます。また、メモリ確保・解放、文字列やTLV(type length value)構造との相互変換など、メモリに対する操作としてよく用いられる必要性の高い関数を生成することができます。拡張BNFの記述を変更するだけで、データ構造と関数を一括して自動生成できるため、開発時の問題の切り分けも容易になり、バグの発生を低減します。また、仕様への追従が早く、Rapid Prototyping に有用で、仕様変更にも柔軟な対応が可能になります。
GommaDof のメリット
- 文字列とデータの相互変換による開発・デバッグコストの低減。
- 効率のよいデータ構造。
- バグ発生を低減。
- メモリ管理が分離されて問題の切り分けが容易に。
- 操作関数の記述が不要。
- 拡張BNFを記述するだけで簡単
→ コスト低減・開発期間短縮 
GommaDof はC言語のソースコードを生成します。他の言語についてはご相談ください。
Why do we need GommaDof ?
開発現場の次のような問題がしばしば発生し、開発の効率が低下し、開発期間・コストの増大につながっています。
- 何度も同じようなメモリ管理のコードを書いている。
- データ構造を変更したら関数も全部作り直し。
- メモリ確保・解放の整合性がとれない。
- 無駄なメモリ操作で性能が上がらない。
- 毎度同じようなコードを書くことに疑問を感じる。
このような問題はGommaDof が解決します!
Where does GommaDof work?
- ネットワーク機器、ルーティングプロトコルの設計・開発
- 各種組込み機器、制御関連部分設計・開発
- エンドユーザ向けソフトウェア、仕様変更が多く発生するソフトウェアの設計・開発
- 短期間での試作・評価
How does GommaDof work?
Address ::= "IPv4" uint8 uint8 uint8 uint8
| "IPv6" uint16 uint16 uint16 uint16 uint16 uint16 uint16 uint16;
Nodes ::= Address*;
Segment ::= "Seg" Address Nodes; -- "Seg" (GW addr) (other nodes)
わずか4行のBNFを入力

3800行超のデータ構造・関数を生成
コードの生成例
ソースコードの一部
Address.h
Nodes.h
Segment.h
Address.c 抜粋
Nodes.c 抜粋
Segment.c 抜粋
|