myGroup > myProject
 

デコード / エンコード処理

処理ロジック

umsCodeGenerator は、2種類のロジックのソースコードを生成することができます。 「スレッド処理を行うロジック」と、「スレッド処理を行わないロジック」です。 2つのロジックの特徴は、以下の通りです。

処理ロジック 制御構造を持たないデータ 制御構造を持つデータ
スレッド処理を行う 処理可能 処理可能
スレッド処理を行わない 処理可能 処理不可能
Note
ここで使用する "スレッド" という言葉は、一般に使用される "スレッド" とは異なります。 umsCodeGenerato が生成するソースコードでは、制御構造の処理を実現するために、"状態" を brunch、sleep、awake、sync させます。 それら一連の処理をまとめて、"スレッド" と呼んでいます。

設計メモ:制御構造の取り扱い
設計メモ:制御構造の処理(Java版)
設計メモ:(C言語版)
設計メモ:case ラベルの命名法
設計メモ:例外に関わる辺りの生成コードイメージ

データモデル

umsCodeGenerator が扱うデータは、以下に分類されます。

データ種別 要素
dat bit、byte、data、value のみで構成
list list + dat データ
loop oneOrMore、zeroOrMore、optional + dat データ
interleave interleave + dat データ

umsCodeGenerator が生成するソースコードでは、dat、list、loop、interleave を、 thread クラスの 変数が束ねる形で状態を保持しています。

[参照ファイル]
src/clng/umsDat.h
src/clng/umsDat.c
src/clng/umsList.h
src/clng/umsList.c
src/clng/umsLoop.h
src/clng/umsLoop.c
src/clng/umsInterleave.h
src/clng/umsInterleave.c
src/clng/umsThread.h
src/clng/umsThread.c
src/java/jp/jaxa/isas/ums/runtime/UMSDat.java
src/java/jp/jaxa/isas/ums/runtime/UMSList.java
src/java/jp/jaxa/isas/ums/runtime/UMSLoop.java
src/java/jp/jaxa/isas/ums/runtime/UMSInterleave.java
src/java/jp/jaxa/isas/ums/runtime/UMSThread.java

設計メモ:データモデルの再設計
設計メモ:クラス図

要素ごとの処理

設計メモ(旧版)

  • mapping function 2005062651:mapping function の引数名の仕様変更 (固定)
  • 2005062451: 例と本体の切り分け
  • 2005062452: tableTools と umsCodeGenerator 並存
  • 2005080301: umsCodeGenerator, tableTools の統合
  • 2005072953: もろもろ作業メモ (txt:line タグ、encodingLibrary の新インターフェース。param タグ の設計メモを含む)