JPS62283795A - 非手続言語を用いたリアルタイム状態制御法とその装置 - Google Patents

非手続言語を用いたリアルタイム状態制御法とその装置

Info

Publication number
JPS62283795A
JPS62283795A JP61307591A JP30759186A JPS62283795A JP S62283795 A JPS62283795 A JP S62283795A JP 61307591 A JP61307591 A JP 61307591A JP 30759186 A JP30759186 A JP 30759186A JP S62283795 A JPS62283795 A JP S62283795A
Authority
JP
Japan
Prior art keywords
signal
state
instructions
entry
processing
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.)
Granted
Application number
JP61307591A
Other languages
English (en)
Other versions
JP3236006B2 (ja
Inventor
テリス リー ハンセン
ウェイン エドワード ハヤット
ウー−ホン フランシス レウング
ウォーレン アラン モンゴメリー
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co 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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPS62283795A publication Critical patent/JPS62283795A/ja
Application granted granted Critical
Publication of JP3236006B2 publication Critical patent/JP3236006B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54583Software development, e.g. procedural, object oriented, software generation, software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13056Routines, finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 3、発明の詳細な説明 及王立国 この発明は、即時(リアルタイム)処理、特に非手続き
型プログラミング言語を用いた即時処理システムの状態
へ入ったり出たりする自動的手続きに関するものである
尤貝且宣景 即時処理のオペレーションを定義するのに通常、状態図
が用いられる。例えば、C言語あるいはパスカルといっ
た言語を実行しているコンピュータが即時処理のオペレ
ーションを制御するのに用いられている時、そのプログ
ラムは、それぞれがとりうる状態とそれらの状態で受理
する可能性のある信号に対する一組の命令群を持ってい
る。一方、一定の状態においては、必要な制御機能を実
行するため、個々の信号の受理に対して命令が逐次実行
されていく。信号を処理するためのコンピュータの応答
は命令列から暗にわかる。
状態や処理信号がその中で明確に定義されており、これ
らの状態や信号の発生により、特定の行G o r d
 o $論文「非手続き型記述による通信ソフトウェア
の自動プログラミングJ IEE ’ (*Ct4皿貴
重Vo1.Com −30、魚6に記載されている。
この論文では、電話交換システムを制御するためにプロ
グラムを書くための一つのプログラム言語が発表されて
いる。そのようなプログラムは、システムのとりうる状
態、そのシステム内での事象の発生、定義された事象と
状態が発生した時とられるべき行動、という面から記述
される。その言語によりプログラムが書かれて、次にC
言語に翻訳され、コンパイルされて電話交換システムを
制御するコンピュータの中に記憶される。この言語は、
一定の事象への応答として、とられるべき行動を明確に
指令する記述としては書けるけれども、個々の状態遷移
とは無関係に一つの状態に入ったり出たりすることに対
して必要な、共通的な行動を実行するための準備はなさ
れていない。そのような共通的な行動の実行のための準
備がなければ、作られたプログラムは、結果として複雑
で修正するのに難かしいものとなる。
別のアプローチとして、最近、CCITY委員会で定義
されているSDL  (仕様記述言語)がある。SDL
言語は、論文rSDL−CCITT仕様記述言語J■L
lネープ、1981年で説明されている。SDL言語で
は、状態および通信信号情報という点で、サービスや機
能を形式的に記述できる。通信システムの製作者はそれ
で、例えば、CHILLあるいはC言語といった自分の
好きな言語で、その形式的な記述を行なう。SOL記述
そのものは直接コンパイルされない。さらに加えてSD
Lは一つの状態に入ったり出たりする共通的な行動の実
行のための準備を提供しない。
先にも書いたように、即時処理制御において状態図を用
いる、という前に述べた以前の芸術的手法の両方に共通
的な問題は、かかわりのある特定の遷移(即ちその遷移
を引き起した事象)とは無関係に、ある状態から離れ、
新しい状態に入ることにより、共通的に行なわれたに違
いない行動の実行である。そのような行動の一例として
、顧客の電話のベルが鳴っている、例えば、ベルの鳴る
状態にあり、顧客は電話機をはずす、例えば、受話機を
はずす信号を受けとる、という電話システムにおいて起
きる。求められる行動は、顧客の電話機から音を立てて
ベルを鳴らす、という指令から離れ、次の状態、例えば
、ベルの鳴っている電話機に声の接続を確立する、とい
う通話中状態に入ること−である。
しばしば面素な旧式のサービス(PQTS) として言
及される簡単な電話サービスの場合には、ベルが鳴って
いる状態から通話中状態へ行くのに可能な道は、POT
Sサービスのプログラムを作る時によく知られているか
らこの問題を解くのは容易であるのはあたりまえである
。問題は、予知されない方法でPOTSと相互接続する
新しい電話の機能を追加することが要求される将来の時
点に起る。以前の芸術的なプログラム技法では、そのよ
うな新しい機能をプログラムするプログラマ−は、ある
状態に入ったり、出たりする全ての径路を決定するため
、元のコード、および元のコードと自分の新しいコード
ととの相互作用を十分に理解する必要がある。このこと
が必要なため、新しい機能のとり入れが遅れるばかりで
はなく、現有するプログラムの保守をますます難かしく
なっている。
前述のことから、新しい状態が起る毎に、そして状態が
消滅する毎に、それらの事象が起る環境とは無関係に、
特定の行動が確実にとられるソフトウェアメカニズムの
必要性が存在することがわかる。そのようなメカニズム
があれば、その状態の入る際に必要な処理、およびその
状態を離れる際に必要な処理が実行されるであろう。さ
らに、こうした必要な処理があれば、追加されるべき何
か新しい機能のためのプログラムの追加、いやこれらの
処理がいかに実行されるかについてのプログラマ−の知
識すら必要としないだろう。しかも、プログラマ−はこ
れらの処理を修正したり、付は加えたりする能力を有す
るであろう。
〕里旦監! 通信システムにおいて、状態遷移を引き起す事象とは無
関係に、非手続き型で書かれた命令群が共通の遷移処理
を実行するために、状態遷移信号や状態情報に直接応答
する例示的手法や構造的に具体化したものの中に組み込
まれたこの発見の原則に従うことによって、前記の問題
が解決し、技術的進歩が達成される。好都合にも、通信
システムは複数の状態、および状態の遷移を引き起す複
数の信号を持っており、コンピュータは有限状態マシン
ルーチンといく組かの命令群を持ち、1つ′の組の命令
は前述のシステムに1つの機能を与え、1つの命令群は
行動を引き起すための前もって定義されたシステムの状
態および信号に応答する命令群を実行することによりシ
ステムを制御する。
第1番目の命令群の中の1つの命令を実行することによ
り、現在の状態から次の状態に変化することを開始する
。有限状態マシンルーチンはこの状態遷移に応答し、現
在の状態から出るように指令する離脱信号と次の状態に
入るよう指令する入場信号を生み出す。第2群の命令は
、離脱信号と現在の状態に応答して、通信システムが現
在の状態を終結するための条件を整える共通の出口処理
を実行する。第3群の命令は、入場信号と新しい状態に
応答して、新しい状態のために通信システムが初期化す
る共通の入口処理を実行する。
好都合にも、システムに後日新しい機能を追加すること
を促進するために、第2の命令群は、他の命令群が有限
状態マシンルーチンが離脱信号を処理し続けることを許
すか、またはこの処理を終了するかのどちらかの命令を
実行することによって、離脱信号に応答することを許す
かどうかを制御する。もしこの処理が継続されるならば
、第4群の命令がもう一つの共通の出口処理を実行して
離脱信号に応答する。もし離脱信号の処理が終了すれば
、有限状態マシンルーチンが次に入場信号を処理する。
同様に、入場信号に応答するそれぞれの命令群は、入場
信号と次の状態に応答する他の命令群がこうした条件に
応答することを許すかどうかを制御することができる。
例示的手法は、複数の処理状態や非手続き型言語で書か
れたプログラムを実行するコンピュータによっておこな
われる制御により状態遷移を引き起す複数の信号を持っ
ている即時処理における状態遷移を制御する。プログラ
ムは、複数の処理に一組の命令群によって準備されてい
るそれぞれのことを提供する。1つ1つの命令群は、前
もって定義されている処理状態や、行動を引き起す信号
に応答する。こ手法には、第1命令群の命令の実行によ
って、現在の状態から別の状態への変化を開始する、前
述の現在の状態からの離脱を指示する離脱信号を生成す
る、離脱信号と現在の状態に応答する第2命令群の実行
によって共通の出口処理を実行する、次の状態へ入るこ
とを指示する入場信号を生成する、入場信号と新しい状
態に応答する第3命令群によって次の状態に入る共通の
入口処理を実行する、というステップが含まれている。
特に、この手法は複数の状態や信号を持つ音声やデータ
通信システムにおける状態遷移を制御する。信号は、プ
ログラムを実行するコンピュータによっておこなわれる
制御をうけて状態遷移をおこなう。そのプログラムは有
限状態マシンとそれぞれの組がシステムに機能を与える
いく組かの命令群を含んでいる。それぞれの群は、前も
って定義されているシステムの状態および信号によって
実行に移される。コンピュータは、複数の制御構造−そ
れぞれは個々の状態と関連づけられている−の格納にメ
モリーを用いる。それぞれの制御構造は複数のテーブル
を持ち、それぞれのテーブルはその状態の中で起りうる
個々の信号と関連づけられている。その手法には、それ
ぞれの状態に対する個々の制御構造を維持する、個々の
制御構造について、この状態において起りうるそれぞれ
の信号に対応して個々のテーブルを配分する、個々のテ
ーブルに対応した状態および信号によって実行される命
令群を、優先順にそれぞれのテーブルに個々に関連づけ
る、開始された変化に対応して、有限状態マシンルーチ
ンによって離脱信号を作り出す、有限状態マシンルーチ
ンの実行により、現在の状態と離脱信号に対応して最初
のテーブルを見つけ出す、共通の出口処理を実行するた
めに、最初に見つけ出されたテーブルの最上位の優先度
を持っている命令群を実行する、現在の状態から次の新
しい状態に変る、有限状態マシンルーチンの実行により
、入場信号を作り出す、新しい状態と入場信号に対応し
て、テーブルの中に第2のものを見つけ出す、共通の入
口処理を実行するため、第2に見つけ出されたテーブル
の中の最上位の優先度を持つ命令群を実行する、などの
ステップが含まれている。
好都合にも、離脱信号に対応した命令群は、離脱信号と
現在の状態によってまた起動をかけられた他の命令群が
有限状態マシンルーチンによる離脱信号の処理を継続す
るか、終結するかのどちらかによってこれらの条件に応
答することが許されるかどうか制御することができる。
同様に、入場信号に対応した命令群は、入場信号と新し
い状態によってまた起動をかけられた他の命令群が有限
状態マシンルーチンによる入場信号の処理を継続するか
、終結するかによって、入場および新しい状態条件に応
答することが許されるか許されないかを制御することが
できる。入場信号と新しい状態情報に応答する命令群は
、優先順位で2番目に見つけられるテーブルに格納され
ているので、最上位の優先度の命令群がより低い優先度
の命令群が入場信号に応答することが許されるかどうか
を制御する。離脱信号および現在の状態に対応する命令
群の制御は、入場信号に対する制御に同じである。
スm凶I肌 本発明の対象であるソフトウェア・システムは図1に示
したハードウェア・システムによって有利に実施される
。しかし、他のハードウェア・システムもここに図説し
たソフトウェア・システムで制御可能であることは当業
の者には明白であろう。図1のハードウェアは複数の顧
客ユニット102から103までから成っている。それ
ぞれの顧客ユニットは1基のコンピュータ、1基の電話
受話器および1基のデータ端末から成っている。
音声およびデータ情報はバス100を通じてパケットの
形で通信される。バス100はエテルネット(登録商標
)型であることが有利であるが、米国特許第4 、49
4 、230号に記載されたようなパケット交換システ
ムであっても良い。顧客ユニット102はコンピュータ
104と端末106を含んでいる。コンピュータ1〜0
4はここには示していないがバス100.電話受話器1
05および端末106とのインターフェイスのための装
置ならびに音声情報を受話器105との間でバス100
を通じてやりとりするのに使用されるアナログ・デジタ
ル転換を行なうための装置を含んでいる。
システムの初期化ならびに顧客ユニットのオペレーショ
ンの変更を実施する必要が生じた場合は、非手続的言語
で表現されたスクリプトが一つの端末を通してコンピュ
ータ101にエンターされる。
コンピュータ101はこれらのスクリプトをコンパイル
し、続いてそのうち解釈可能な表現をバス110を通し
て顧客ユニットのプロセッサから該ユニットの指定され
たメモリーにダウンロードする。各スクリプトは複数の
トリプルから成り、各トリプルは一つの状態定義、一つ
の事態定義および一つの動作定義から成っている。事態
定義はどの信号が該トリプルを起動するかを定義し、動
作定義は該トリプルの起動の場合に取られるべき動作を
定義している。動作定義は一つの指示グループから成っ
ている。単純旧式電話(POT)用のトリプルを起動さ
せる状態と信号を図2に示した。
図2は局番から局番への通話の最中に顧客ユニッ)10
2から103までの間の一つのものかある状態201か
ら208までを状態グラフインクの形で示したものであ
る。新しいシステム上の要求を光通ずるために、図示し
た状態の数を拡張することは当業の者には明白であろう
。信号201から224までは事態を表現するが、その
発生はそれぞれある一つの状態から別の状態への変化を
生じせしめる。ここでもまた、新しいシステム上の要求
を光通ずるために信号数を拡張することは当業の者に明
白であろう。
例えば通話を発信しようとする場合、該顧客ユニットは
まずアイドル状8201にあって受話器の取り上げが行
なわれなくてはならない。受話器の取り上げという事態
は取り上げ信号201を通じて該顧客ユニットをダイヤ
ル状態202に置(。
端末から番号が集められると、状態は番号信号211に
よってダイヤル状態202から発信パルス状態203に
変えられる。
発信パルス状態203においては、着信側顧客ユニット
に呼び出す終了の要請が送られる。もし着信側の顧客ユ
ニットが、話し中の時は話し中信号217を通じて話し
生状態207がエンターされる。発信パルス状B2O3
またはダイヤル状態202または話し生状態207の間
に発信側顧客ユニットが受話器を戻すと、その発信側顧
客ユニットは受話器戻し信号216.215または21
8のいずれかを通じてアイドル状Li201に復帰させ
られる。
着信側顧客ユニットが話し中でない場合は、発信側顧客
ユニットは呼び出し信号212を通じて可聴状態204
に入る。可聴状態にある間は発信側顧客ユニットは呼び
出し音が聞こえる。可聴状B204にある時に発信側顧
客ユニットの受話器が置かれると受話器戻し信号224
を通じてアイドル状態201に戻される。着信側顧客ユ
ニットが電話に答えると発信側顧客ユニットは応答信号
213を通じて通話状B205に移る。
通話状態205に入ると発信側と着信側はバス100を
通じて音声パケットを交換する。もし着信側が先に電話
を切ると、発信側は接続解除信号219を通じて通話状
態205から接続解除状態206に移行する。もし発信
側が先に電話を切ると、発信側は受話器戻し信号214
を通じて通話状[205からアイドル状態201に移行
する。
前述の例を着信側の観点から考察して見よう。
他の顧客ユニットが音声接続を希望していることを示す
バス100を通じたメツセージ223を受は取ると、着
信側顧客ユニットは原生信号223を通じてアイドル状
8201から呼び出し状態208に移行する。呼び出し
状態208にある間は、着信側は呼び出し音が聞こえる
。着信側顧客ユニットが受話器を取ると、受話器取上げ
信号221を通じて通話状態205に移行する。その代
りにもし発信側ユニットが着信側ユニットの呼び出し状
態208の間に受話器を置いてしまうと、発信側ユニッ
トはバス100を通じて連絡されたあるメツセージに含
まれた接続解除信号を伝達する。この接続解除信号に反
応して、着信側顧客ユニットは接続解除信号222を通
じて呼び出し状52oaからアイドル状態201に移行
される。
さて本発明であるが、図2に示した様々の状態からの移
行を実行するための一つのスクリプトを図3および図4
に示した。該スクリプトは単純旧式電話(POT)サー
ビスまたはトリプルを用いた基本的電話サービスを実行
する。後者は一旦コンパイルされると、メモリー108
に保存され、プロセッサ107によって実行される。図
3および図4に用いた言語の詳細を付録Aに示した。当
業の者にあっては、トリプルを順序づけする必要のない
ことを図3および図4において認めることができる。実
行の順序は状態・事態に関する情報ならびにスクリプト
のダウンロードと起動の間およびトリプルの実行の間に
実行されるスクリプト間制御機構によつア明示的に指定
されるのである。
顧客ユニッ)103が顧客ユニット102と通話すると
いう例について考えて見よう。顧客ユニット102は図
2のアイドル状azo1にある。
通話が接続されようとしていることを告げる原生信号2
23を含んだメツセージを顧客ユニット103から受は
取ると、トリプル303の原生事態が一致し、そこでそ
のトリプルは起動する。
$5OURCE変数は事態認識のためコンパイルされた
コードによって顧客ユニット103の電話番号と同じも
のにセットされる。実行されるべき動作はトリプル30
3の動作規定によって特定される。
まず$5OURCE変数の情報が後で使われる目的で$
0RIGINATO1?変数に移転され、呼び出し信号
211を含んだメソンセージが、顧客102は呼び出し
状態にあることを顧客ユニット103に告げるためのS
ENロプロミチブの実行により、バス100を通じて顧
客ユニット103に伝達される。次いで$5OURCE
変数の情報が後で使用される目的で$0THERPAR
TY変数に移転される。最後に実行されるオペレーショ
ンは顧客ユニット102の次の状態は呼び出しであるべ
きことを指定するNEXtSTATEプリミチブの実行
である。状態が呼び出しに変えられると、呼び出し状B
2O3のためのエンター信号が発生される。該エンター
信号は後者の状態の内部で発生されるので図2には示し
ていないが、図38において詳細に説明がある。該エン
ター信号の発生はトリプル305の実行をもたらす。ト
リプル305の動作規定は可聴の呼び出し「音」または
「表示」を受話器105にもたらす。
図2に示したとおり、顧客ユニット102は受話器を取
ることによって取り上げ信号221が発生されるか、ま
たは顧客ユニット103からバス100を通じて接続解
除信号222を受は取るかのいずれかにより、呼び出し
状態208を脱する。
顧客ユニット103からの接続解除信号222は顧客ユ
ニット103の受話器が置かれたことを示す。顧客ユニ
ッl−102の受話器が取り上げられた時は、取上げ信
号221が発生され、トリプル308が実行される。ト
リプル308は顧客ユニット103に対して、顧客ユニ
ット102が応答したとのメツセージを含んだ応答信号
213を伝える。さらに、NEXTSTATEブリミチ
ブによって、状態は通話状態205に変換される。状態
が変換されると、離脱信号が発生され、トリプル306
が実行されるが、この動作規定は可聴呼び出し「音」ま
たは「表示」が受話器105から除去されるようにせし
める。この離脱信号は呼び出し状6208の内部で発生
されるので図2には示していないが、図38において詳
細な説明がある。
顧客ユニット102が呼び出し状820Bにあって接続
解除信号222を受けた時は、トリプル307が実行さ
れる。このトリプルは発信側顧客ユニット103の受話
器が置かれた時に顧客ユニット102が行なうべき動作
を指示する。しかしこの時点では接続はまったくなされ
ていない。メツセージが発信側顧客ユニットからのもの
でなければ、顧客ユニット102は単に呼び出し状態2
08に引続きおかれる。顧客ユニット103から接続解
除信号223が送られてくれば、トリプル307の動作
規定が実行されてNEXTSTATEプリミチブが該シ
ステムをアイドル状態201に復帰させる。
顧客ユニット102を呼び出し状態208から離脱させ
る信号が取り上げ信号221であった場合は、トリプル
308は応答信号213を顧客ユニット103に伝達せ
しめ、顧客102をして通話状態205にエンターせし
める。通話状態205に入ると図4のトリプル320が
実行される。後者のトリプルはバス100を通じた顧客
ユニット103への音声経路が成立するのに必要なコン
ピュータ104内部で実行されるべき内部作業を実行さ
せる。
顧客ユニット102の受話器が置かれると、トリプル3
22が実行され、顧客ユニー/ ) l O2が接続解
除となったことを告げる接続解除信号219を顧客ユニ
ット103に伝達する。さらに、NHXTSTATII
!プリミチブが実行され、顧客ユニット102をアイド
ル状Li201に復帰させる。該NEXTSTATHプ
リミチブの実行は離脱信号を発生させ、トリプル321
の実行をもたらす。トリプル321の動作規定はDIS
ENGAGEプリミチブの実行によって顧客ユニット1
02用バス100への音声接続を解除する。
このインタースクリプト制御機・構ならびに顧客ユニッ
トの環境制御のためのスクリプトの起動・停止をより詳
細に検討する目的で、図5に示したスクリプトを考えて
みよう。そこに示したスクリプトは電話転送(CFスク
リプト)、発信者確認(CPIスクリプト)ならびに電
話転送(CFA)フィーチャの起動・停止を提供する。
これらのスクリプトはコンピュータ102によってコン
パイルされ、その後顧客ユニット102のコンピュータ
104にダウンロードされる。コンピュータ104はこ
れらスクリプト内で指定された異なる事態が生じた場合
にCFスクリプトがCPIおよびCFAスクリプトに優
先するよう、これらスクリプトを図説的に保存する。
転送フィーチャは顧客ユニット102に宛てられた通信
について、端末106を通じた顧客エンタリング・デー
タによって予め特定された別の顧客ユニットに転送する
ことにより機能する。発信者確認フィーチャはどの顧客
ユニットが顧客ユニット102に通信しようとしている
かを端末106に表示する。ここに示した例では転送フ
ィーチャが発信者確認フィーチャに優先する。従って、
もし転送フィーチャが機能している場合は、発信人確認
フィーチャが実行されないので、発信人確認フィーチャ
は発信側顧客ユニットの身元を表示しない。もし転送が
機能していない時は、発信人確認フィーチャは顧客ユニ
ット102がアイドル状態にない場合のものも含め、そ
れまで顧客ユニット102に対して向けられたすべての
発信人を確認する。
転送フィーチャ用のCFスクリプトは図5に示したよう
にトリプル501と502から成っており、5TOPと
C0NTrNUHのプリミチプを用いたインタースクリ
プト序列機構を発揮する。トリプル501は図2に示し
た状態のいずれにおいても実行可能である。トリプル5
01の起動は端末106に「#」がタイプされたことを
示す入力信号によって行なわれる。かかる入力信号が発
生されると、トリプル501の事態定義は顧客が端末1
06上で「#」の後にタイプする一連の文字と等しいも
のに$CFNUMBER変数をセットする。トリプル5
01の作動定義は5TOPプリミチブを実行し、その結
果、いかなる状態下でもどんなスクリプトの他のトリプ
ルによって該入力信号によってそれ以上の処理が行なわ
れなくなる。ここで5TOPプリミチブも実行する目的
は、インタースクリプトの序列を制御することよりも、
むしろ該入力信号のそれ以上の処理を停止することにあ
る。
トリプル501が起動されており、かつ$CFNUMB
ERが特定された顧客ユニット103の番号に等しくセ
ットされていると仮定すれば、いかなる状態下であって
も受信された一つの原生信号223はトリプル502を
実行させる。トリプル502の実行の結果、まず$SO
[IRCE変数が事態定義によって発信側顧客ユニット
の番号と等しくセットされる。
次いでトリプル502の作動定義は、$CFNt1MB
ER変数がノナル値にセットされていることならびに該
ノナル値が発信側顧客ユニットの番号と等しくないこと
を確認する。これらの条件が満足されていれば、トリプ
ル502の作動定義の” then’ステートメントが
実行され、その結果FORWARD 、 PRINTお
よび5TOPのブリミチプが実行される。FORWAR
Dプリミチブは$5OURCE変数の値を、通話開始が
意図されていることを示す原生信号223と共に、特定
された顧客ユニットに転送する。加えて、PRINTプ
リミチプは該通話が該特定顧客ユニットに転送された時
間を示すメツセージを端末106にプリントアウトする
。そして最後に5TOPプリミチブが実行され、顧客ユ
ニット102の該状態下で原生信号に反応するCPI 
とPOTのスクリプトの諸トリプルの実行を阻害する。
5TOPプリミチブが実行されることにより、CFスク
リプトは通信を開始しようとする場合に起生ずる通常の
作動を阻止することが可能となる。この5TOPプリミ
チブはインタースクリプト制御機構の一部である。
トリプル502の“if”ステートメントで規定された
条件が満足されない場合は、C0NTINUEプリミチ
ブが実行される。後者の実行の結果、制御は序列の低い
スクリプトの他のトリプルに移される。
その場合においては、該原生信号223はCPI とP
OTのスクリプトによって扱われる。CP!スクリプト
がいかなる状態下においてであれ該原生信号223を受
信すると、トリプル504の作動定義は原゛生信号で特
定された顧客ユニットから通話があったことを示すプリ
ントアウトを行ない、そして通話をセットするためのP
OTスクリプトのオペレーションを起生させるためにC
0NTINIJBプリミチプを実行する。制御がPOT
スクリプトに移ると、図3および4で既に示したような
接続が設定される。
では図5で示したCFAスクリプトがどのようにCFス
クリプトを起動または停止させるかを検討してみよう。
時刻が午前8時になると時間信号が発生されトリプル5
06が実行される結果、もし曜日がそれぞれ1から5ま
でと指定された月曜日から金曜日までであればCFスク
リプトが起動される。午後5時にはもう一つの時間信号
が発生される。そしてそれぞれ、反応してトリプル50
7が実行され、曜日が土曜日もしくは日曜日でなければ
CFスクリプトを停止する。土曜日か日曜日の場合は、
該CFスクリプトは金曜日の午後5時に停止された状態
にあるのが通常である。
コンパイラ−はコンピュータ101によって実行され、
図3.4.5に示したスクリプトに反応して、これらの
スクリプトをコンパイルした上で、図であれはコンピュ
ータ104にコンパイルされたトリプル・コードを伝送
する。後述するように、コンパイルされたスクリプトが
ダウンロードされると、コンピュータ104で実行され
た起動オペレーションはスクリプト間に次のとおりの序
列を設定する。すなわちCFA 、 CPIおよびCF
間でCFAが最上位の序列となる。加えて、CFA 、
 CPIおよびCFスクリプトはその後の時点でコンパ
イルされダウンロードされることが可能である。コンピ
ュータ104の一つのプログラムはこれらスクリプトの
コンパイルされたトリプルに反応して、これらのトリプ
ルを図6にロジック的に示したようにアイドル状態、呼
びだし状態および通話状態に対応して保存し、また、こ
れらトリプルの実行方法を与える。他の状態と関係した
トリプルも同様に保存されることになる。該トリプルは
各状態に対応した事態定義毎にグループ分けされる。
図11.12および13に示したように、現在の状態が
状態定義に対応する時に個有の事態定義に対応する信号
に反応して一つのトリプルが実行されることを可能にす
るインデックスが用意されている。例えば、アイドル状
態201の時に受信された原生信号223は、CFスク
リプトのトリプル502、crtスクリプトのトリプル
504、そしてPOTスクリプトのトリプル303をシ
ーケンス時に起動することができる。
コンピュータ101からのコンパイルされタコードを受
信し、その情報を図15に示したロジックの形で起動、
保存、実行するためにコンピュータ104内部で実行さ
れる様々なプロセスを図11に示した。
同じく図11に示したのは、顧客ユニット内の様々なプ
ロセスの間で受信される信号である。例えば、前述の説
明において、顧客ユニッ)103から顧客ユニット10
2に発信される原生信号223はV−RCVプロセス1
002によってバス100を通じコンピュータ104に
受信される。
そして後者のプロセスはオペレーティング・システム通
話を通じてフィーチャ制御プロセス1000に原生信号
223を伝達する。これらのプロセスの実行はコンピュ
ータ104のオペレーションを制御する一つのオペレー
ティング・システムによって制御される。該オペレーテ
ィング・システムのためのソース・コードは付録已に示
した。
例えば顧客が受話器を取り上げると、ハードウェアの断
絶が発生して、オペレーティング・システムに断絶メツ
セージをV−INプロセス1002に発信させる。後者
のプロセスはこの断絶に反応して、顧客が受話器を取り
上げたと判定し、そして該取り上げ信号を一つのオペレ
ーティング・システム通信を通じてフィーチャ制御プロ
セス1000に送信する。この取り上げ信号をフィーチ
ャ制御プロセス1oooに送信するオペレーティング・
システム通信の実行の結果、該オペレーティング・シス
テムはフィーチャ制御プロセス1000を実行する。
フィーチャ制御1000が起生されれば、該制御はまず
どんな信号を受信したかを判断し、顧客ユニットの現在
の状態を判断し、そして事態定義が該受信信号と一致す
る状態のトリプルを実行する。このマツチングが如何に
行なわれるかを示すために、顧客ユニット103から顧
客ユニット102へのバス100を通じた原生信号22
3の伝達を考えてみよう。このメツセージはV−RCV
プロセス1001が受信し、該プロセスが該原生信・号
をフィーチャ制御1000の有限状態マシン(FSM)
 1005 ニ伝える。FSl’1lO05は該原生信
号に反応して、アイドル状態201に関係しているロジ
ック信号表601から601にインデックスする。FS
M1005は次に原ロジック信号表602を特定し、イ
ンタープレツタ1006でインタープレフトされた表6
02によってトリプルを特定せしめる。このインデック
ス化が実際の物理的表で実施される様子ならびにある一
つの状態と信号について実行されるべきトリプルの特定
は図11.12.13に詳細に示じた。
ロジック信号表602を特定した後、FSM 1005
は表602の502であるエントリーCFに保存されて
いるポインターをインタープレツタ1006に転送して
、実行されるべきコンパイルしたトリプル・コードの場
所を特定する。この特定されたトリプル・コードにより
実行される動作は、図5に示したとおりトリプル502
によって定義される。
トリプル502の実行によって生じるオペレージコンは
2組ある。1組は$CFNII?IBER変数が一つの
番号を含んでおり、発信側顧客ユニットは顧客ユニット
が通信を転送しようとしているものではない場合に生じ
る。この第1組のオペレーションの条件が満足されると
、原生信号と発信側顧客ユニットの番号が指定された転
送先顧客ユニットにFORWARDプリミチブの実行に
よって送信される。
また、一つの通知メツセージがデータ端末106にプリ
ントされ、5TOPプリミチブが実行される。
この5TOPプリミチブの効果は、FSM1005をし
てロジック信号表602におけるトリプルの処理を停止
せしめることにある。。
第2組のオペレーションはトリプル502の“if”ス
テートメントの条件部分が「否」である時に実行され、
” else″部分を実行させる。“if”ステートメ
ントの“else”部分はC0NTINUEプリミチブ
を実行させるので、その結果、FSM1005はロジッ
ク信号表602の残りのトリプルを実行する。
C0NTINUEプリミチブが実行されると、表602
で次に実行されるのは図5のトリプル504であり、こ
れはCPIである504エントリーで示される。トリプ
ル504の実行の結果、発信側顧客ユニットを特定した
メツセージが端末106に表示される。次に、C0NT
INUEプリミチブが実行された結果として、表602
の303エントリーであるPOTにより特定されたとお
りトリプル303が実行される。
トリプル303の実行の結果、発信側顧客ユニットの認
識番号が$0RIGINATORと$0THERPAI
?TYにセーブされ、そして受信側顧客ユニットが呼び
出し状B2O3に入ろうとしていることを示すメツセー
ジが発信側顧客ユニットに伝達される。これに加えて、
NEXTSTATEプリミチブが実行され、その結果、
離脱信号が内部的に発生され、状態は呼び出し状態に移
行され、そしてエンター信号がFS?’11005によ
ってフィーチャ制御1000内部で内部的に発生される
。FSM1005は離脱信号とエンター信号を、V−R
CVプロセス1001のような他のプロセスから受信し
た信号を同様に処理する。離脱信号およびエンター信号
の処理についての詳細は、NEXTSTATEプリミチ
プを示した図38に示している。
本例においては、離脱信号はアイドル状jLi201と
関係づけられている。アイドル状態と関係づけられた離
脱信号については、ロジック信号表にエントリーがない
ことから、本例においてはこの信号からは何の動作も生
じない。新しい状態、すなわち呼び出し状態208と関
係づけられたエンター信号は、ロジック信号表614の
305であるエントリーPOTで示されたコンパイルさ
れたコードを実行させる。そのコンパイルされたコード
は、図3に示されたトリプル305に対応する。トリプ
ル305の作動定義の結果、C0NTINUEプリミチ
ブが実行されるが、しかしロジック信号表614には実
行されるべきトリプルがもうないため、該エンター信号
に反応して実行されるトリプルは他にない。
もし、呼び出し状Li2O3の途中で、受話器105が
取り上げられると、その事実はV−INプロセス100
2によって検知され、取り上げ信号221がFSM10
05に伝達される。後者のプロセスは、取り上げ信号を
受信したことならびに呼び出し状態にあることを確認し
、ロジック信号表608にインデックスする。FSM1
005はPOTに保存されたポインター308をアクセ
スし、このポインターをインタープレツタ1006に送
達するが、このインタープレフタは図3に示しだとおり
トリプル308のためのコンパイルされたコードを実行
する。後者のトリプルは、5ENDプリミチブの実行に
よって応答信号213を発信側顧客ユニットに伝達し、
そして、NEXTSTATEプリミチプを実行して状態
を通話状態205に変更する。
NEXTSTATHブリミチブの実行の結果、呼び出し
状態については離脱信号が発生され、通話状態について
はエンター信号が発生される。FSM1005は該離脱
信号に反応して、インタープレツタ1006にロジック
信号表615の306であるエントリー POTで示さ
れたトリプルを実行させる。図3に示したトリプル30
6のコンパイルされたコードの実行の結果、図1の受話
器105から呼び出し音が取り除かれる。
FSM1005はエンター信号に反応して、通話状態と
関連するロジック信号表621から629までをインデ
ックスし、エンターロジック信号表626についての3
20エントリーであるPOTの内容によって示されたト
リプルを特定する。このポインターはインタープレツタ
1006に送られ、該インタープレツタ−は図4のトリ
プル320を実行する。後者のトリプルは、ENGAG
Eプリミチブの実行によって、発信側顧客ユニ7)と受
信側顧客ユニフ)102との間に音声通信路を設定する
通話状8205の途中で顧客ユニッ)102が受話器置
き戻しとなると、その事実はV−IN1002プロセス
によって検知され、置き戻し信号がFSM1005に伝
達される。後者は該置き戻し信号に反応して、ロジック
信号表628の322であるPOTに含まれるインター
プレツタ1006にそのポインターを特定・送達する。
後者のポインターは図4に示したように、トリプル32
2のコンパイルされたコードを示す。このコンパイルさ
れたコードの実行の結果、5ENDプリミチブが実行さ
れて、接続解除信号219が発信側顧客ユニットに送ら
れるとともに、NEXTSTATEプリミチブが実行さ
れて状態がアイドル状B201に変化する。
NEXTSTATEプリミチブの実行によって、通話状
態については離脱信号が発生され、アイドル状態201
についてはエンター信号が発生される。FSM1005
は離脱信号に反応してポインターを特定し、それをロジ
ック信号表629に含まれるインタープレフタ1006
に送る。後者のポインターは図4に示したようにトリプ
ル321のためのコンパイルされたコードを示す。後者
のコンパイルされたコードの実行の結果、顧客ユニット
102から発信側への音声通信路は破断される。アイド
ル状態に関連づけられたエンターロジック信号表はない
ので、エンター信号の発生は何の効果もない。
起動と停止の効果を示すため、次の例を考えてみよう。
顧客ユニット102が通話状態にある時に、リアルタイ
ムの時計が午後5時であることを示したと仮定する。時
報発生プロセス1004は午後5時である事実に反応し
て時刻信号FS?jlO05に伝達する。後者のプロセ
スは時刻信号に反応して、通話状態に関係する時刻ロジ
ック信号表625を特定する。後に図23および24で
詳細に説明するように、FSM1005はまずトリプル
506のコンパイルされたコードを示すポインターをイ
ンタープレツタ1006に送り、そしてインタープレツ
タ1006がトリプル506を処理した後で、FSM1
005は該ポインターをトリプル507のロジック信号
表の625からインタープレツタ1006に実行のため
送る。トリプル506についてのコンパイルされたコー
ドの前者の動作は、事態時刻(8時OO分)が発生した
かどうかを澗べて時刻が午前8時00分であるかを確認
するのが目的である。ここの例では時刻が午後5時OO
分であるので、事態は一敗せず、トリプル506の作動
定義は実行されない。
インタープレツタ1006は制御をFSM 1005に
返却し、該FSHは図5に示したとおりトリプル507
を示すロジック信号表625のエントリー507である
CFAに含まれたポインターをインタープレツタ100
6に送る。後者は該ポインターに反応して、トリプル5
07についてコンパイルされたコードの実行を開始する
。図5に示したように、トリプル507のコンパイルさ
れたコードの最初の部分は、該トリプルの作動定義部分
の実行に先立って、事態が特定された時刻(17時00
分)事態と一致しているかどうかを確認する。時刻が午
後5時OO分、すなわち24時間表示では17時OO分
であるので、そしてこの日が日曜日から金曜日までの間
であると仮定すれば、トリプル507 (7)DEAC
TIVATEプリミチブとPRINTプリミチブが実行
される。DEACTIVATEプリミチブはCFスクリ
プトが停止されるべきことを示す停止信号をFSM10
05に送達させる。この時点では実際の停止は起こらな
い。
FSM1005が停止信号を受信すると、図5に示した
ように該FSMはCFスクリプト500の一部であるト
リプルをすべて除去するようにすべての状態を処理する
。このプロセスは図23から図28において詳細に示し
た。本例においては、CFスクリプト500は事態定義
が停止信号に反応するようなトリプルを一つも有してい
ないので、トリプルはFSM1005で単純に除去され
るだけであって、それによってCFスクリプトの実際の
停止が完了される。CFスクリプト500と関係するト
リプルの除去後では、アイドル状態、呼び出し状態およ
び通話状態のロジック信号表は図7に示したとおりのト
リプルへのポインターを含んでいる0例えば、アイドル
状態については、CFトリプルに関するレファレンスが
除去されてしまっているので、アイドル状態で原生信号
が受信された時にロジック信号表702で最初に実行さ
れるトリプルは発信人確認トリプルである。
フィーチャ間の序列が図6のロジック信号表にトリプル
のレファレンスを保存する方法を変更することによって
変更し得ることは、当業の者には明白だろう。例えば発
信人確認を転送に優先させようとするならば、ロジック
信号表でCPIトリプルを通話転送トリプルの上位に置
けばよい。例えば、原生ロジック信号表602において
、順番はCPI 、504、CF、502、そしてPO
T、303となる。同様に、原生ロジック信号表609
と原生ロジック信号621のエントリーも変更される。
図8のpoosスクリプトは、一つのスクリプトが自ら
の停止を制御する様子を詳細に示している。
後者のスクリプトはデータ・サービスを提供するのに使
用される。さらに、このpoosスクリプトは図1に示
したシステムのためのデータ・サービスの提供を説明し
てしいる。POT 、 PODS、 CPI 、CFA
そしてCFのスクリプトがコンパイルされダウンロード
される場合、これらは図6に示したようなロジック信号
表に、各々のスクリプト用のトリプルを含んだロジック
信号表がCF)リプルを最上位に、そしてCFA  I
−リプル、CPI  I−リプル、PODSトリプル、
最後にPOT  )リプルを持つような形で挿入される
。20口Sスクリプトが最初に起動されると、トリプル
801が起動信号に反応して実行され、その結果、$D
ATE変数と$0EACTfVATE変数が「否」に等
しくセットされる。$DATA変数は現在、データ通信
が進行中であるかどうかを示し、$DEACTIUAT
E変数はアイドル状態に入った場合、スクリプトがパー
ジされるかどうかを示す。
PODSデータ通信の目的は、顧客のデータ端末から別
の顧客のデータ端末に複数のパケットから成るメツセー
ジを送信することを顧客に可能とさせることにある。し
かしながら、当業に精通した者には、このスクリプトを
ある顧客ユニットのコンピュータから別の顧客ユニット
のコンピュータへの移送とするように拡張させることは
明白であろう。顧客ユニットが別の顧客のデータ端末へ
のデータ通信を一旦設定すれば、このデータ通信は該顧
客が“disconnect”なる用語を人力してデー
タ通信を接続解除するまではオプションとして残り続け
る。
では、前述のデータ通信を提供する際の図8に示したp
oosスクリプトのオペレーションを考察してみよう。
例えば顧客ユニットlO2を使用している顧客は、通信
しようとする相手方顧客ユニットを指定する一連の数字
をタイプすることによってまず通信を設定する。アイド
ル状態での数字のエントリーに反応して、トリプル81
4が実行され、その結果$DATA変数が「是」と等し
くセットされ、そして$ORIG INATOR変数が
$THIS変数と等しくセットされる。次いでSEND
MESSAGEプリミチブも用いて、相手方への原生信
号が一つのメツセージ、ストリングの形で送られ、NE
χTSTATEプリミチブが用いられて出力パルス状態
に入る。
音声通信の設定の場合であれば、顧客はアイドル状態の
受話器を取り上げ、ダイアル状態に置かれる。音声通信
のためのダイアル状態では、顧客は一連の数字を入力し
、それによって音声通信路だけが設定される。すなわち
、データ通信の場合では相手方を指定する数字がアイド
ル状態の時に入力されるのに対して、音声通信の場合で
は該数字がダイアル状態の時に入力されるので、システ
ムはこれをもってデータ通信と音声通信を区別するので
ある。受信側はデータ通信の場合はメツセージの“原生
”ストリングの送信にSENDMESSAGEが使用さ
れるのに対して、音声通信の場合は原生信号223の送
信に5IENDブリミチブが使用されるので、これをも
ってデータ通信の着信か音声通信の着信かを区別する。
受信側はこれらの事実をrcvmessageと原生事
態の起動から認識する。
さて出力パルス状態に入ると、顧客ユニット102は、
話し中信号、入力信号または呼び出しメツセージの受信
のいずれかに移り、その結果、それぞれ、アイドル状態
のエントリー、アイドル状態または可聴状態となる。ト
リプル817と813は、それぞれ話し中信号または入
力信号の発生時に実行される動作定義を示す。図3に示
したトリプル311は呼び出しメツセージ信号の受信時
に取られる動作を定義する。これが発生した時は、NE
XTSTATEプリミチプが実行されて、顧客ユニット
を可聴状態に移行させる。
可聴状態に入ると、トリプル816が実行されて、その
結果、相手方の注意を惹起したことを告げるメツセージ
が端末106にプリントアウトされる。可聴状態では、
顧客ユニットは“disconnect”ストリングを
伴なった入力信号の発生、または相手方からの話し中信
号の受信によって、それぞれトリプル812または81
7が実行される結果、アイドル状態に移行することがで
きる。受信側顧客ユニットがデータ送信を受は付けると
、そのユニットは、5ENDプリミチプを用いて発信側
顧客ユニットにメツセージを送って応答メツセージとす
る。発信側ユニットで応答メツセージが受信されたとい
う事態に反応して、図3のトリプル316が実行され、
その結果、顧客ユニッ)102は通話状態に移行される
通話状態に入ると、トリプル810が実行され、その結
果、特定の相手方顧客ユニットに接続ができたことを示
すメツセージがプリントアウトされ、そしてト、リプル
810の動作定義を終了させるC0NTINUEプリミ
チブがあるので、制御は図4に示したようにPOTスク
リプトのトリプル320に移る。トリプル320の実行
は発信側と受信側の顧客ユニットの間にデータ路に加え
て音声路を設定させる。通話状態はトリプル811また
は812の実行によって脱出できる。これらトリプルの
いずれも発信側顧客ユニットを通話状態からアイドル状
態に移行させる。音声路は図4に示したようにトリプル
321で除去されるが、これは通話状態の離脱事態に反
応してDISENGAGEプリミチブを実行する。
データ通話の設定を受信側顧客ユニットの観点から考察
してみよう。一つの原生ストリングを持ったrcv+m
essage事態が発生すると、受信側顧客ユニットが
アイドル状態にあると仮定すればトリプル806が実行
される。そうでなければトリプル805が実行され、話
し中信号が発信側顧客ユニットに返送される。トリプル
806の動作定義は5RNOプリミチブを用いて呼び出
し信号を発信側顧客ユニットに送信して、受信側顧客ユ
ニットが呼び出し状態に入りつつあることを伝え、$D
ATA 。
$0RIGINATOR、$0THHRPARTY変数
を初期化する。
呼び出し状態に入ると、トリプル807が受信側顧客ユ
ニット内で実行され、通話先を示すメソセージが当該の
端末にプリントアウトされる。もし発信側が通話設定を
接続解消信号の指示によって終了させると状態はアイド
ル状態に変えることが可能であり、その結果トリプル8
08が実行される。受信側顧客ユニットの顧客は、“c
oivnect ”なる用語の入力事態を発生させるこ
とによって通話を設定することが可能であり、その結果
、トリプル809が実行され、動作定義は発信側顧客ユ
ニットに応答信号を送信し、状態は通話状態となる。通
話状態に入ると、トリプル810が図9に示したように
実行され、それに加えてトリプル320が図4に示した
ように実行されてデータ路に加えて音声路が設定される
。受信側顧客ユニットにおける通話状態の終了は、発信
側顧客ユニットの観点から先に述べた方法と同様に行な
われる。
では、図1の端末106のような端末からpoDsスク
リプトを停止させようとすることを規定したDEACT
IVH命令が実行された後で、図8に示したようなpo
Dsスクリプトがその停止を遅らせる様子を詳細に考察
してみよう。この遅れはデータ通信を完了させるための
ものであって、進行中のデータ通信が現在ある場合にの
み停止を遅らせることが必要である。従って、状態はア
イドル状態ではない。停止事態が発生し、状態がアイド
ル状態ではないので、トリプル802が実行され、その
結果、$DEACTIVATE変数は「是」と等しくセ
ットされ、次いで5TOPプリミチブが実行される。後
に図23および24で述べるように、一つのスクリプト
がFSM1005に対して5TOPプリミチブの実行に
より自らの停止を扱うよう指示する。データ通信が一旦
完了し、かつ状態がアイドル状態に移行されると、トリ
1/L/803が実行される。IDEACTIVA’r
E変数が「是」であるので“if″ステートメントの“
then”部分が実行され、その結果として図6および
7に示したようにロジック信号表からPQDSスクリプ
トを除去するPURGlliプリミチブが実行される。
ある与えられた信号に反応してどのトリプルが実行され
るかを特定するフィーチャプロセス1000に用いられ
るデータ構造を図11.12および13に示した。後者
の図は図6および7に表わされたロジック信号表の詳細
な実施を示す。
図10に示した有限状態マシンFSM1005がプロセ
ス1001から1004までのうちのいずれか一つから
の信号を受は取ると、FSM1005は場所1101に
保存されている現在状態インデックスならびに1102
に保存されている状態ポインターを利用して、パス11
03を通じた状態表1104の場所を決定する。状態表
1104のある一つの場所に保存された値は、パス11
05を通じたFSM Signalの表1110 、 
FSM SignalPTRの場所1107、およびパ
ス1108の場所を間接的に示すポインターである。状
態表1104は有り得る顧客ユニットの各状態のための
間接的なポインターを含んでいる。同様に、有り得る各
状態について1107から1120までにはFSMSi
gnal PTRポインターが1106に一つずつある
一つのFSM Signal表への各エントリーは該表
と関係した状態で起生しうる信号用の事態定義と関係づ
けられている。例えば、FSM1005が一旦FSMS
igna1表1110にインデックスすると、FSM1
005は該信号番号を利用して処理する信号を特定し、
それを後者の表の中の正しい場所にインデックスする。
FSM Signa1表1110表定110中クスされ
た場所は、パス1111、トリプルリスト1113およ
びパス1114を通じてPfogravs10表111
6を間接的表示116113のようなトリプルリストは
FSM Signal場所とも言われる。
FSM Signa1表1109から1110までと1
121で表わされる状態のいずれでも反応し得る信号の
個゛々について、FSM Signal場所1112か
ら1113までのものが存在する。
Program表1116は図1116示されている。
1116のようなProgram 10表はFSM10
05が処理中であるとの信号に反応し得るすべてのトリ
プルに対するレファレンスを含んでおり、また図6およ
び7の該当ロジック表に含まれるすべてのトリプルに対
するレファレンスを含んでいる。
FSM1005が該信号を完全に処理するには、Pro
gram 10表1116のような表のエントリーと関
係しているトリプルを個々に実行するか、もしくは該ト
リプルのうちの一つが5TOPプリミチブを実行するま
で実行することが必要である。表1116中のエントリ
ーで表わされるすべてのトリプルを処理するため、FS
M1005は現状インデックス変数を維持し、これらエ
ントリーを最後に起動されたトリプルから処理を開始す
る。表1116の各エントリーは1201のようなスク
リプト表へのインデックスおよび1208のようなトリ
プル表へのインデックスから成っている。スクリプト表
1201はスクリプト変数によって示された表1201
の下部からのインデックスであるパス1202を通じて
ポイントされる。スクリプト表1201中の特定された
場所はパス1203を通じてスクリプト・リスト120
6をポイントする。
スクリプト・リスト1206で特定された情報の処理を
開始するに先立って、FSM1005はスクリプト表1
201中の特定されたポインターをCURRENTSC
RIPT変数に保存する。スクリプト・リスト1205
から1207まではトリプルが共通しているある特定の
スクリプトに関するすべての情報をすべて含んでいる0
図14に示したように、スクリプト・リスト1206の
内部では、ネーム1220と表わられたメモリー場所が
スクリプトのネームを含んでいる。nun+Liter
als  1221と定められた場所は本スクリプト中
のすべてのトリプルで使用される異なったリテラルの数
を含んでいる。リテラル1222と定められたエリアは
二つの部分から成る。第1の部分は、エリア1222の
第2の部分に含まれる実際のリテラル・ストリングを指
定するリテラル論議指示のリテラルIDフィールドによ
ってインデックスされるポインターの表である。この第
2の部分は該リテラル・ストリングより成る。numV
ariables 1223と指定されたエリアは、本
スクリプト中のすべてのトリプルによって使用される異
なった変数の数を含んでいる。エリア指定された変数1
224は、変数論議指示のIDフィールドでインデック
スされるストリング変数としての変数ネームより成る。
変数1224はシステムの最初のダウンロード時に使用
される。
エリア1ntoTJxt 1225はトリプルの変数論
議指示の変数IDフィールドでインデックスされるポイ
ンターの表であり、変数値の全体表へのインデックスを
含んでいる。エリア指定されたnumTriples1
226は変数1227でポイントされるトリプル・アレ
ー1208に含まれるトリプルの総数を定義する。変数
1d122Bはスクリプトアレー1201にインデック
スするのに用いられるインデックスを保存する目的に使
用される。変数1229は該スクリプトが現在起動して
いるか否かを指定する。最後に、変数指定されたdel
etescript1230は、あるスクリプトをメモ
リーから完全に除去する時に使用される。
図12または14のスクリプト・リスト1206中のト
リプル1227はトリプル表1208へのポインターを
含んでいる。後者の表は、スクリプトのトリプルについ
てのコンパイルされたコードを間接的にポイントするポ
インターを含んでいる。
トリプル表1208はパス1204を通じてProgr
am10表1116からトリプル・フィールドを使用す
るためにインデックスされる。パス1204によってト
リプル表1208へインデックスされる場所は一連のメ
モリー場所を含むトリプル1210をポイントするが、
このメモリー場所は該トリプルの実際のコード化された
実施内部の様々な情報をポイントする。トリプル表12
08の各エントリーについてトリプルのコード化された
実施が一つ存在し、またトリプル1209から1221
までのような対応トリプルが存在する。
トリプル1210でポイントされたコンパイルされたト
リプル・コードが一旦実行されると、図10に示したイ
タ−プレツタ1006はもう1度制御をFSM1005
に戻す。後者はProgram 10表1116の次の
場所にインデックスし、次辺トリプルの新しいコードが
トリプル1209から1211までのいずれか一つによ
って特定されるまで、前述のものと同様のパスによって
インデックスし、次いでFSM1005は再び制御をイ
ンタープレツタ1006に戻す、このプロセスはPro
gram+ 10表1116中のすべてのトリプルが実
行されるまで、もしくはトリプルの一つが5TOPプリ
ミチブを実行するまで継続する。
トリプルのコンパイルされたコード・フォーマットは図
15に示されており、数字コード(ASCII)を用い
てコード化されている。場所1500はこのコンパイル
されたコードのバイト数を定義する。
トリプルの状態定義の中での特定された状態の数(すな
わち、該トリプルが適用される状態の数)は場所150
1に保存されており、これらの状態の数字IDは場所1
503に配置されている。同様に、ネーム化された事態
のInは場所1504に保存されている。ソース・コー
ド・トリプルの事態定義の中で特定された事態の一つ一
つについて、一つのコンパイルされたトリプルが存在す
る。
1501から1504までに保存された情報は、スクリ
プトの起動の際に使用される。コンパイルされたコード
の指示部分または動作は場所15o5と1506に含ま
れている。エリア1505は通常二つの異なる部分から
成る。事態定義中に特定された事態パラメータがなけれ
ば、次に示すとおり第2部分しかない。
エリア1505の第1の部分は、信号発生によってコン
パイルされたトリプル・コードへ移されようとする値を
回復する目的および該トリプルの事態定義が完全に満足
されたかどうかを判定して以降の部分が実行されるべき
かどうかを判定する目的に使用される。エリア1505
の第2の部分はプリミチブと指示を含んでいる。場所1
506はHALTブリミチフ゛を含んでおり、これはそ
れまでのエリア1505の実行において5TOPかC0
NTINUF!が出てきていなければインタープレツタ
1006に制御をFSM1005へ戻させる。プリミチ
ブは指定された動作を実行するためのC+十機能のサブ
ルーチン通話である。
エリア1505内のコードの一般的シーケンスは論議コ
ードおよびそれに続く指示コードまたはプリミチブ通話
であってそれまでの論議を利用するものから成っている
。この論議ならびに指示とプリミチブという通常のフロ
ーの例外は図17と18に示した0図17はアサインメ
ント指示を示すが、その場所は指図が最初に来て、次に
アサインメントを受けるための変数の内部的認識コード
が続く。図18はSENDMII!5SAGE指示を示
すが、この指示は指示の第2のフィールドで指示された
送信されるべきパラメータについて任意の数を有するこ
とができる。
一般的に、論議コードはリテラル、変数、ブランチ、ツ
ー、アドレス論議もしくは信号論議という分類に属する
。図19と20は、リテラルまたは変数ならびに信号論
議のためのこれらの指示のフォーマットをそれぞれ示す
。これら論議の一つがインタープレツタ1006と出会
うと、それは10とラベルされた内部的認識コードを取
り、そのIDを用いた実際の値へのポインターを表への
インデックスとして獲得し、該ポインターをインタープ
レフタのスタックの上に押し上げj。該論議を用いた指
示またはプリミチブが実行されると、それは該スタック
をポツプしてポインターを獲得し、該ポインターを利用
して実際の値をパスする。
信号の試験および関連値の回収は以下の方法によって行
なわれる。トリプルの事態パラメータは該トリプルの実
行時に情報をコンパイルされたトリプルに転送すること
ができる。この情報はあi変数について検索された一つ
の値であっても良いし、または複数の値、例えば“入力
”事態であっても良い。FSM1005は5IGNAL
−ARGアレーの事態パラメータ・コードにパスされな
ければならない値はどんなものでも保存する。トリプル
のためのコンパイルされたコードの最初の指示がこれら
の値を検索する。「入力($5OURCE) Jのよう
な事態定義については、値回収コードは単に5IGNA
L−ARGアレーの第1の場所をアクセスしてそこに保
存された値を獲得し、$5OURCE変数を検索値と等
しくセットする。「入力」のような事態の場合には、端
末から受信された第1の入力ストリングを回収し、次い
で該ストリングをリテラル表のコンパイルされたトリプ
ルからの保存データと比較して該入力事態がトリプルの
定義したものと正確に一敗しているかどうかを判定する
ことが必要である。
もし入力事態のリテラル情報がコンパイルされた。
トリプルからの保存されたものと一致しない時は、制御
がFSM1005に戻されて次のトリプルが実行される
。端末から受信された最初の入力ストリングが入力事態
定義の最初の論議と一致すれば、該トリプルの残りのコ
ードが実行される。rcvmessage事態、返答事
態および時刻事態も入力事態と同様の方法で機能する。
さらに、入力事態、rcvmassage事態および返
答事態は変数論議の変数を持つこともできるが、その値
はトリプル実行時の位置対応によって5IGNAL−A
RGアレーから獲得されなくてはならず、適切な変数場
所に保存されなくてはならない。値が回収された後は、
トリプル・コードの残りが実行される。
ブランチ指示のフォーマットは図21に示した。
条件ブランチの場合は、インタープレフタがスタツクか
ら試験値をポツプしてブランチがあるかないかを判断す
る。表■、■および■はそれぞれ事態コード、状態コー
ドおよび指示コードの十進法数字コードを示す。
事態              コード原生    
             O接続解除       
        1受話器取り上げ         
   2受話器置き戻し            3桁
