Trans New Technology, Inc.
商品サービス
NetBSD on Nios II
システムフィクサーZ
GommaDof
SenoBee
高速正規化相関サーチエンジン
TransNetwork
TransNumeric
TransDBAction
TransCollaboration
TransHardware
TransGNU
TransEducation
TransDiamonds
会社案内
プレスルーム
IR情報
採用情報
北海亭ブログ
個人情報保護方針
お問い合わせ
サイトマップ
TOP
メモリ効率・実行速度・開発効率を向上させるコードジェネータ
動作環境 以下の環境で動作確認をしています。(すべて x86 のみ対応)
  • Debian Linux 2.6.18-6-686
  • NetBSD 4.0
  • OpenBSD 4.2
  • FreeBSD 6.3
  • MacOS X 10.5.7
  • Windows XP
  • Windows Vista
最新情報 twitterにおいてリリース情報などを発表していく予定です。
http://twitter.com/gommadofjp/
ぜひフォローをお願いします!
TNTの商品サービスについてのお問い合わせは電子メールにて info@trans-nt.comまでお願いいたします。 パンフレットのダウンロードはこちらから

GommaDof

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のメリット

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を入力
GommaDof
3800行超のデータ構造・関数を生成

コードの生成例

生成されるファイル

ソースコードの一部

Address.h Nodes.h Segment.h Address.c 抜粋 Nodes.c 抜粋 Segment.c 抜粋