JP2000311090A - 高速コンパイラによる単純プログラム生成方法 - Google Patents

高速コンパイラによる単純プログラム生成方法

Info

Publication number
JP2000311090A
JP2000311090A JP2000074803A JP2000074803A JP2000311090A JP 2000311090 A JP2000311090 A JP 2000311090A JP 2000074803 A JP2000074803 A JP 2000074803A JP 2000074803 A JP2000074803 A JP 2000074803A JP 2000311090 A JP2000311090 A JP 2000311090A
Authority
JP
Japan
Prior art keywords
data
input
output
format
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000074803A
Other languages
English (en)
Inventor
D Allen Michael
ディー アレン マイケル
P Fox Kevin
ピー フォックス ケヴィン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Network Communications Inc
Original Assignee
Fujitsu Network Communications Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Network Communications Inc filed Critical Fujitsu Network Communications Inc
Publication of JP2000311090A publication Critical patent/JP2000311090A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

(57)【要約】 (修正有) 【課題】 動作要件に応じてリアルタイムでアセンブラ
言語プログラムを生成するシステムを提供する。 【解決手段】 入力フォーマット記述子によって記述さ
れるフォーマットの入力データシーケンスを出力フォー
マット記述子によって記述されるフォーマットの出力デ
ータシーケンスへ変換するプログラムが生成される。プ
ログラムは入力データストリームに応じて実行され、入
力データストリームの一部は入力データシーケンスに対
応する。入力及び出力データシーケンスは多数のデータ
型標識からなる。入力データ型標識は転送装置によって
受信されるデータ単位のフィールドに対応し、出力デー
タ型標識は転送装置によって転送されるデータ単位のフ
ィールドに対応してもよい。生成されたプログラムは、
情報フローを通じ通信リンク上に受信されたデータ単位
を第2の通信リンク上での伝送のために変換するためハ
ードウエアプロセッサ上で実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は自動プログラム生成
の分野に関し、更に特定的にはシステム動作中に高速に
アセンブラ言語プログラムを生成する方法に関する。
【0002】
【従来の技術】「プログラム」として知られている命令
のファイルは、マイクロプロセッサ及び/又は特定用途
向け集積回路(ASIC)を含むハードウエア構成要素
の様々なタイプの動作を制御するために使用される。し
ばしば、プログラムは最初はC++又はPASCALと
いった高水準言語で書かれ、次にコンパイラプログラム
によってアセンブラ言語としても知られる低水準言語へ
変換される。アセンブラ言語プログラムの命令は、目標
とされるシステムによって実行される。かかるプログラ
ミングモデルは、概してプログラムが行なうよう設計さ
れた作業を行なうために実行される前に完全に書かれる
か又は生成されることを必要とする。
【0003】しかしながら、幾つかの状況では、プログ
ラムが実行されるシステムが動作を開始する前に完全な
プログラムを与えることが望ましくないか又は可能でな
いことがある。この種類の状況は、例えば、システムに
よって扱われねばならない可能性の数があまりにも多
く、全ての状況を扱うよう設計された完全なプログラム
ファイルが使用できないほど大きくなる場合に生じう
る。この種類の問題を考える他の方法は、特定のプログ
ラム要求が実行時間になるまで知られないことである。
生じうる全ての要件を扱うよう設計されたプログラムは
無駄が多く、変更又は拡大することが困難である。ま
た、プログラムを記憶するために使用されるメモリリソ
ースを保存するためにプログラムのサイズを制限するこ
とが所望であり得る。
【0004】特定のタスクをリアルタイムで実行するよ
う設計された埋込式システムの場合のように、ハードウ
エアリソースが足りないと、プログラムを記憶するため
に使用可能な空間の量を制限しうる。埋込式システム
は、ネットワーク化及び転送装置といった通信システム
において使用される。転送装置は、データユニットをそ
れが受信されたポートから、良く定義されたトポロジー
管理プロトコルに従って、データユニットが再送信され
るポートへ転送する装置である。良く定義されたトポロ
ジー管理プロトコルは、例えば、Border Gateway Proto
col 4 (BGP4)、 Open Shortest Path First (OSPF)、又
は、DVMRP (Distance Vector Multicast Routing
Protocolである。動作中、転送装置は情報フロー毎にル
ーティング及びフォーマット翻訳を実行するために受信
されたデータユニットを変更する。各情報フローは、受
信されたデータユニットの中のヘッダ情報によって、入
力ポートを1つ以上の出力ポートへマッピングすること
であると考慮される。
【0005】転送装置の中で潜在的に処理されねばなら
ないデータユニットの入力フォーマット及び出力フォー
マットの組合せの数は、非常に大きい。従って、データ
ユニットのヘッダフィールドの内容の必要な変更を含
む、入力及び出力フォーマットの全ての可能な組合せを
扱うプログラムは、非常に大きく複雑であり、サポート
及び拡張を困難とし、記憶要件に関しても費用がかか
る。
【0006】更に、典型的なコンパイラ技術は、アセン
ブラ言語プログラムを生成すると共に、多くの最適化を
実行することに重点を置いてきた。これは、コンパイル
の間に費やされる時間を高速且つコンパクトなアセンブ
ラコードと交換する要望から生じた。しかしながら、こ
のアプローチは、システム自体が動作している間に、リ
アルタイムでアセンブラコードを生成する可能性につい
て何ら考慮していない。特に、機能性が「ジャスト・イ
ン・タイム」で、例えば新たな情報フローの受信に応じ
て変更されねばならないとき、既存のコンパイラに基づ
くコードの生成は望ましくないほど遅く、過剰なデータ
ユニットがキューに入り、劣ったパフォーマンスを生じ
させる。
【0007】
【発明が解決しようとする課題】上記の理由により、シ
ステム動作中に決定されるプログラム要件に応じてリア
ルタイムでアセンブラ言語プログラムを生成するシステ
ムを有することが望ましい。システムは、受信と同時に
新たな動作要件を扱うためにアセンブラコードを生成す
るのに十分に高速でなくてはならない。更に、システム
は、転送装置においてデータユニットのフォーマット及
びヘッダ内容の変換及び変更を実行することが可能であ
るプログラムの生成に適用可能であるべきである。
【0008】
【課題を解決するための手段】本発明によれば、多数の
入力フォーマット記述子及び多数の出力フォーマット記
述子を受信する自動プログラム生成用のシステムが提供
される。システムは、入力フォーマット記述子によって
記述されたフォーマットを有する入力データシーケンス
を出力フォーマット記述子によって記述されたフォーマ
ットを有する出力データシーケンスへ変換するためのプ
ログラムを生成する。プログラムは、生成され、ロード
され、次に入力データストリームの受信に応じて実行さ
れ、入力データストリームの一部は入力データシーケン
スに対応する。入力データシーケンス及び出力データシ
ーケンスは、多数のデータ種別標識からなる。
【0009】典型的な実施例では、通信プロトコルスタ
ックの各レイヤは、0以上のフォーマット記述子によっ
て表わされる。周知のプロトコルスタックは、例えば、
IPプロトコルスタック、DECNetプロトコルスタック、及
びAppleTalk(登録商標)プロトコルスタック
を含む。同様に、データユニット中の各フィールドは、
0以上のデータ種別標識によって表わされる。従って、
入力データ種別標識は、転送装置によって受信されたデ
ータユニットのフィールドに対応してもよく、出力デー
タ種別標識は、転送装置によって転送された対応するデ
ータユニットのフィールドに対応してもよい。
【0010】典型的な実施例では、生成されたプログラ
ムは、第1の通信リンク上で受信されたデータユニット
を第2の通信リンク上への送信用の出力データユニット
へ変換するためのハードウエアプロセッサ上で実行され
る。プログラムの生成及びロードは、特定の情報フロー
のための初期データユニットの受信によってトリガされ
うる。生成されたプログラムは、特定の情報フローに適
当であるよう、例えば、周知のEthernetフォーマットの
受信されたデータユニットを、同様に周知のATMを通じ
たIPフォーマットへ、又はその逆に変換する。
【0011】このように、システム動作中に決定される
プログラム要件に応じてリアルタイムでアセンブラ言語
プログラムを生成するシステムが提供される。システム
は、受信時に新たな動作要件を扱うためにアセンブラコ
ードを生成するのに十分に高速である。更に、システム
は、データユニットのフォーマット及びヘッダ内容の変
換及び変更を実行することが可能であるプログラムの生
成に非常によく適している。
【0012】
【発明の実施の形態】本発明は、図面を参照して以下の
説明を読むことによって、よりよく理解されよう。図1
は、本発明によるシステムが実施されうる動作的な環境
の例を示す図である。図1は、夫々の通信リンク16に
接続された多数のポート14を含む転送装置10を示す
図である。転送装置10は、マイクロプロセッサ22及
びメモリ24以外に更に転送エンジン12を含む。
【0013】図1に示される要素の動作中、データ単位
は様々なポート16から受信され、転送エンジン12を
通じて他のポート16へ転送される。受信されたデータ
単位の処理中、転送装置10は、インターネットプロト
コルバージョン4ルーティング(IPv4ルーティン
グ)、ブリッジング、フィルタリングを含む或るインタ
ーネット接続転送機能を実行する。更に、転送装置10
はEthernetデータ単位と非同期転送モードを通じたイン
ターネットプロトコル(IPoATM)データ単位との間の変
換といったデータ単位フォーマット変換を実行する。
【0014】図2は、変更エンジン38に関連して動作
する高速コンパイラ30を示す図である。図2に示され
る要素の動作中、高速コンパイラ30は、例えばMot
orola Power PC(登録商標)又はAMD 29
030からなる図1に示されるプロセッサ22上で実行す
る。高速コンパイラ30は、変更エンジン38によって
実行されるアセンブラ言語プログラム36を生成する。
変更エンジン38は、例えば、出力データストリーム4
2を生成するために入力データストリーム40上でリア
ルタイムに変更を実行するよう設計されたASICであ
る。図2の実施例では、高速コンパイラ30の入力は、
一連の入力フォーマット記述子32及び一連の出力フォ
ーマット記述子34を含む。通信プロトコルスタックの
各レイヤは、0又はそれ以上のフォーマット記述子によ
って表わされ、一連の入力フォーマット記述子及び一連
の出力フォーマット記述子の中の記述子は、プロトコル
スタックのレイヤと同じ順序で順序づけられることが保
証される。
【0015】入力フォーマット記述子32は入力データ
ストリーム40のフォーマットを記述し、出力フォーマ
ット記述子34は出力データストリーム42のフォーマ
ットを記述する。入力データストリーム40及び出力デ
ータストリーム42は所定のデータシーケンスのストリ
ングからなり、各データシーケンスは入力及び出力フォ
ーマット記述子が形成されるフォーマット記述子のうち
の1つに対応する。アセンブラ言語プログラム36が変
更エンジン38によって実行されるとき、入力データス
トリーム40は、一連の出力フォーマット記述子34に
よって指定されるように、出力データストリーム42の
フォーマットへ変更される。
【0016】図2の例では、フォーマット記述子A,
B,C及びDは、夫々データシーケンスaaa,b,c
c及びdに対応する。従って、一連の入力フォーマット
記述子ABC及び一連の出力フォーマット記述子BD
は、高速コンパイラ30に対してaaabccの入力デ
ータストリームをbdの出力データストリームへ変換さ
せる変更エンジン38のアセンブラ言語のプログラム3
6を生成させる。入力フォーマット記述子と出力フォー
マット記述子との間の関係は、0以上対0以上である。
例えば、入力フォーマット記述子ABに対応するデータ
シーケンスは、図2の例における出力フォーマット記述
子Bに対応するデータシーケンスによって置換される。
【0017】図2の実施例では、データシーケンスaa
a,b等はデータ種別標識であり、値の標識ではない。
従って、aが単一の整数の文字型であり、bが英数文字
を示し、「123a」及び「888z」は共に文「aa
ab」によって正確に記述されるデータストリームとな
る。
【0018】図3は、夫々入力フォーマット記述子及び
出力フォーマット記述子に対応する単語オブジェクトW
c50及びトランスレータオブジェクトTA52を、高速
コンパイラ30の実行中に具体化された状態で示す図で
ある。以下に説明されるように、高速コンパイラ30
は、フォーマット記述子の数を変化させることなく導出
型情報を決定するために多様型呼び戻し方法を用い、ま
たコンパイラの状態を記録し後に出力フォーマット記述
子を評価するためにインテリジェントデータオブジェク
トを用いることによって、高速コンパイルを達成する。
【0019】以下、多様型呼び戻し方法について説明す
る。
【0020】高速コンパイラ30は、一連の入力フォー
マット記述子及び一連の出力フォーマット記述子の中の
フォーマット記述子の夫々に対応する基本型単語を有す
るオブジェクトを具体化する。図3は、基本型単語のオ
ブジェクトの例を単語オブジェクトWC50として示す
図である。一連の入力フォーマット記述子を処理するた
め、高速コンパイラ30は、一連の入力フォーマット記
述子の中の各フォーマット記述子についてのトランスレ
ータの基本型を有するオブジェクト、例えばトランスレ
ータオブジェクトT52を具体化する。各トランスレ
ータオブジェクトは、一連の入力フォーマット記述子の
中の全ての可能なフォーマット記述子を解釈することが
可能な解釈方法を有する。高速コンパイラ30の設計
は、全ての単語オブジェクトが共通の単語基本型から導
出され、全てのトランスレータオブジェクトが共通のト
ランスレータ基本型から導出されることを提供する。こ
の設計は、高速コンパイラ30が共通の単語基本型を通
じて各フォーマット記述子を取り扱い、高速コンパイラ
30が特定のフォーマット記述子又はそれらの関連する
導出型のトランスレータについて知る必要をなくすこと
を可能とする。
【0021】トランスレータオブジェクトが特定のフォ
ーマット記述子に対する正しい解釈方法を呼び出すため
には、対応する単語オブジェクトの導出型を決定せねば
ならない。このための、例えばC++実行時環境におい
て提供される実行時型情報(RTTI)機構といった従
来の機構を用いることは、可能な入力フォーマット記述
子の数の半分に比例する動作数を必要とする。例えば、
高速コンパイラ30が30の入力単語を理解すれば、各
単語オブジェクトの導出型を決定するために、平均で1
5のRTTI変換及び比較が必要とされる。
【0022】これを回避するため、高速コンパイラ30
は高速RTTIを提供するため、単語基本型及びトラン
スレータ基本型において多様型呼び出し方法を用いる。
高速コンパイラ30は、トランスレータ基本型の各導出
型のための特定のインタープリターを提供する単語基本
型を有する導出型を定義する。このアーキテクチャを用
いて、高速コンパイラ30が基本型の単語を有する単語
オブジェクト上でトランスレータオブジェクト内で導出
型測定インタープリターを呼び出すと、ただ1つの追加
的な関数呼び出しが必要とされ、比較は必要とされな
い。従って、このアクションに対する計算的な要件は、
高速コンパイラ及び高速コンパイラによって用いられる
トランスレータによって理解されるフォーマット記述子
の数が増加しても変化しない。
【0023】図3は、単語オブジェクトWC50及びト
ランスレータオブジェクトTA52を、高速コンパイラ
30の実行中に具体化されたものとして示す図である。
図3中に図示される高速コンパイラは、WC50及びTA
52の導出型には気づかないが、それらが夫々単語オブ
ジェクト及びトランスレータオブジェクトであることに
は気づく。従って、高速コンパイラ30が使用可能なの
は、 W::Interp() 及び T::Interp() である。
【0024】図3の例では、高速コンパイラ30は方法
呼出しTA::Interp(Wc)を実行する必要がある。従って、
高速コンパイラ30は使用可能な型情報を用いて、高速
コンパイラ30はW::Interp(T)を呼び出す。しかしなが
ら、W::Interp()は多様型であるため、呼び出される実
際の方法はWC::Interp(T)である。同様に、Tは、TA::In
terp(Wc)を呼び出すことにより(ここで完全に型付きと
された)単語オブジェクトWC50を解釈する。
【0025】以下、インテリジェントトランスレータオ
ブジェクトについて説明する。
【0026】高速コンパイラ30は、一連の入力フォー
マット記述子及び一連の出力フォーマット記述子の両方
を検査せねばならず、入力データストリームを出力デー
タストリームへ変換するためにどのアセンブラコードが
生成されねばならないかを決定するために、入力フォー
マット記述子と出力フォーマット記述子とを比較する。
これらの比較は、各入力/出力フォーマット記述子の組
合せに対してとられるべき異なるアクションがありうる
ため、非常に計算集約的である可能性がある。入力フォ
ーマット記述子と出力フォーマット記述子との間では多
対1又は1対多の関係を有することが可能であるため、
組合せの数は比較的高い。
【0027】これらの比較を行うために必要とされる計
算量を制限するため、高速コンパイラ30は単語オブジ
ェクト及びトランスレータオブジェクトの型情報を各比
較点においてなされねばならない意思決定(デシジョ
ン)のための基底として用いる。これを容易とするた
め、各単語オブジェクトは各導出トランスレータ型のた
めのインタープリターを有し、各トランスレータオブジ
ェクトは各導出単語型のためのインタープリターを有す
る。
【0028】高速コンパイラ30はまず、ここでは初期
インタープリターと称されるトランスレータオブジェク
トのインタープリターを、上記の多様型呼出し方法の説
明において説明されるように、一連の入力フォーマット
記述子の中のフォーマット記述子に対応する各単語オブ
ジェクトへ適用する。解釈の順序はデータフローの順序
と同じであり、従って、フォーマット記述子Aがデータ
の最初を記述し及びフォーマット記述子Bがデータの最
後を記述する場合、トランスレータはまずAを解釈し、
次にBを解釈する。トランスレータTIは各単語オブジ
ェクトに対して適用されるため、TIの単語型特定イン
タープリターはその導出単語型に適した動作を実行す
る。そのアクションは典型的には、一連の出力フォーマ
ット記述子の中のフォーマット記述子に関連付けられた
単語オブジェクトを評価するときに使用される異なるト
ランスレータ型のインスタンスを記録することである。
しかしながら、トランスレータのインタープリターは、
何もしないか、又は後に他のトランスレータ又は高速コ
ンパイラ30自体によって使用されるために高速コンパ
イラ30の中に幾らかの情報を記録しうる。
【0029】この時点において、高速コンパイラ30は
出力データフローを記述するフォーマット記述子に関連
付けられた単語オブジェクトを解釈するために使用され
るトランスレータオブジェクトの順序リストを有する。
入力フォーマット記述子と出力フォーマット記述子との
間に1対1写像がある場合、各トランスレータオブジェ
クトは1つの単語オブジェクトを解釈した後に放棄され
る。多対1写像では、トランスレータオブジェクトは全
く解釈を行わずに放棄されえ、1対多写像シナリオで
は、単一のトランスレータオブジェクトは放棄される前
に多くの単語オブジェクトを解釈しうる。幾つの単語オ
ブジェクトを解釈し各解釈が何を意味するかを決定する
論理は、各トランスレータオブジェクトの中にプログラ
ムされる。従って、高速コンパイラは全ての可能な変換
要求を扱うよう構成されうる。インタープリターの選択
はオブジェクト型に基づき、使用可能なオブジェクト指
向実行時モデルによって効率的に取り扱われ、各インタ
ープリターは個々にプログラムされうるため、高速コン
パイラ30は速度を犠牲とすることなく柔軟性を提供す
る。
【0030】図4乃至6は、本発明によるシステムの動
作を図2に示される一連の入力フォーマット記述子及び
一連の出力フォーマット記述子を参照して示す図であ
る。単語オブジェクト60,62,64は、図2の入力
フォーマット記述子32に対応し、単語オブジェクト6
6,68は図2の入力フォーマット記述子34に対応す
る。図4乃至6に図示される要素の動作中、高速コンパ
イラ30はその初期トランスレータTI66を一連の入
力フォーマット記述子の中のフォーマット記述子に対応
する各単語オブジェクトへ適用する。TIのインタープ
リター67は、出会った各ワードオブジェクトに対して
新しいトランスレータを生成し記憶するよう設計され
る。
【0031】例として、本例では各入力フォーマット記
述子に対して取りうる可能なアクションがある。従っ
て、3つのトランスレータオブジェクトTA70、TB
2、T C74が生成され、記憶される。このようにし
て、3つのトランスレータオブジェクトは初期トランス
レータTI66によって記録されると言われる。他のシ
ナリオでは、単語オブジェクトWA60に対応する入力
フォーマット記述子が、一連の出力フォーマット記述子
の中のどのフォーマット記述子へ写像されるかにかかわ
らず、アクションを開始しないことが知られていると
き、TI::Interp(WA)はTA70を生成しない。
【0032】図6に示されるように、高速コンパイラ3
0は次に3つのトランスレータ70,72,74を、一
連の出力フォーマット記述子の中のフォーマット記述子
に対応する単語オブジェクトへ適用する。一連の入力フ
ォーマット記述子のためのオブジェクトWA60及びWB
60は、一連の出力フォーマット記述子のためのオブジ
ェクトWB66へ写像するため、TAがWB66を解釈す
るとき、アクションは取られない。ステップ80におい
て、TB72はフォーマット記述子ABに対応するフォ
ーマットを有するデータをフォーマット記述子Bによっ
て記述されるフォーマットを有するデータへ変換するた
めのアセンブラコードを生成する。同様に、ステップ8
2において、TCはフォーマットCを有するデータをフ
ォーマットDへ変換するためのコードを生成する。一旦
全てのトランスレータが実行されると、高速コンパイラ
30はアセンブラプログラムのフラグメントを完全なプ
ログラムへ連結する。
【0033】以下、例示的な転送装置に基づく実施例に
ついて説明する。
【0034】図7乃至10は、転送装置についての本発
明のシステムの例示的な実施例を示す図である。図7乃
至10の実施例では、図1乃至6の高速コンパイラ30
は変更エンジンマネージャとして実施され、MMと称さ
れることもある。MMは、図2に示される変更エンジン
38に対応する図7に示される変更エンジン(ME)3
8のためのプログラムを生成することを目的とする。生
成されたプログラムは、実行されると、MEに対して図
7乃至10の関連して「フレーム」と称される受信され
たデータ単位40に対する変更を行わせる。これに関し
てME38によって実行された変更は、IPv4ルーティン
グ、ブリッジング、及びフィルタリングを含むインター
ネット接続転送をサポートするために提供される。ME
は更に、EthernetからIPoATMフォーマットへの変換及び
その逆を含むフレームフォーマット変換(媒体カプセル
化変換)に対するサポートを提供する。
【0035】MMは、以下のように3つの段階で動作す
る。図7乃至10の例示的な実施例では、「デシジョ
ン」は図1乃至6のフォーマット記述子と類似し、「イ
ン・フロー」は一連の入力フォーマット記述子と類似
し、「アウト・フロー」は一連の出力フォーマット記述
子と類似する。従って、ユニキャスト状況では、ステッ
プ1,2,3を実行する。
【0036】ステップ1は、イン・フロー走査及びアク
ション決定を行う段階である。イン・フローに対する各
デシジョンが解析され、アウト・フロー走査中の使用の
ための適当なアクションが記録される。アウト・フロー
に対するそのアクションの実行中に必要とされるイン・
フローデシジョンにおいて存在する情報は、アクション
の中に記憶される。
【0037】ステップ2は、アウト・フロー走査及びア
クション決定を行う段階である。アウト・フローに対す
る各デシジョンが解析され、対応するイン・フローデシ
ジョンによって記録されたアクションが実行される。ア
クションの実行は、マイクロプログラム及び関連するパ
ラメータデータの両方のインクリメンタル構成をもたら
す。
【0038】ステップ3は、MEプログラミングを行う
段階である。新たに構成されたマイクロプログラム及び
パラメータデータはMEのメモリ中に書き込まれ、ME
はそれらに気づかされる。
【0039】MMは、一組のアクションオブジェクトを
含む。アクションオブジェクトは、図1乃至6で説明さ
れたトランスレータオブジェクトを実現したものであ
る。アクションオブジェクトは、受信されたフレーム4
0の中の多数のプロトコルスタックレイヤ特定ヘッダ1
06,108,110に対して特定的且つ個別的に動作
する抽象をサポートする。これらのアクションオブジェ
クトに関連付けられたアセンブリコードマイクロプログ
ラム100,102,104の実行を通じて、MEはフ
レームヘッダを転送関数及び媒体カプセル化変換の様々
な組合せのために変更しうる。
【0040】MMは、「フレームストリーム」と称され
る特定的な情報フローに対するフレーム変更を実行する
ためにME38をプログラムする。MMは、3つのオブ
ジェクト型、即ちアクションオブジェクト、ビジターオ
ブジェクト、及びコレクターオブジェクトの周囲に構築
される。これらのオブジェクトを用いて、MMはまずフ
レームストリームに対応する多数のデシジョンを検査
し、フレームストリームの受信されたフレーム40を処
理するのに必要なアクションオブジェクトを形成し記録
する。MMは次にこれらのアクションオブジェクトを各
フローの出力フローに対するアウト・フローデシジョン
に対して適用し、フレームを入力フォーマットからフレ
ームヘッダ112,114,116を含む出力フレーム
42のような所望の出力フォーマットへ変形しうるME
プログラムを形成する。
【0041】以下、ビジター(visitor)について説明
する。ビジターは、イン・フロー及びアウト・フローデ
シジョン解析を実行する機構である。ビジターオブジェ
クトは、例えば、1995年にAddison-Wesleyより出版
されたErich Gamma, RichardHelm, Ralph Johnson 及び
John Vlissidesによる"Design Patterns- Elementsof R
eusable Object-Oriented Software"の第331乃至3
43頁において、ビジターについて記載されるテンプレ
ートに基づいてモデル化されうる。ビジターオブジェク
トは、フローの中の各デシジョンに対して型に依存する
方法を実行し、これはイン・ビジター(in-visitor)が
効率的なアクション選択を実行することを可能とする。
デシジョン解析を実行することに加え、ビジターは同じ
イン・フロー又はアウト・フローに対する異なるデシジ
ョンの間で状態情報を維持する。イン・フロー及びアウ
ト・フローのデシジョン解析について、別の機能性を与
えるため、別個のビジターが用いられる。
【0042】以下、コレクター(collector)について
説明する。
【0043】イン・フロー走査中のアクションを記録
し、アウト・フロー走査中のプログラム命令及びパラメ
ータを記録する機構は、コレクターオブジェクトであ
る。一旦イン・フロー及びアウト・フロー走査が実行さ
れると、結果としての情報はMEプログラミングにおい
て使用されるコレクターから抽出される。ビジターがフ
ロー走査においてデシジョン解析とデシジョン解析との
間で状態情報を維持するのに対して、コレクターはイン
・フロー走査及びアウト・フロー走査間、及びフロー走
査からMEプログラミングの間で状態情報を維持する。
【0044】図8に示されるように、イン・フロービジ
ター122は、デシジョン解析中にコレクターオブジェ
クト120を伴う。イン・フロー走査中に記録される情
報はアクションオブジェクト123であり、従ってコレ
クターオブジェクト120はアクションオブジェクト1
23がイン・フローデシジョン走査中に記録される場所
である。
【0045】アウト・フロービジター124は、デシジ
ョン解析中に同じコレクターオブジェクト120を伴
う。アウト・フロービジター124は、実行するべきア
クションを、コレクターオブジェクト12−の記録され
たアクション123から得る。アクション実行の生成物
は、プログラムのフラグメント125及びパラメータ1
27である。図8に示されるように、フラグメント12
5はコレクター120の中に記録される。
【0046】以下、アクションについて説明する。
【0047】アクション123は、MMの意思決定者で
ある。MMは、2つの種類のアクション、即ち、転送ア
クション及び翻訳アクションを用いる。アクションは、
イン・フローデシジョンスタック126及びアウト・フ
ローデシジョンスタック134の中の同じ階層における
デシジョンに対して動作するよう意図される。従って、
イン・フローデシジョンスタック126上にレイヤ3の
デシジョン130のために記録されたアクションは、ア
ウト・フローデシジョンスタック134上のレイヤ3の
デシジョン136に対して実行される。アウト・ビジタ
ー(Out-Visitor)は、アクションを実行する責任があ
るが、アクションはそれ自体をアウト・フローデシジョ
ンと同期させる責任がある。アクション実行のための機
構は、即時実行及び存続実行である。
【0048】アクションは、イン・ビジター122がイ
ン・フローのうちの1つを解析し、幾つかのアクション
が行われねばならないことを決定したときに形成され
る。イン・ビジター122は次に、そのデシジョンに適
当なアクションを形成する。アクションが形成される
と、後に、アクションの実行中に必要とされるイン・フ
ローデシジョンに関する情報を記録する。
【0049】アクションは、アウト・ビジターデシジョ
ン解析中に実行される。アクション実行の結果は、アク
ションが実行されるアウト・フローの文脈に依存して、
そのホスト・ビジター(アウト・ビジター124)の中
の幾つかの状態を変更すること、後のMEプログラミン
グのためにマイクロプログラムのフラグメント125を
記録すること、又は何もしないことのいずれかでありう
る。
【0050】以下、イン・フロー走査及びアクション決
定について説明する。イン・フロー走査及びアクション
決定は、イン・ビジター122がイン・フローデシジョ
ン126の各デシジョンを上から下へ解釈する過程であ
る。各デシジョンが訪問されると、そのデシジョン型の
ためのビジターインタープリター方法は何が行われるべ
きか決定する。殆どの場合、これはアウト・ビジターオ
ブジェクト124によって使用されるためのアクション
オブジェクトを記録することである。
【0051】イン・ビジター122がどのアクションを
行うか決定できない場合、イン・ビジター122はアク
ションの記録を次のデシジョン解析まで延期し、今回の
アクション決定を容易とするよう内部状態を維持しう
る。
【0052】例えば、図9に図示されるような、Ethern
etからLLC-Encapsulated Classic Internet Protocol
(CLIP)のIPv4ルーティングの場合を考える。ステップ
1−146において、イン・ビジター122はイン・フ
ローデシジョンスタック140を走査するよう送信され
る。この時点においてアクションは記録されておらず、
従ってコレクター120は空である。ステップ2−14
8において、イン・ビジター122は転送デシジョン、
この場合IPv4ルーティングデシジョン142を解釈す
る。ForwardRouteIPv4アクションオブジェクト160
は、ステップ3−150においてコレクターオブジェク
ト120の中に記録される。次に、IPv4デシジョン14
4が訪問され解釈される。ステップ5−154におい
て、IPv4の結果としてプログラム命令又はパラメータデ
ータは記録されない。ステップ6−156において、Et
hernetデシジョン145が訪問され解釈される。Ethern
etデシジョンのMACアドレス情報が記されるTranslat
eEnetアクションオブジェクト162は、ステップ7−
158においてコレクター120の中に記憶される。
【0053】以下、アウト・フロー走査及びアクション
実行について説明する。図10に示されるように、アウ
ト・フロー走査は、アウト・フローに対する各デシジョ
ンが一番上から訪問され解釈されるという点で、イン・
フロー走査と同様である。しかしながら、アウト・フロ
ー走査中、イン・フロー走査中に記録されたアクション
はアウト・フローデシジョンに対して実行される。
【0054】ただ1つのイン・フローデシジョンからは
どのアクションを形成するかを決定することが可能でな
いことがあるイン・フローの場合と同様に、ただ1つの
アウト・フローデシジョンを解析することによってはア
クションは何がなされるべきかを決定することが可能で
ないことがある。アクションがアウト・フローデシジョ
ンに対して実行され、正しい結果が決定されなければ、
アクションは次のデシジョンが検査されるときに用いら
れる状態を記録し、ホストビジターオブジェクトに対し
てそれを存続させるよう告げる。ビジターオブジェクト
は、アクションが完了したと示すまで各続くデシジョン
に対してアクションを与え続ける。
【0055】アクションは、それらが記録された順序で
実行される(FIFO)。一旦アクションが実行される
と、このアクションは存続するよう合図された場合を除
き、削除される。幾つかのアクションは実行するための
デシジョンを必要とせず、ForwardRouteIPv4160のよ
うに直ぐに実行されうる。他のアクションは、Dot2Snap
デシジョンに対して与えられるTranslateEnetの場合の
ように、1つ以上のアウト・フローデシジョンが実行を
終了することを検査する必要がありうる。ここではTran
slateEnetデシジョンは、EthernetからVC多重化へ又はE
thernetからLLCカプセル化へ翻訳するかどうかを決定す
る続くデシジョンを見る必要がある。そして幾つかのア
クションは、Ethernetデシジョン上で動作するTranslat
eEnetのように、インフローデシジョンとアウト・フロ
ーデシジョンとの間で1対1の関係を有する。
【0056】図10中、やはり幾つかのコレクターオブ
ジェクト120が図示されているが、ここではコレクタ
ーのマイクロプログラム収容部117及びパラメータデ
ータ収容部179も示されている。ステップ1−170
において、ForwardRoutIPv4アクションが実行され、こ
れは即時実行のためにタグ付けされ、アウト・フローデ
シジョン上で実行される必要はない。この結果、IPv4Ro
utingマイクロプログラムフラグメント172が記録さ
れるが、パラメータは記録されない。ForwardRoutIPv4
アクション160は、これが完了したことを示し、コレ
クター120はこれを削除する。
【0057】ステップ2−176において、TranslateE
netアクション162は即時実行のためにタグ付けされ
ておらず、次のアウト・フローデシジョン(第1のデシ
ジョンでもある)上でIPv4デシジョン174が実行され
る。何らのアクションは取られないが、TranslateEnet
162は存続すべきであることを示し、従って削除され
ない。
【0058】ステップ3−180において、TranslateE
netアクション162は再び次のアウト・フローデシジ
ョン上で実行され、これは今回はSaDecisionDot2Snapデ
シジョン178である。TranslateEnet162は、入力
フレームのDLL(データリンクレイヤ)ヘッダを削除
し、IEEE 802.2 SNAP LCCを追加する(DLLのMAC
サブレイヤはまだこの時点で不定であることに注意すべ
きである)。また、802.2 SNAP LCCの全てのフィールド
はIPv4ルーティングのために既知であるため、何らのパ
ラメータも必要とされないことに注意すべきである。再
び、TranslateEnetアクション162は存続されねばな
らないことを示し、削除されない。
【0059】ステップ4−186において、TranslateE
net162は次のデシジョン、今回はSaDecisionVc18
4上で実行される。TranslateEnet162は、これがIPo
ATMコネクションであることを知っている。入来フレー
ムを取り扱うためのマイクロプログラムのフラグメント
188が記録され、VC番号190は、後にATMヘッ
ダを構築するときに使用されるべくパラメータデータへ
追加される。TranslateEnetは、存続性を放棄し、削除
される。
【0060】当業者は、本発明の機能を決めるプログラ
ムは多くの形でプログラムへ与えられ、例えば(a)書
込み可能でない記憶媒体(例えばROMといったコンピ
ュータ内の読出し専用メモリ装置又はコンピュータ入出
力装置によって読出し可能なCD−ROM)上に恒久的
に記憶された情報、又は、(b)書込み可能な媒体(例
えばフロッピー(登録商標)ディスク及びハードドライ
ブ)上に変更可能に書き込まれた情報、又は(c)コン
ピュータといった通信媒体又はモデムを通じた電話網を
通じてコンピュータへ伝搬される情報でありうるが、こ
れらに限られるものではない。更に、本発明がコンピュ
ータソフトウエアの中に埋め込まれうると同時に、本発
明を実施するのに必要な機能は特定用途向け集積回路又
は他のハードウエアといったハードウエア構成要素、又
はハードウエア構成要素及びソフトウエアの或る組合せ
を用いて、部分的に又は全体として埋め込まれうる。
【0061】本発明は上述の典型的な実施例を用いて説
明されたが、当業者によれば、本願に開示される新規な
概念を逸脱することなく例示的な実施例の修正及び変更
がなされうることが理解されよう。特に、望ましい実施
例は転送装置に基づく実施例を参照して開示される一方
で、本発明は高速な、リアルタイムコンパイラが望まし
い任意の適用に対して適用可能である。更に、望ましい
実施例は様々な例示的なデータ構造に関して記載される
が、当業者によればシステムは様々なデータ構造を用い
て実施されうることが認識されよう。従って、本発明は
請求項の範囲及び精神による以外によっては制限される
ものではないと考えられるべきである。
【図面の簡単な説明】
【図1】本発明のシステムが動作する環境の例示的な実
施例を示す図である。
【図2】変更エンジンを有する本発明のシステムの例を
示す図である。
【図3】単語オブジェクト及びトランスレータオブジェ
クトの構造を示す図である。
【図4】入力及び出力フォーマット記述子の例示的な組
に対応する単語オブジェクトを示す図である。
【図5】入力及び出力フォーマット記述子の例示的な組
の処理中に使用される単語オブジェクト及びトランスレ
ータオブジェクトを示す図である。
【図6】入力及び出力フォーマット記述子の例示的な組
の処理中の本発明のシステムの動作を更に示す図であ
る。
【図7】例示的な実施例における本発明のシステムの動
作を示す図である。
【図8】例示的な実施例におけるイン・ビジター、アウ
ト・ビジター、及びコレクターオブジェクトを示す図で
ある。
【図9】入力フォーマット記述子の処理中に実行される
一連のステップを示す図である。
【図10】出力フォーマット記述子の処理中に実行され
る一連のステップを示す図である。
【符号の説明】
10 転送装置 12 転送エンジン 14 ポート 16 通信リンク 22 マイクロプロセッサ 24 メモリ 30 高速コンパイラ 32 入力フォーマット記述子 34 出力フォーマット記述子 36 アセンブラ言語プログラム 38 変更エンジン 40 入力データストリーム 42 出力データストリーム 50 単語オブジェクト 52 トランスレータオブジェクト 60,62,64,66,68 単語オブジェクト 66 初期トランスレータ 67 インタープリター 70,72,74 トランスレータ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成12年8月16日(2000.8.1
6)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル ディー アレン アメリカ合衆国,マサチューセッツ州 01720,アクトン,ウィロウ・ストリート 90番 (72)発明者 ケヴィン ピー フォックス アメリカ合衆国,マサチューセッツ州 02157,バブソン・パーク,バブソン・カ レッジ,ボックス 2181番

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つの入力フォーマット記述
    子を受信する段階と、 少なくとも1つの出力フォーマット記述子を受信する段
    階と、 該少なくとも1つの入力フォーマット記述子に対応する
    入力データシーケンスを該少なくとも1つの出力フォー
    マット記述子に対応する出力データシーケンスへ変換す
    るプログラムを生成する段階とを含む、自動プログラム
    生成方法。
  2. 【請求項2】 入力データストリームに応じて該プログ
    ラムを実行する段階を更に有し、該入力データストリー
    ムの少なくとも一部分は該入力データシーケンスに対応
    する、請求項1記載の方法。
  3. 【請求項3】 該入力データシーケンスは少なくとも1
    つのデータ種別標識を含む、請求項1記載の方法。
  4. 【請求項4】 該出力データシーケンスは少なくとも1
    つのデータ種別標識を含む、請求項1記載の方法。
  5. 【請求項5】 該少なくとも1つのデータ種別標識はデ
    ータ単位入力フォーマットの少なくとも1つのフィール
    ドに対応する、請求項3記載の方法。
  6. 【請求項6】 該少なくとも1つのデータ種別標識はデ
    ータ単位出力フォーマットの少なくとも1つのフィール
    ドに対応する、請求項4記載の方法。
  7. 【請求項7】 該入力データシーケンスはデータ単位入
    力フォーマットの少なくとも1つのフィールドに対応す
    る少なくとも1つのデータ種別標識を含み、該出力デー
    タシーケンスはデータ単位出力フォーマットの少なくと
    も1つのフィールドに対応する少なくとも1つのデータ
    種別標識を含み、該プログラムはハードウエアプロセッ
    サと共に、該データ単位入力フォーマットの入力データ
    単位を該データ単位出力フォーマットの出力データ単位
    へ変換するよう動作可能である、請求項1記載の方法。
  8. 【請求項8】 情報フローの初期データ単位の受信に応
    じて、該少なくとも1つの入力フォーマット記述子及び
    該少なくとも1つの出力フォーマット記述子を生成する
    段階を更に含む、請求項1記載の方法。
  9. 【請求項9】 該情報フローは、該情報フローの該初期
    データ単位の中のデータ単位ヘッダ情報に関連付けられ
    た転送装置の中の入力ポートから出力ポートへの写像で
    ある、請求項8記載の方法。
  10. 【請求項10】 該転送装置はルーティング情報プロト
    コル(RIP)をサポートする、請求項1記載の方法。
  11. 【請求項11】 該データ単位入力フォーマットはEt
    hernet(登録商標)である、請求項5記載の方
    法。
  12. 【請求項12】 該データ単位入力フォーマットはATM
    を通じたIPである、請求項5記載の方法。
  13. 【請求項13】 該データ単位出力フォーマットはEthe
    rnetである、請求項6記載の方法。
  14. 【請求項14】 該入力データシーケンスは少なくとも
    1つのデータ値に対応する、請求項1記載の方法。
  15. 【請求項15】 該少なくとも1つのデータ値はアドレ
    スである、請求項14記載の方法。
  16. 【請求項16】 該出力データシーケンスは少なくとも
    1つのデータ値に対応する、請求項1記載の方法。
  17. 【請求項17】 該少なくとも1つのデータ値はアドレ
    スである、請求項16記載の方法。
  18. 【請求項18】 該少なくとも1つの入力フォーマット
    記述子に対応する該入力データシーケンスを該少なくと
    も1つの出力フォーマット記述子に対応する複数の出力
    データシーケンスへ変換するプログラムを生成する段階
    を更に有する、請求項1記載の方法。
  19. 【請求項19】 該少なくとも1つの入力フォーマット
    記述子に対応する該入力データシーケンスを該少なくと
    も1つの出力フォーマット記述子に対応する複数の出力
    データシーケンスへ変換するプログラムを生成する段階
    は、ポイント・ツー・マルチポイント情報フローに関連
    付けられた初期データ単位の受信に応ずる、請求項18
    記載の方法。
JP2000074803A 1999-03-16 2000-03-16 高速コンパイラによる単純プログラム生成方法 Pending JP2000311090A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US270568 1999-03-16
US09/270,568 US6502236B1 (en) 1999-03-16 1999-03-16 Method and apparatus for automatic generation of programs for processing data units of multiple formats

Publications (1)

Publication Number Publication Date
JP2000311090A true JP2000311090A (ja) 2000-11-07

Family

ID=23031840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000074803A Pending JP2000311090A (ja) 1999-03-16 2000-03-16 高速コンパイラによる単純プログラム生成方法

Country Status (2)

Country Link
US (1) US6502236B1 (ja)
JP (1) JP2000311090A (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
JP3765949B2 (ja) * 1999-02-17 2006-04-12 富士通株式会社 オブジェクト指向ソフトウェア開発支援装置および開発支援方法
CA2367061A1 (en) * 1999-03-19 2000-09-28 Computer Associates Think, Inc. Generating optimized computer data field conversion routines
US6772413B2 (en) * 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US6973639B2 (en) * 2000-01-25 2005-12-06 Fujitsu Limited Automatic program generation technology using data structure resolution unit
US7111233B1 (en) 2000-03-09 2006-09-19 Electronic Data Systems Corporation Method and system for applying XML schema
US6687873B1 (en) * 2000-03-09 2004-02-03 Electronic Data Systems Corporation Method and system for reporting XML data from a legacy computer system
US6993745B1 (en) 2000-03-09 2006-01-31 Electronic Data Systems Corporation Method and system for modeling a legacy computer system
US7114147B2 (en) * 2000-03-09 2006-09-26 Electronic Data Systems Corporation Method and system for reporting XML data based on precomputed context and a document object model
US9444785B2 (en) * 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US6558409B1 (en) * 2001-09-28 2003-05-06 Tyco Healthcare Group Lp Plasma treated surgical needles and methods for their manufacture
US7010796B1 (en) * 2001-09-28 2006-03-07 Emc Corporation Methods and apparatus providing remote operation of an application programming interface
US6725297B1 (en) * 2001-10-15 2004-04-20 Advanced Micro Devices, Inc. Peripheral interface circuit for an I/O node of a computer system
US7076766B2 (en) * 2002-06-03 2006-07-11 Steve Wirts Software application development methods and framework
GB2411990B (en) * 2003-05-02 2005-11-09 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
WO2005008535A1 (en) * 2003-07-10 2005-01-27 Computer Associates Think, Inc. Web product interface system and method
US7290206B2 (en) * 2004-07-21 2007-10-30 International Business Machines Corporation Converting documents using a global property indicating whether event logging is performed on conversion filters
US7624349B2 (en) * 2006-03-21 2009-11-24 Microsoft Corporation Declarative definition enabling graphical designer reuse
US8589869B2 (en) 2006-09-07 2013-11-19 Wolfram Alpha Llc Methods and systems for determining a formula
US8601015B1 (en) 2009-05-15 2013-12-03 Wolfram Alpha Llc Dynamic example generation for queries
US8788524B1 (en) 2009-05-15 2014-07-22 Wolfram Alpha Llc Method and system for responding to queries in an imprecise syntax
US8484015B1 (en) 2010-05-14 2013-07-09 Wolfram Alpha Llc Entity pages
US10419374B1 (en) 2010-07-09 2019-09-17 Gummarus, Llc Methods, systems, and computer program products for processing a request for a resource in a communication
US10158590B1 (en) 2010-07-09 2018-12-18 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US10015122B1 (en) 2012-10-18 2018-07-03 Sitting Man, Llc Methods and computer program products for processing a search
US10212112B1 (en) 2010-07-09 2019-02-19 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US10171392B1 (en) 2010-07-09 2019-01-01 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
US8812298B1 (en) 2010-07-28 2014-08-19 Wolfram Alpha Llc Macro replacement of natural language input
US9069814B2 (en) 2011-07-27 2015-06-30 Wolfram Alpha Llc Method and system for using natural language to generate widgets
US9734252B2 (en) 2011-09-08 2017-08-15 Wolfram Alpha Llc Method and system for analyzing data using a query answering system
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
US9405424B2 (en) 2012-08-29 2016-08-02 Wolfram Alpha, Llc Method and system for distributing and displaying graphical items
US10021052B1 (en) 2012-09-22 2018-07-10 Sitting Man, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US20140089421A1 (en) * 2012-09-25 2014-03-27 Deep River Ventures, Llc Methods, Systems, and Program Products for Sharing a Data Object in a Data Store Via a Communication
US10013158B1 (en) 2012-09-22 2018-07-03 Sitting Man, Llc Methods, systems, and computer program products for sharing a data object in a data store via a communication
US20140089420A1 (en) * 2012-09-23 2014-03-27 Deep River Ventures, Llc Methods, Systems, and Program Products for Processing a Reference in a Communication to a Remote Data Object
US20140172999A1 (en) * 2012-12-16 2014-06-19 Deep River Ventures, Llc Methods, Systems, and Computer Program Products for Accessing a Service Via a Proxy Communications Agent
US10019135B1 (en) 2012-10-18 2018-07-10 Sitting Man, Llc Methods, and computer program products for constraining a communication exchange
US10033672B1 (en) 2012-10-18 2018-07-24 Sitting Man, Llc Methods and computer program products for browsing using a communicant identifier
WO2015180130A1 (zh) * 2014-05-30 2015-12-03 华为技术有限公司 报文编辑处理方法和相关设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488569A (en) * 1993-12-20 1996-01-30 At&T Corp. Application-oriented telecommunication system interface
US5721912A (en) * 1994-08-05 1998-02-24 Data Integration Solutions Corp. Graphical user interface for creating database integration specifications
US5872810A (en) * 1996-01-26 1999-02-16 Imec Co. Programmable modem apparatus for transmitting and receiving digital data, design method and use method for said modem
US6212566B1 (en) * 1996-01-26 2001-04-03 Imec Interprocess communication protocol system modem
JP2869379B2 (ja) * 1996-03-15 1999-03-10 三菱電機株式会社 プロセッサ合成システム及びプロセッサ合成方法
US5857194A (en) * 1996-11-07 1999-01-05 General Electric Company Automatic transmission of legacy system data
US6308178B1 (en) * 1999-10-21 2001-10-23 Darc Corporation System for integrating data among heterogeneous systems

Also Published As

Publication number Publication date
US6502236B1 (en) 2002-12-31

Similar Documents

Publication Publication Date Title
JP2000311090A (ja) 高速コンパイラによる単純プログラム生成方法
US11016673B2 (en) Optimizing serverless computing using a distributed computing framework
US11516129B2 (en) Packet edit processing method and related device
US8381201B2 (en) Processing of expressions
US5848234A (en) Object procedure messaging facility
CN102104541B (zh) 报头处理引擎
JP2002051081A (ja) 実時間編集プログラム構築エンジンを有するパケットプロセッサ
WO2006014766A2 (en) Method and apparatus for converting network management protocol to markup language
CN114244919B (zh) 一种基于协议无感知转发的ndn模态实现方法
CN111277612B (zh) 一种网络报文处理策略生成方法、系统及介质
EP1246059B1 (en) Dynamic interface aggregation on demand
US20120140640A1 (en) Apparatus and method for dynamically processing packets having various characteristics
US8819135B2 (en) Method of performing data mediation, and an associated computer program product, data mediation device and information system
US6785734B1 (en) System and method for processing control information from a general through a data processor when a control processor of a network processor being congested
US20050187947A1 (en) Systems and methods for parallel evaluation of multiple queries
US7539691B2 (en) Systems and methods for updating a query engine opcode tree
CN105450515B (zh) 一种针对应用层协议的IPv4/IPv6数据翻译网关及方法
Robin et al. Toward an abstract model of programmable data plane devices
US20050163107A1 (en) Packet processing pipeline
CN103152201B (zh) ForCES系统中逻辑功能块拓扑正确性的验证方法
US11301231B2 (en) Dynamic run time programming of hardware tables
JPH07225685A (ja) 分散オブジェクト指向システム構築方法
CN117714398A (zh) 一种数据传输系统、方法、电子设备及存储介质
WO1994028486A1 (en) Method of selecting a server object to service a client object request within a network environment
JP3449359B2 (ja) メッセージ処理装置、通信システムおよびメッセージ処理方法