番号                4呼び出し  
             5応答         
        6話し中             
   7照会                 8ア
イドル                  9非アイ
ドル               10rcvmes
sage                11人力 
                12返答     
            13警報         
       14時刻              
  15起動                 16
停止                17エンター 
               18離脱      
          191↓ 状態               コードアイドル 
                O呼び出し    
            1通話          
       2接続解除             
  3ダイアル               4話し
中                5可聴     
             6出力パルス      
        71見 指示 コード プリミチブ Mnemonic  コー
ドHLT   OALARM     ALM    
 21BRU   I   CANCEL    CA
N     22BRC2APPLY     APP
     23LAR3REMOVE    RMV 
    24VAR45END     SND   
  25SAR5SENDMESSAGE  SNM 
    26BAR6PI?INT     PRI 
    27EQL   7   DIAL     
DIA     28NEQ   8   FO四^R
D    FWD     29GRT   9   
ASK      ASK     30LSS  1
0   ACTIVATE   ACT     31
GEQ    1 1     DEACTIVATE
    DEA         3 2LEQ  1
2   ASSIGN    ASN     33A
OD  13   ENGAGE    ENG   
  34SOB  14   DISENGAGE  
 DIS     35MUL  15   NEXT
STATE   NXT     36DIV  16
   PURGE     PRG     37NE
G  17   C0NTINUE   CON   
  38AND    18   5TOP     
   STP       390RI?19 NOT   20 図22はトリプルのリテラルと変数コードがそれぞれ変
数とリテラル情報へのアクセスを獲得するのに使用され
る様子を示す。ローカルな変数表2201、図14にお
いてリテラル1225とも呼ばれるリテラル変数220
4およびリテラルのりスト2205は、図14のスクリ
プト・リスト1206のような関係するスクリプト・リ
スト内に維持されている。リテラルのリスト2205は
コンパイルされたスクリプトの一部である。変数の場合
は、変数コードが使用されて図14においての1225
のような1tToExtとも呼ばれるローカルな変数表
2201がアクセスされ、該変数表からは全体の変数表
2202へのインデックスが得られる。全体の変数表2
202は一つの顧客ユニットの中では全スクリプトに共
通である。全体変数表2202からは変数の実際の文字
ストリング値を含んだ変数値2203へのポインターが
得られる。同様に、リテラル・コードは、リテラル値2
205へのポインターが得られるリテラル表2204 
(1222)をアクセスするのに使用れれる。関係する
リスト中のすべてのリテラルと変数とは、各情報の終了
を指定する無効文字によって終了される。
システム・オペレーションのダウンロード段階において
は、プロンプト・ユーザー・プロセス1003内のコー
ドはコンピュータ101がら受信されるデータに反応し
て、それを図11.12および13に示した表に保存す
る。
図23と24はFSM1005の実行プログラムをフロ
ーチャートの形式で示した。図23と24C+ 十Pr
ogramming Langnage)なる題名の書
物に詳細に述べられている。図23および24に示した
プログラムが一旦ブロック23o1によって初期化され
ると、それはブロック23o2から2315までを反復
的に実行する。ブロック2313と2314は停止信号
が受信されるとスクリプトの停止(すなわち、図11.
12および13の表とポインターの修正)を実行し、ブ
ロック2315は起動信号が受信されるとスクリプトの
起動を実行する。ブロック2301はFSMLOO5の
内部的なある種の変数をまず初期化する。$T)IIS
変数は顧客ユニットの呼び出し番号と等しくセントされ
、i−arg変数はオペレーティング・システムの異な
ったメツセージと共にパスされるパラメータを特定する
ポインターの表へのインデックスと等しくセットされる
。これらのパラメータは該信号と関係する一切のストリ
ング情報から成っている。
FSM1005がメツセージを受信すると、ipポイン
ターはオペレーティング・システムから処理されるべき
次のメツセージの場所と等しくセットされる。当業にお
いて良く知られているように、オペレーティング・シス
テムはどんな時点でもI’5M1005による処理を保
つ複数のメツセージを有することができ、処理すべきメ
ツセージが存在する限りFSM1005の実行を起生ず
る。ブロック2303は、オペレーティング・システム
によって指定されたエリアに保存されたメツセージの型
式をポイントするipポインターを用いて、メツセージ
内のメツセージ型式と等しいものにMGSTYPE変数
をセットする。ブロック2304は咳!’1sGTY1
’l!インデックスを利用して、それぞれの信号型式に
ついての数字認識を含んだ信号“#”表へのインデック
スを行なう。これらの十進法数値は表■に定義した。該
信号についての数字コードがブロック内2304で決定
されると、決定ブロック2305は該信号が起動信号で
あるか否かを判断する。該”信号が起動信号であれば、
ブロック2315は実行される。ブロック2315の詳
細な図29.30および31において示した。
l立 信号         コード 原生            0 接続解除          1 受話器取り上げ       2 受話器置き戻し       3 桁番号           4 呼び出し          5 応答            6 話し中           7 照会            8 アイドル           9 非アイドル         10 rcvmessage          11人力 
          12 返答           13 警報           14 時刻           15 起動           16 停止           17 エンター          18 離脱           19 ブロック2306は現在処理中の信号に対応する事態を
特定する目的ならびに該事態のためのネーム・ストリン
グを$1!VENT変数に保存する目的に利用される。
ブロック2307と2308はオペレーティング・シス
テムのメツセージのパラメータをアクセスし、これらの
パラメータをARGと呼ばれるアレーに保存する。
ブロック2309aは図11および12に示したパスを
実行してFSMSIGNAL 1113のように利用す
べきFSMSIGNAL構造を決定する。後者のブロッ
クは、状態表1104.1107のような一つのFSM
SIGNALPTR変数および1110のようなFSM
SIGNAL表を通じて変数1101と1102からの
ロジック・パスを実行する。ブロック2309bは現在
のインデックスをゼロにセットする。現在のインデック
スは1116のようなProgramlD表にインデッ
クスするために使用される。加えて、ブロック2309
bは戻りコードをC0NTINUEと等しくセットする
。コンパイルされたコードのインタープレフトの間、あ
るトリプルのためのコードは戻りコードを5TOPに変
更することがある。加えて、ブロック2309aはTH
ISSIGNAL変数を5IGNAL変数と等しくセッ
トする。
1113のようなFSMSIGNAL構造へのエントリ
ーが一旦アクセスされると、該エントリーは1113の
ようなトリプル・リストを通じてProgram 10
表をポイントする。ブロック2310と2311は次い
で指定されたProgram 10表中の特定されたト
リプルのすべてについてコンパイルされたコードの実行
に進む。この指定されたProgram IOは、顧客
ユニットの現在の状態について、現在処理中の信号に反
応し得るすべてのトリプルを特定するポインターを含む
ブロック2311aは図12の1206のようなスクリ
プト構造を、1201のようなスクリプト表を通じたP
rogramID表1116へのエントリーのスクリプ
ト部分を通じて特定するのに使用される。パス1202
に示されるような特定されたスクリプト表へのエントリ
ーは、現在処理中のトリプルに含まれるスクリプトを決
定する。スクリプト表中の特定されたエントリーはCU
RRENTSCRIPT変数に保存される。ブロック2
311bは、次いで図12および13に図説的に示した
パス1212、パス1204、トリプル表1208およ
びパス1215を通じて実行されるべきコンパイルされ
たトリプル・コード1210を特定する。変数ipは1
210のような特定されたトリプルと等しくセットされ
る。ブロック231.I Cは、次いで“EXECUT
E ”機能を実行せしめるが、この機能は図34.35
.36そして37に詳細に示したインタープレフタ10
06を起動する。ブロック2311Cは該インタープレ
ツタ−に実行すべきコンパイルされたトリプル−コード
へトリプル1210を通じてポイントするTP変数を送
る。該インタープレフタは5TOPまたはC0NTIN
UEのいずれか一つである戻りコードの値を戻す。ブロ
ック2311dは現状のインデックスを増加して、特定
さたProgram IO表1116中の次のトリプル
についてコンパイルされたコードが実行されるようにす
る。
ブロック2311が実行された後では、以下の条件のい
ずれかが「真」であれば、決定ブロック2310は制御
をブロック2312にパスする。
まず第1に、戻りコードが5TOPと等しいかどうか。
もしも戻りコードがC0NTINUEと等しければ、ブ
ロック2311が再実行される。しかし、もし戻りコー
ドが5TOPと等しければ、現在の信号の処理は停止し
、ブロック2312が実行される。検証される第2の条
件は現在のインデックスが特定ProgramIDfi
ll16中のエントリー数より大きいかどうかである。
確認される最後の条件は、ブロック2311Cでインタ
ープレットされたばかりのトリプルがPURGESCR
IPT 10ルーチンを実行していたかどうかである。
後者のルーチンの実行は実行トリプルをProgram
 Inから除去したばかりでなく、同じスクリプト中の
他の未実行も除去してしまった可能性がある。加えて、
この最後の条件は、もし最初に現在の状態で現在の信号
に反応できるトリプルがなければ満足される。もし未実
行のトリプルの結果、特定ProgramID表の中に
他のトリプルが何も残ってなければ、Program 
ID表1116は除去され、1113のトリプル・リス
ト・ポインターはNULLにセットされる。以上3条件
のいずれかが満足されると、ブロック2312は実行さ
れてARG表へのインデックスのための初期条件がブロ
ック2308の以降の実行のための正しい値にセットさ
れる。
ブロック2313と2314は停止信号の扱いを詳述し
ている。停止信号は停止すべきスクリプト内に対応した
停止事態を持つことができ、スクリプトは停止事態を利
用して該スクリプトの物理的停止はパージングを後刻ま
で遅らせることができる。この能力は、作業が任意には
終了させることができず、終了まで進まなくてはならな
いスクリプトに対して与えられる。かかるスクリプトは
図8および9に示した。スクリプトはそのトリプルの中
で停止信号に反応する5TOPプリミチブを実行するこ
とによって、その停止を後刻にまで延期する。決定ブロ
ック2313は5TOPプリミチブの実行を検知し、ス
クリプトのパージングを実行するブロック2314は実
行しない。ブロック2314はすべでのProgram
 10表のスクリプト内部に含まれるすべてのトリプル
に対するレファレンスを除去することによって、スクリ
プトのパージングを実行する。
図24のブロック2314は図25に詳細に示した。P
URGBSCRIPTID手続はその状態内のそれぞれ
の状態と信号の間を循環して該状態で該信号に対応する
Program 10表から削除されようとしているス
クリプトと関係したトリプルをすべて除去する。それは
これらのトリプルを除去するために、ブロック2505
においてレファレンスされたDELSCRIPT機能を
利用する。変数iとjは、それぞれ状態と信号へのイン
デックスの目的で使用される。まず、iがブロック25
01によってゼロにセットされる0次に、THI 5S
CRIPTの論議またはパラメータの内容によって指定
されたところによって削除しようとするスクリプトと関
係したトリプルがあるかどうかを判定するため、すべて
の状態がチェックされる。決定ブロック2502はiを
変数FC−3TATESに含まれた状態の総数と比較す
ることによって、すべての状態がチェックされたかどう
かを判断する。iが状態の総数より少ない限り、ブロッ
ク2503から2507までが実行される。ブロック2
503から2507までの各実行毎に、ブロック250
3はj変数をゼロと等しくセットする。決定ブロック2
504は、すべての信号が削除されるまで、DELSC
RIPT @能の実行を制御する。
DELSCRIPT機能は停止しようとするスクリプト
と関係したすべてのトリプルを削除するProgram
ID表を特定するポインターをバスする。DELSCR
IPT機能は、読いて特定1’rogram 10のア
レーのエントリーすべてを循環して、停止されるスクリ
プトと関係したトリプルを除去する。このi変数は図1
1の状態表1104の中をステップしている。表110
4への各エントリーについて、1110のような一つの
FSi信号表が特定される。j変数は、特定されたFS
M信号表の各エントリーをステップ・スルーして、各エ
ントリーは1113のようなトリプルリスト/FSM信
号変数を通じてProgramloを特定する。
図25のブロック2505のDELSCRIPT機能は
図26.27および28にフローチャートの形でより詳
細に示した。スクリプトと関係するトリプルは2段階で
削除される。第1段階ではブロック2604から260
9までがGOODTRIPLESに保存されたProg
ram 10アレー1116内で特定された新しい数の
トリプルならびにNEWINDEXに保存された現在の
インデックス変数についての新しい値を決定する。現在
のスクリプトと信号に関係したトリプルの実際の除去は
ブロック2611から2619までで実行される。この
手段は仮のProgram 10を創設し、古い表から
セーブすべきトリプルをすべて移送し、次いで仮の表を
新しいProgram 10として、それを1113の
ようなTRIPLELIST変数の中で特定するという
ものである。
ブo、り2601が実行されると、NEWINDEX変
数はCURRENTINDEX変数と等しくセットされ
る。こ(7)CURRENTINDEX変数は図24の
ブロック2310から2311まで現在処理されている
トリプルのインデックスと等しい、変数GQODTRI
PLESはゼロに初期化される。図25のブロック25
03から2507までは各信号が各状態に対応した一つ
のProgram ID表を有していると仮定している
ので、処理中のある信号が本当にある状態について一つ
の対応Program ID表を有しているかどうか確
認する必要がある。この決定は決定ブロック2602に
よって実行される。図11に示したように、FSMSI
GNAL表は1112から1113までの一連のトリプ
ル・リストへのポインターを有している。
各FSMSIGNAL表の有り得る信号のそれぞれにつ
いて一つのエントリーが存在し、各エントリーには一つ
の対応するFSMSIGNAL構造/リストが存在する
。ある一つの状態下である一つの信号に反応するトリプ
ルがなければ、該信号についての該トリプル・リストは
無効値を含んでいるのである。
PURGESCI?IPTID機能が処理している現在
のFSMSTGNALにあるエントリーによって特定さ
れたトリプルリストが無効値を含んでいる場合は、決定
ブロック2602が制御をPURGESCRI PT機
能に戻す。もしトリプル・リストが無効値を含んでいな
ければ、それは該信号が、この状態下での一組の対応ト
リプルを有していることを意味し、制御はブロック26
03に移る。
では、変数GOODTRIPLESに保存されている有
効トリプルの数がどのように決定されるか詳細に考察し
てみよう。決定ブロック2604は現在のProgra
m 10内に特定されたトリプル数が最大値より大きい
かどうかを判断する。Program 10のトリプル
の最大数は図12に示したような1116のような場所
kに保存されている。もしiがトリプルの最大数より小
さければ、決定ブロック2605が実行されて、Pro
gram 10ブロツクへのエントリーが削除されよう
としているスクリプトと関係しているかどうか判断する
。もしスクリプト・インデックスが、THISSCRI
PT変数へのエントリーによって特定される現在処理中
のスクリプトと異なっていれば、ブロック2609が実
行され、それはGOODTRIPLES変数を1だけ増
加させる。もし1だけポイントされたトリプル−エント
リーのスクリプトがTHl5SCRIPT変数と一致す
れば、ブロック2606が実行されて、それはi変数に
よってポイントされたProgram 10表へのエン
トリーを後でブロック2611から2619までで処理
する上で無効であると印す。
次いで制御は決定ブロック2607に移行される。後者
の決定ブロックは除去されるべきトリプルがProgr
am 10表において、現在実行中であって該DELS
CRIPT機能を実際に起動させた現在のトリプルより
下位にレファレンスされているかどうかを決定する。も
し現在処理中のProgram 10がDELSCRI
PT機能を実行させたトリプルのものであり、かつiが
実行されるトリプルをポイントする現在のインデックス
より小さければ、ブロック2608が実行され、それは
NEWINDEX変数を1だけ減少させる。これはNE
WINDEX変数がブロック2601 (7)CURR
ENTINDEXと等しくセットされたからである。N
EWINDEX変数の内容はブロック2619において
、現在のトリプルが解釈を終了した後でもProgra
m ID表からの実行が継続するようにRRENTIN
Df!X変数を調整する目的に使用される。
Program 10表へのすべてのエントリーが保持
されるべきトリプルについてチェックが終わると、決定
ブロック2610が実行されて、残ったトリプルがない
か、あるいは、Program 10アレー中のすべて
のトリプルがパージされるスクリプトと関係していたか
を判断する。もし後者の条件が「真」であればブロック
2620が実行され、トリプル・リストは無効値と等し
くセットされて、現在の状態においては該信号に反応す
るトリプルがないことを示す。次に、CURRENTI
NDEXもゼロにセットされて、将来制御がFSM10
05に戻された時に該Program 10表から別の
トリプルを実行しようとする動きが生じないようになる
もしパージされるスクリプトと関係していないトリプル
が存在する場合は、図28のブロック2611から26
19までが実行される。ブロック2611はポインター
TMPLISTをGOODTRIPLES変数に含まれ
た数と等しい数のエントリーを持った新しい表と等しく
セットする。次にブロック2613から2617までは
Program 10内をインデックスして、無効の印
しがないエントリーを探す、無効と印されていないエン
トリーはすべてブロック2615と2616によって新
しいアレー表に移送されるが、これらのブロックはそれ
ぞれスクリプトとトリプルの認識を挿入する。Prog
ramIOのエントリーがすべてチェックされた後、制
御は2618に移行されるが、それはFSMSIGNA
L表からのトリプル・リスト・ポインターをTMPLI
ST変数と等しくセットする。これは新しいアレー表を
、1113のような指定されたFSMSIGNAL表に
よってポイントされるProgram 1口にする効果
がある。次にブロック2619はProgram 10
表でkの場所に保存されているトリプルの数をGOOD
TRIPLES変数に含まれる数と等しくセットする。
そしてCURRENT INDEXをNEWINDEX
変数と等しくセットする。
図23のブロック2315によって定義される起動信号
に反応してFSM1005が実行するオペレーションは
、図29.30および31のブロック29062ら29
11までおよびブロック2917から2923までに詳
細に示した。ブロック2901から2905まではAC
TIVATEプリミチプの詳細を示す。ブロック290
1から2905までの目的は、起動されるべきスクリプ
トのコードを決定し、そしてその数字コードに含まれる
オペレーティング・システム・メツセージをパラメータ
としてプロセス制御1000に送ることにある。プロセ
ス制JH1000はこのメツセージを受信するとFSM
1005を起動させる。
FSM1005が起動されて信号が起動信号であると決
定すると、制御は決定ブロック2305からブロック2
906に移る。後者のブロックはオペレーティング・シ
ステムによってパスされたメツセージ中のパラメータの
リストからスクリプト・コードを得ることによって、i
をスクリプト・コードに初期化する。決定ブロック29
07はスクリプト・コードが有効であることを判断し、
そうであれば制御を決定ブロック2908に移す。
後者の決定ブロックは、まず変数iをスクリプト表への
インデックスとして用いてスクリプト表1201から一
つのポインターを獲得することにより、1206のよう
なスクリプト構造または場所の中で現在のスクリプトが
既に「生き」とマークされているかどうかを決定する。
ブロック2908は、続いて1206のACTIVE変
数1229(7)値をチェックする。もし現在の状態が
「死に」とマークされていれば、ブロック2909が実
行される。
コード2909から2911までおよびブロック291
7から2923までの目的は、ProgramIDの表
に起動されようとするスクリプトのトリプルに対するレ
ファレンスを挿入することにある。
これらのレファレンスは、起動されようとするスクリプ
トの各トリプルの状態定義および事1義によって指定さ
れた状態および信号に対応するProgram 10表
に挿入されるだけである。
図12に見られるように、スクリプト表1201のアド
レスは既知であり、数字コードによるスクリプトの関係
は表1201へのインデックスに使用可能である。後者
の表の情報は、例えばパス1203、スクリプト120
6、パス1212および1214、トリプル表1208
、パス1215そしてトリプル1210のような処理に
よって、スクリプトのトリプルを特定する目的に使用さ
れる。トリプルが特定されると、ブロック2918に示
したコードはコンパイルされたトリプル・コード自身の
内部でコード化された状態情報および信号情報を用いて
、とのProgram 10表がトリプルへのレファレ
ンスを受けなくてはならないかを決定することができる
ブロック2909では、T)IIsポインターが変数i
でインデックスされたスクリプト表1201の内容と等
しくセットされ、次いでスクリプト1206のための変
数にポイントするために使用される。
このTHISポインターは1229のようなACTIV
E変数をTRUEにセットするのにも用いられ名。変数
tはスクリプト・リストに保存されているNUMTRI
PLES変数に含まれる数より1だけ少ない数と等しく
セットされる。Tll l5SCRIPT変数は変数i
の内容と等しくセットされる。tをこのようにセットす
る理由は、スクリプトの第1のトリプルが最上位の優先
順位を持っている必要があり、従ってそれはどんなPr
ogram 10表であっても最後に押し上げられるべ
きものであるからである。
ポインターTPは1210のようなトリプルをポイント
する。図13に示したように、該トリプルは、トリプル
・リストと関係あるトリプルがその状態定義および事態
定義の中で有している状態と信号の数を特定するような
ポインターを含んでいる。この情報は決定ブロック29
17および2919ならびにブロック2918で使用さ
れて、コンパイルされたコードにいくつの状態が存在し
ているかを判断する。ブロック2917から2923ま
でに示したプログラムは各トリプルについてコンパイル
されたコードを取り上げ、そのコードに、コンパイルさ
れたトリプル自身のコード化された状態および信号によ
って指定されたProgram 10へのブロック29
20のPUSHTI? IPLH機能を利用してレファ
レンスを挿入する。変数iは該トリプルの状態定義内で
特定された状態へインデックスするために用いられる。
このプロセスの詳細はPUSHTRIPLE機能を示す
図32および図33に示した。
ある一つのコンパイルされたトリプルについてすべての
状態が処理された後、ブロック2913が実行され、t
は1だけ増加され、そして実行はブロック2910およ
び2911にパスされる。
このプロセスの結果、1208のようなトリプル表はシ
ーケンス的にインデックスされ、そしてトリプル表の場
所によって間接的にポイントされたコンパイルされたト
リプルは必要なProgram IDiに正しく特定さ
れる。該トリプル表のエントリーがすべて処理されると
、決定ブロック2910は制御をブロック2912にバ
スする。ブロック2912は図23および24のブロッ
ク2306から2314までに示されたものと類似した
コードを実行する。これによって、起動信号は起動事態
を含む最近起動されたスクリプトのいずれのトリプルに
よっても処理することが可能になる。
起動信号が処理された後では、iはゼロに再初期化され
、ブロック2914から2916までは図26.27お
よび28で記述したDELSCRIPT機能を利用して
、Prograrm 10表から該スクリプトについて
事態が「起動」となっているトリプルへのレファレンス
をすべて除去する。該スクリプトについて事態が起動で
あるトリプルをすべて除去することの目的は、起動事態
は各スクリプトにつき1度だけ発生すべきであるので、
後での起動信号がこれらのトリプルに何らかの作動を実
行させないようにすることである。
このPUSHTRIPLE機能は図32及び33に詳細
に示した。pusurRtpu機能が呼び出された時は
、2つの条件が存在し得る。第1の条件はトリプルを配
置しようとするProgram In表が既に存在して
いることであり、第2の条件はかかるProgram 
In表が存在していないことである。いずれの条件が存
在しているかは、決定ブロック3201が1113のよ
うな指定されたトリプル・リストの場所が無効値でない
か、すなわちProgram In表が存在していない
ことを示していないかをチェックして決定する。Pro
gram 10表が存在していれば、ブロック3202
が実行され、そして一つの新しいアレーが創設されてそ
の新しいアレーの場所を特定するTMPLISTポイン
ターがセットされる。続いてブロック3203が実行さ
れて、この新しいアレーの最初のエントリーにスクリプ
ト認識とトリプル認識を挿入し、それによってこの新し
いアレーの中でコンパイルされたトリプル・コードを特
定する。
ブロック3204は変数iの初期値を設定する。
ブロック3205から3207まではスクリプトとトリ
プルの認識情報をもとのProgram 10表から新
しいアレー表にコピーする。ブロック3206はスクリ
プト認識情報をコピーし、ブロック3207はトリプル
認識情報をコピーする。Program In表の内容
が新しいアレー表の完全にコピーされると、ブロック3
208が実行されてTMPLIST  ・ポインターに
含まれているポインターを1113のようなトリプル・
リストの場所に挿入し、それによって新しいアレーを1
110のようなFSMSIGNALへのエントリーによ
ってポイントされるProgram Inにする。加え
て、ブロック3208は新しいProgramInで特
定された後のトリプルをProgram II)の中で
kと指定された場所に挿入する。
図34.35.36および37は図10のインタープレ
フタのフローチャートを示す。コントロールがまずFS
M1005からインタープレツタ1006にパスされる
と、インタープレツタ1006はRETURNCODE
変数をUNDEFINHDと等しくセットし、ブロック
3401の実行によってインタープレットされるべき最
初の指示の場所を獲得する。これらの初期的機能を実行
した後、インタープレフタ1006はブロック3402
ならびに3405から3434までをHALT、 5T
OPまたはC0NTINUE指示に出会うまで連続的に
実行する。 HALT、 5TOPまたはC0NTIN
UE指示に一旦出会うと、RETtlRNCO[IEは
5TOPまたはC0NTINUE (後者はHALT指
示とC0NTINUE指示の両方について)にセットさ
れ、ブロック3403と3404が実行され、制御はR
ETURNCODE17)値とともにFSM1005に
戻される。先に見たように、HALT、 5TOPまた
はC0NTINUHの指示はRETURNCODE変数
を再設定することによりコード化された指示の実行を終
了させ、制御が図10のFSM1005に戻るようにす
る。
RETURNCODEがUNDEFINEDと等しいま
まである場合は、決定ブロック3405が実行されて、
次に実行される指示が無条件のブランチ指示であるかど
うかを判断する。もし無条件ブランチ指示が存在する場
合は、インタープレフタのスタックがポツプされ、ポツ
プされた値がPC変数に保存される結果、該インタープ
レフタは該ポツプ値で決定されたコード中の新しい部位
へブランチする。ポツプされたアドレスは元来決定ブロ
ック3417で検知される一つのブランチ論議指示によ
ってスタックに押し込まれたものである。次に、ブロッ
ク3418は図21に示したようなジャンプ・インデッ
クスを獲得し、このインデックスをコードの第1指示ア
ドレスの場所に追加して、その結果をスタックに押し上
げる。
条件つきブランチ指示の実行をブロック3406から3
410までに示す。条件つきブランチの実行に先立って
は、ブランチ論議指示が実行されて、ブランチが発生す
べき場所へのインデックスがスタックに配置されている
であろう。条件つきブランチ指示が決定ブロック340
6によって検出されると、制御はポツプされたブランチ
のアドレス・インデックスを“P′と指定されたローカ
ルな変数に保存するブロック3407に移される。次に
、決定ブロック3408はスタックから、ブロック34
19および3420および3425.3426.342
7、および3428で示したような比較の結果および/
または比較指示の実行によってスタック上に配置された
ロジック・オペレーションの結果および/またはロジッ
ク・オペレーター指示の結果を含むTEMP変数のアド
レスをポツプする。もし比較および/またはロジック・
オペレーションの結果が「真」 (非ゼロ)であれば、
ブロック3409が実行されて、該ブランチをブロック
3438で実行されるのと同様の方法でコード中の指定
された場所に生じせしめる。もしこの比較および/また
はロジック・オペレーションの結果が「否」 (ゼロ)
であれば、ブロック3410が実行されて、コンパイル
されたコードの次の指示が実行される。
もしリテラル議論指示に出会うと、決定ブロック341
1は制御をブロック3412に移す。後者のブロックは
、図19にそのフォーマットを示した指示からリテラル
10フイールドを獲得する。
このリテラル10は、図12のスクリプト・リスト12
06のようなスクリプト・リストにその両方が含まれて
いるようなリテラル・ストリングのリストに対するポイ
ンターを含むリテラル表をアクセスするのに用いられる
。このポインターが獲得されると、それはインタープレ
フタのスタックに押し上げられる。同様に、もし変数議
論指示に出会うと、決定ブロック3413は制御をブロ
ック3414に移す。ブロック3414は3412と同
様に機能するが、IQフィールドは全体の変数表へのポ
インターを獲得するため一つのローカルな変数表へイン
デックスする目的で使用される点が異なる。この全体変
数表へのポインターはブロック3414によってスタッ
クに押し上げられる。
また、ブロック3415と3416は、全体的なベース
で維持されている信号論議のリストから信号論議へのポ
インターを獲得するという点でブロック3411および
3412と同様に機能する。
ブロック3419と3420は、まず比較すべき二つの
値をスタックからポツプし、次にその比較結果を仮の変
数に保存することによって、様々な比較オペレーション
を実行する機能を果たす。
この仮変数へのポインターは、続いてブロック3420
によってスタックへ押し上げられる。比較のための機能
として用意されているのは、等しい、等しくない、大き
い、少ない、大きい/等しい、および少ない/等しいで
ある。インタープレフタはブロック3403を実行した
時に自由となる仮の変数をいくつも使用して良いことに
留意されたい。
同様に、ブロック3421と3422は加減乗除の算術
的演算を実行する機能を果たす。ブロック3423と3
424は算術的指示に対して同様に機能するが、ウナリ
ー否定機能は一つの変数についてのみ実行される点が異
なる。また、ブロック3425および3426で示した
ようなロジックのopcode指示は、ブロック342
1および3422による算術的指示と同様に扱われる。
同様に、NOT指示はNEGATE指示と同様に扱われ
、ブロック3427および3428に示されたとおりで
ある。
5ENDのようなプリミチブの実行はブロック3429
および3430によって示す。あるプリミチブが検出さ
れると、ブロック3430に示したオペレーションが実
行される。プリミチブのほとんどはパラメータが無いか
、あっても数が一定である。
これらパラメータへのポインターはそれ以前の論議指示
によってスタック上に配置されており、単にスタックか
らポツプオフしてプリミチブ機能にハスするだけである
。しかし、ASSIGNとSENDMESSAGEとい
う二つの型式のブリミチプ指示は異なったフォーマット
を有している。ASSIGNブリミチプムのフォーマッ
トは図17に示した。このASSIGN指示に出会うと
、ブロック3430は指示の第2フイールドをアクセス
してコンパイルされたコード中の変数の10を獲得し、
その変数をスタックのトップの値と等しくセットする。
SENDMESSAGEのフォーマットは図18に示し
た。まずSENDMESSAGE指示が発見され、次に
ブロック3430が図18に示した指示の第2フイール
ドをアクセスして、この指示によって常に黙示される二
つのパラメータに加えてパスされるべき任意のパラメー
タの数を獲得する。ブロック3430はこの任意パラメ
ータの数を用いて、さらにスタックからポツプすべき論
議の数を判断するのである。
)IALTプリミチブとC0NTINIIEプリミチプ
はブロック3431および3432によって実行される
HALTまたはC0NTINUEが検出されると、制御
はブロック3432に移され、このブロックはRETt
lRNCODEをC0NT INUEと等しくセットす
る。同様に、決定ブロック3433によって5TOP指
示が検出されると、制御は3433に移され、それはR
ETURNCODEを5TOPと等しくセットする。
NEXTSTATEブリミチブは図38にフローチャー
トの形でより詳細に示した。5EXTSTATEプリミ
チプを起生させると、ブロック3801はまず状態が修
正されようとしていることを確認し、もしそうであれば
。ブロック3802が実行される。後者のブロックは$
 EUENT変数を「離脱」ストリングと等しとセット
し、ブロック23および24のブロック2309から2
312までに示したものと同様のコードを実行する。そ
の結果、該離脱信号は通常の方法で処理される。これが
達成された後、ブロック3803が実行されて$5TA
TE変数をnew 5tate論議に含まれた数字の状
態コードについてのストリング・レプリゼンテーション
と等しいものに変更し、そしてCURI?EN変数11
01を変更して新しい状態についてのエントリーを状態
表1104にインデックスする。最後に、ブロック38
04が実行され、それによって$EVENT変数は「エ
ンター」ストリングと等しいものにセットされ、図23
および24のブロック2309から2312までに示し
たのと同様のコードが実行される結果、該エンター信号
は新しい状態について処理される。
以上述べた具体的方法は本発明の原理を単に説明するだ
けのものであって、当業に精通したものは本発明の精神
と範囲を離れることなく他の組み立てを考案する可能性
があることが理解されるべきである。特に、コンピュー
タ101で実行すれる機能を既知のソウトウエア手法を
用いて各顧客の顧客ユニットのコンピュータに実行せし
めることは、当業に精通したものには明白であろう。さ
らに、図1に示した複数のコンピュータによって実行さ
れるすべての機能を、既知のソフトウェア手法を用いて
1台のコピュータに実行せしめることも明白であろう。
【図面の簡単な説明】
図1は、本発明の対象である電気通信システムをブロッ
ク・ダイアグラムの形で示した図である。 図2は、図1の電気通信システムの一つの顧客ユニット
の状態をステート・ダイアグラムの形で示した図である
。 図3と図4は、図1の電気通信システムのための基本的
な電話サービスを提供するための一つのプログラム・ス
クリプトをソース・コードの形で示した図である。 図5は、図1の電気通信システムにおいて電話転送サー
ビスおよび発信人判定サービスで電話転送の起動停止サ
ービス付きのもののためのプログラム・スクリプトを示
した図である。 図6、は図1の電気通信システムにおいて電話転送、発
信人判定ならびに基本的電話サービスの実施に伴なう論
理的信号表を示した図である。 図7は、電話転送サービスが停止された時の図6の論理
的信号表を示した図である。 図8と図9は、図1の電気通信システムのためのデータ
・サービス提供用のプログラムを示した図である。 図10は、図1の顧客ユニットのコンピュータの制御に
おいて使用されるソフトウェア・プロセスとインタープ
ロセス通信をブロック・ダイアグラムの形で示した図で
ある。 図11、図12および図13は、図6および図7の論理
的信号表を実行するために使用されるソフトウェア構造
を示した図である。 図14は、図12のブロック1206をより詳細に示し
た図である。 図15は、図3に示したようなトリプルのためのソース
・コードのコンパイルにより生じた一つのコンパイルさ
れたトリプルのフォーマットを示した図である。 図16から図21までは、図15で使用される様々な指
示フォーマットを示した図である。 図22は、図15に示したようなコンパイルされたトリ
プルに含まれる情報をベースとして変数値およびリテラ
ル値をそれらが関係する表からアクセスする方法を詳細
に示した図である。 図23と図24は、図10のFSM1005プロセスを
フロー・チャートの形で示したブロソ図である。 図25は、図24のブロック2314をフロー・チャー
トの形で示した図である。 図26、図27及び図28は、図25のブロック250
5をより詳細に示した図である。 図29、図30及び図31は、図23のブロック231
5をより詳細に示して一つのプログラム・スクリプトの
起動をより詳細に示した図である。 図32と図33は、図31のブロック2920をより詳
細に示した図である。 図34から図37までは、図10のインタープレター1
006をフロー・チャートの形で示した図である。 図38は、NEXTSTATE 7”リミチフ゛をフロ
ー・チャートの形で示したものであり、特にリーブ信号
とエンター信号の処理を示した図である。 図33は、図11、図12、図13がいかに有利に組合
せられるかを示した図である。 く主要部分の符号の説明〉 コンピューター401 顧客ユニット・−402,103 ハス・−・100 FIG、 3 SCR工PT:  POT  top top ndif  top continue nextsLate(idle) FIC,4 ndif continue  top FI(,8 SCRX’PT:  PODS  top end i f  top FIC,9 endif endif ndif FIG、15 FIG、16 FIG−17 FIC,18 FIG−19 FIG、20

Claims (1)

  1. 【特許請求の範囲】 1、複数のシステム状態と状態遷移を生じさせる複数の
    信号を有する音声とデータ通信システムにおける状態遷
    移を制御する方法であって、非手続言語で書かれたプロ
    グラムを実行しているコンピュータにより制御はなされ
    、該プログラムはその各々が命令群の組によって履行さ
    れる機能の複数を与えており、該命令の各群は作動のた
    め所定のシステム状態と信号に応答しているものである
    方法において、 最初の命令群のうちの1つを実行することにより現在の
    システム状態から他のシステム状態への遷移を始め、 現在の状態から離れることを指示する離脱信号を発生さ
    せ、 離脱信号と現在の状態に応じて第2の命令群の実行によ
    って上述の現在の状態から離れる前に共通出口処理を行
    い、 上述の他の状態への入場を指示する入場信号を発生させ
    、及び 上述の入場信号と他の状態に応じて第3の命令群によっ
    て他の状態に入る時に共通の入場処理を実行することか
    らなる制御方法。 2、特許請求の範囲第1項に記載の方法であって、各々
    の命令群が含まれ、作動信号を定義する事象定義とシス
    テム状態の作動を定義する状態定義から構成される。そ
    して、定義された状態における定義された信号の発生が
    上述の命令群の発動を引き起こす。上述の共通の出口処
    理を実行する上述のステップは次のステップからできて
    おり; 離脱信号と現在の状態を基準にして探すことにより上述
    の第2の命令群を見つけ、及び 第2の命令群の命令を実行することにより上述の共通の
    出口処理を実行する。 3、特許請求の範囲第2項に記載の方法であって、上記
    の共通の出口処理を実行する上述のステップを含み、更
    に上述の離脱信号と上述の現在の状態により作動される
    命令群を探し続け、 上述の離脱信号と現在の状態に応じる第4の命令群を見
    つけ、 上述の第4の命令群の命令の実行により追加的な共通の
    出口処理を実行することからなる。 4、特許請求の範囲第3項に記載の方法であって、追加
    的な命令の実行ステップを含み、上述の第4の命令群の
    うちの1つの命令を実行することによる上述の現在の状
    態と上述の離脱信号により作動される他の命令群を更に
    探し続ける処理を停止するステップを含んでいる。 5、特許請求の範囲第2項に記載の方法であって、前述
    の共通の入場処理を実行するステップを含み、更に 入場信号と上述の他の状態を基準にして上述の第3の命
    令群を探し、 第3の命令群の命令により上記の共通の入場処理を実行
    することからなる。 6、特許請求の範囲第5項に記載の方法であって、共通
    の入場処理を実行するステップを含み、更に上述の入場
    信号と他の状態によって作動される命令群を探し続け、 入場信号と他の状態に反応する第5の命令群を探し、及
    び 上述の第5の命令群の命令を実行することによって追加
    的な共通の入場処理を実行することからなる。 7、特許請求の範囲第6項に記載の方法であって、上述
    の追加的な共通の入場処理を実行するステップを含み、
    上述の入場信号と他の状態に反応する他の命令群を更に
    探すのを停止することを更に含む。 8、あらかじめ定義された処理状態と作動のための信号
    に反応するそれぞれの命令群のセットにより実行される
    複数の処理を準備している非手続き言語で作られたプロ
    グラムを実行するコンピュータにより実行される制御の
    下で、状態遷移を引き起こす複数の処理状態と複数の信
    号を有する即時処理における状態遷移を制御する方法に
    おいて; 第1の命令群のうちの1つの命令を実行することにより
    、現在の処理状態から他の処理状態への遷移を開始し、 現在の状態からの離脱を指示する離脱信号を発生させ、 上述の離脱信号と上述の現在の状態に反応して、第2の
    命令群の命令を実行することにより現在の状態から離れ
    る前に共通の出口処理を実行し、 上述の他の状態への入場を指示する入場信号を発生させ
    、及び 上述の入場信号と他の状態に反応する第3の命令群によ
    り、他の状態に入るにあたり、共通の入場処理を行うこ
    とからなる制御方法。 9、複数のシステム状態と複数の信号−有限状態マシン
    ルーチンとシステムの特徴を用意する命令群のセットか
    らできているプログラムを実行するコンピュータにより
    実行される制御の下で、上述の状態遷移を引き起こす。 また、あらかじめ定義されたシステム状態と作動信号に
    反応するそれぞれの命令群と複数の制御構造の貯蔵用の
    メモリーは、複数のテーブルからできている一を有する
    音声とデータの遠隔通信システムにおける状態遷移を制
    御する方法において; 上述のシステム状態のそれぞれのために、上述の制御構
    造のそれぞれを維持し、 上述の制御構造のそれぞれにおいて、制御構造に対応す
    る状態において起こるそれぞれの信号のために対応する
    テーブルの1つ1つを割当て、 個々のテーブルに対応する信号と状態により作動される
    命令群のいくつかを優先順に上述のテーブルのそれぞれ
    において個々に関連付け;第1の命令群の実行により現
    在のシステム状態から他のシステム状態への遷移を開始
    し、上述の有限状態マシンルーチンの実行により、離脱
    信号を発生させ、 上述の有限状態マシンルーチンを更に実行することによ
    り、現在の状態と上述の離脱信号に応じて上述のテーブ
    ルから最初の1つを確認し、共通の出口処理を実行する
    ために上述の最初に確認されたテーブルの中で最も優先
    度の高い命令群を実行し、 上述の現在の状態から他の状態に遷移させ、上述の有限
    状態マシンルーチンの実行により、入場信号を発生させ
    、 上述の他の状態と他の入場信号に応じて、上述のテーブ
    ルの2番目のものを確認し、及び、共通の入場処理を行
    うために、上述の2番目に確認されたテーブルの中で最
    も優先度の高い命令群を実行することからなる制御方法
    。 10、特許請求の範囲第9項に記載の方法であって、最
    初に確認されたテーブルの命令群を実行するステップを
    含み、 上述の離脱信号を処理し続けること。 上述の離脱信号の処理の継続に応じ追加的な共通の出口
    処理を実行するために、上述の最初に確認されたテーブ
    ルの中で2番目に高い優先順位を持つ命令群を実行する
    こと。 11、特許請求の範囲第10項に記載の方法であって、
    上述の最初に確認されたテーブルのうち2番目の優先順
    位を持つ命令群を実行するステップを含み、更に次のス
    テップから構成され、第3番目の優先順位を有する命令
    群の実行を阻止する離脱信号の処理を終了する。 12、特許請求の範囲第9項に記載の方法であって、上
    述の2番目に確認されたテーブルのうちで最優先の命令
    群を実行するステップを含み、更に次のステップにより
    構成され、 入場信号の処理を続け、 そして、追加的な共通の入場処理を行うために上述の2
    番目に確認されたテーブルの中で2番目の優先順位を持
    つ命令群を実行する。 13、特許請求の範囲第12項に記載の方法であって、
    上述の2番目に確認されたテーブルの中で2番目の優先
    順位の命令群を実行するステップを含み、更に入場信号
    の処理を終了するステップを含み、それによって上述の
    2番目に確認されたテーブルの中で第3位の優先順位を
    有する命令群の実行を行わないようにする。 14、コンピュータにより制御される音声とデータ電話
    通信システムであって、該システムは複数の状態を有し
    そして該コンピュータは有限状態マシンルーティンと命
    令の組からなるプログラムを実行しており、該命令の群
    の各組は該システムに特徴を与えそして命令の各群は作
    動のための所定のシステム状態と信号に応答しているも
    のであるシステムにおいて; 現在の状態から他のシステム状態への遷移を開始するた
    めの第1の命令群の実行により定義される手段、 上述の現在の状態から出ることを指示する離脱信号を発
    生させるために上述の有限状態マシンルーチンによって
    定義される手段、 離脱信号と現在の状態に応じて現在の状態から離れる前
    に共通の出口処理を実行する第2の命令群によって定義
    される手段、 他の状態に入ることを指示する入場信号を発生させるた
    めに上述の有限状態マシンルーチンによって更に定義さ
    れる手段、及び 上述の他の状態と上述の入場信号に応じて他の状態に入
    るための共通の入場処理を実行するための第3の命令群
    の実行により定義される手段とからなるシステム。 15、特許請求の範囲第14項に記載のシステムであっ
    て、共通の出口処理を行うための上述の手段は、離脱信
    号の処理を継続するための第2の命令群のうちの1つの
    命令を実行することにより定義される手段、 有限状態マシンルーチンにより更に定義され、且つ離脱
    信号と現在の状態に反応して第4の命令群を見つけるた
    めに継続された離脱信号の処理に反応する手段、及び 追加的な共通の出口処理の実行のための第4の命令群の
    実行により定義される手段からなる。 16、特許請求の範囲第15項に記載のシステムであっ
    て、第4の命令群により定義された手段を実行する上述
    の手段は更に、 離脱信号を更に処理することを終了するための第4の命
    令群のうちの1つの命令によって定義された手段から成
    っており、離脱信号の処理を終了することにより、離脱
    信号と現在の状態により作動される他の命令群の実行を
    禁止している。 17、特許請求の範囲第16項に記載のシステムであっ
    て、共通の入場処理を実行するための上述の手段は更に
    、入場信号の処理を続けるための第3の命令群のうちの
    1つの命令によって定義される手段、 有限状態マシンルーチンにより定義され、且つ入場信号
    と他の状態に反応する第5の命令群を見つけるための入
    場信号の継続された処理に応答する手段、及び 追加的な共通の入場処理を実行するために入場信号と他
    の状態に応じて第5の命令群の実行により定義される手
    段からなる。 18、特許請求の範囲第17項に記載のシステムであっ
    て、追加的な共通の入場処理を実行するため上述の手段
    は、それによって入場信号と他の状態により作動される
    他の命令群の実行を阻止することになる入場信号の処理
    を終了するために第5の命令群のうちの1つの命令によ
    り定義される手段を含む。 19、複数の状態と状態遷移を生じさせる複数の信号と
    を有する即時処理の制御をするコンピュータであって、
    該コンピュータは有限状態マシンルーティンと命令群の
    組からなるプログラムを実行しており、該命令群の各組
    は該処理における操作を与えそして該命令の各組は動作
    のため所定のシステム状態と信号に応答しているコンピ
    ュータにおいて; 現在の処理状態から第1の命令群の実行により定義され
    る他の処理状態への遷移を開始するための手段、 現在の状態から離れることを指示する離脱信号を発生さ
    せるための有限状態マシンルーチンにより定義される手
    段、 上述の離脱信号と現在の状態に対応して現在の状態から
    離れる前に共通の出口処理を実行するための第2の命令
    群により定義される手段、他の状態へ入ることを指示す
    る入場信号を発生させるための有限状態マシンルーチン
    によって定義される手段、及び 他の状態と入場信号に対応して他の状態に入って行く時
    に共通の入場処理を実行するための第3の命令群の実行
    によって定義される手段とからなるコンピュータ。
JP30759186A 1985-12-23 1986-12-23 非手続言語を用いたリアルタイム状態制御法とその装置 Expired - Fee Related JP3236006B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/812,931 US4727575A (en) 1985-12-23 1985-12-23 State control for a real-time system utilizing a nonprocedural language
US812931 1985-12-23

Publications (2)

Publication Number Publication Date
JPS62283795A true JPS62283795A (ja) 1987-12-09
JP3236006B2 JP3236006B2 (ja) 2001-12-04

Family

ID=25211008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30759186A Expired - Fee Related JP3236006B2 (ja) 1985-12-23 1986-12-23 非手続言語を用いたリアルタイム状態制御法とその装置

Country Status (6)

Country Link
US (1) US4727575A (ja)
EP (1) EP0228047B1 (ja)
JP (1) JP3236006B2 (ja)
KR (1) KR940009986B1 (ja)
CA (1) CA1253987A (ja)
DE (1) DE3684682D1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1587592A (en) * 1991-03-18 1992-10-21 Echelon Corporation Networked variables
US6493739B1 (en) 1993-08-24 2002-12-10 Echelon Corporation Task scheduling in an event driven environment
ATE208067T1 (de) * 1991-03-18 2001-11-15 Echelon Corp Programmiersprachestrukturen für ein netzwerk zur übertragung, abtastung und steuerung von informationen
US5386464A (en) * 1991-12-19 1995-01-31 Telefonaktiebolaget L M Ericsson Feature control system utilizing design oriented state table language
US5317757A (en) * 1992-02-06 1994-05-31 International Business Machines Corporation System and method for finite state machine processing using action vectors
US5442690A (en) 1992-08-25 1995-08-15 Bell Communications Research, Inc. Telecommunication service record structure and method of execution
WO1994005112A1 (en) 1992-08-25 1994-03-03 Bell Communications Research, Inc. System and method for creating, transferring, and monitoring services in a telecommunication system
US5657451A (en) * 1994-01-24 1997-08-12 Telefonaktiebolaget Lm Ericsson System for determining whether to accept new supplementary services based upon identified types of supplementary service interactions and identified supplementary service interaction criteria
US5721920A (en) * 1994-08-05 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for providing a state oriented and event driven environment
US5500852A (en) * 1994-08-31 1996-03-19 Echelon Corporation Method and apparatus for network variable aliasing
US6334219B1 (en) * 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
USRE42236E1 (en) 1995-02-06 2011-03-22 Adc Telecommunications, Inc. Multiuse subcarriers in multipoint-to-point communication using orthogonal frequency division multiplexing
US7280564B1 (en) 1995-02-06 2007-10-09 Adc Telecommunications, Inc. Synchronization techniques in multipoint-to-point communication using orthgonal frequency division multiplexing
US5740236A (en) * 1995-12-21 1998-04-14 Ericsson, Inc. System for providing feature services in a telecommunications system
US6212653B1 (en) 1998-02-18 2001-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Logging of events for a state driven machine
JPH11282658A (ja) * 1998-03-31 1999-10-15 Fujitsu Ltd 対話的ソフトウエア構築・駆動装置
JP2000148459A (ja) * 1998-10-09 2000-05-30 Peter Ar-Fu Lam テ―ブル・フォ―マット・プログラミング
US20030177242A1 (en) * 2002-03-15 2003-09-18 Nokia, Inc. Trigger-based session completion using external parties
US7373361B2 (en) * 2004-09-23 2008-05-13 Airclic, Inc. Mobile process automation method
WO2017045727A1 (en) * 2015-09-18 2017-03-23 Telefonaktiebolaget Lm Ericsson (Publ) Management of communication between m2m device and m2m server

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3984817A (en) * 1973-11-08 1976-10-05 Honeywell Information Systems, Inc. Data processing system having improved program allocation and search technique
FR2269150B1 (ja) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
US3972023A (en) * 1974-12-30 1976-07-27 International Business Machines Corporation I/O data transfer control system
US4133030A (en) * 1977-01-19 1979-01-02 Honeywell Information Systems Inc. Control system providing for the transfer of data in a communications processing system employing channel dedicated control blocks
US4291200A (en) * 1979-10-31 1981-09-22 Bell Telephone Laboratories, Incorporated Voice and data switching arrangement
US4626634A (en) * 1982-09-30 1986-12-02 At&T Bell Laboratories Multiprocessor computing system featuring shared global control
US4551581B1 (en) * 1983-07-12 1995-06-20 Bell Telephone Labor Inc Method and apparatus for sending a data message to a selected station during a silent interval between ringing
US4653085A (en) * 1984-09-27 1987-03-24 At&T Company Telephone switching system adjunct call processing arrangement
US4656624A (en) * 1985-05-03 1987-04-07 At&T Bell Laboratories Operator communication arrangements for operator assistance systems
US4747127A (en) * 1985-12-23 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Customer programmable real-time system

Also Published As

Publication number Publication date
DE3684682D1 (de) 1992-05-07
JP3236006B2 (ja) 2001-12-04
KR940009986B1 (ko) 1994-10-19
EP0228047A3 (en) 1988-07-06
US4727575A (en) 1988-02-23
KR870006463A (ko) 1987-07-11
CA1253987A (en) 1989-05-09
EP0228047A2 (en) 1987-07-08
EP0228047B1 (en) 1992-04-01

Similar Documents

Publication Publication Date Title
JPS62283795A (ja) 非手続言語を用いたリアルタイム状態制御法とその装置
JP2674621B2 (ja) 非手続言語を用いたリアルタイムプロセス制御方法と装置
JPS62222792A (ja) 利用者プログラム可能即時応答システム
JP2723482B2 (ja) 順次転送呼カバーサービス方法
JPH07504553A (ja) ファクシミリアプリケーションをサポートするための電話回線網アプリケーションプラットホーム
US5819046A (en) System for invoking in computer application associated with second user connected to the computer and subject to any active conditions associated with the second user
US6259781B1 (en) Generic distributed protocol converter
US20060050856A1 (en) Computer telephony server for scripted call termination
Cisco Preparing the Cisco CallManager and Octel Systems
JPH10276271A (ja) 着信呼転送制御装置および着信呼転送制御方法
WO2016187962A1 (zh) 一种提醒联系方式的方法和装置
JP3239269B2 (ja) カスタムサービス制御方法
JPS61150557A (ja) 指定時間転送方式
CN114374940A (zh) 被呼转方取消呼叫转移的方法及相关装置
CN104461889A (zh) 一种语音能力脚本调试方法及装置
JPH05336110A (ja) 交換機の付加サービス制御方法
JPS61281797A (ja) ホ−ムバス制御装置
JP2023109578A (ja) 主装置、プログラム、および主装置の着信転送方法
JPH01233947A (ja) 電話交換機
JP2603725B2 (ja) 呼状態遷移通知方式
JP2001268229A (ja) 電話サービス装置、電話サービス方法及びその記録媒体
JPH09247272A (ja) コールウェイティング方法
JPH04270531A (ja) 提供目的別呼処理タスク取り出し方法
JPS6179349A (ja) 指定時刻接続方式
JPH0446492A (ja) ボタン電話装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees