JP2514152B2 - 情報処理システムを構築する方法 - Google Patents
情報処理システムを構築する方法Info
- Publication number
- JP2514152B2 JP2514152B2 JP5052316A JP5231693A JP2514152B2 JP 2514152 B2 JP2514152 B2 JP 2514152B2 JP 5052316 A JP5052316 A JP 5052316A JP 5231693 A JP5231693 A JP 5231693A JP 2514152 B2 JP2514152 B2 JP 2514152B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- list
- language
- sml
- type
- 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.)
- Expired - Lifetime
Links
- 230000010365 information processing Effects 0.000 title claims description 10
- 238000000034 method Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 description 259
- 238000011156 evaluation Methods 0.000 description 23
- 230000014509 gene expression Effects 0.000 description 18
- 238000012360 testing method Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007639 printing Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Computer And Data Communications (AREA)
Description
【0001】
【産業上の利用分野】本発明は、情報処理システムを構
築する方法に関し、特に、ネットワークに接続された複
数のデータ処理装置であって、集合型又はリスト型デー
タ構造のデータへのアクセスを行う情報処理システムを
構築する方法に関する。本発明において装備されるネッ
トワーク管理型のアプリケーションプログラムにおいて
は、型付け(typage)が変数ではなく変数の内容に関し
て行われる言語であって、集合(ensemble)型とか樹木
(arbre )型即ちリスト型とかの複雑な構造の処理も可
能にする言語を用いる。
築する方法に関し、特に、ネットワークに接続された複
数のデータ処理装置であって、集合型又はリスト型デー
タ構造のデータへのアクセスを行う情報処理システムを
構築する方法に関する。本発明において装備されるネッ
トワーク管理型のアプリケーションプログラムにおいて
は、型付け(typage)が変数ではなく変数の内容に関し
て行われる言語であって、集合(ensemble)型とか樹木
(arbre )型即ちリスト型とかの複雑な構造の処理も可
能にする言語を用いる。
【0002】
【従来の技術】この種の言語は、従来、本質的に人口知
能分野で使用されている。従来の言語に関して言えば、
この種の言語は、制約なしに処理できるファンクショナ
ルオブジェクト(objet fonctionne
l、関数型オブジェクト)をもたらし、効果的な再帰的
プログラミングと、データプログラムメモリの自動管理
とを可能にする。また、関数もデータも例えば多重の括
弧で囲まれたリストで表現され、その表現が類似してい
るため、プログラムが新しい事象(evenemen
t、イベント)を考慮するために自己修正できる。
能分野で使用されている。従来の言語に関して言えば、
この種の言語は、制約なしに処理できるファンクショナ
ルオブジェクト(objet fonctionne
l、関数型オブジェクト)をもたらし、効果的な再帰的
プログラミングと、データプログラムメモリの自動管理
とを可能にする。また、関数もデータも例えば多重の括
弧で囲まれたリストで表現され、その表現が類似してい
るため、プログラムが新しい事象(evenemen
t、イベント)を考慮するために自己修正できる。
【0003】
【発明が解決しようとする課題】しかしながら、この種
の言語の使用は人口知能分野での用途以外には歓迎され
ず、特にネットワーク管理プログラム型のアプリケーシ
ョンプログラムのような別の分野では、該言語の取り扱
いに関して多くの先入観が存在している。
の言語の使用は人口知能分野での用途以外には歓迎され
ず、特にネットワーク管理プログラム型のアプリケーシ
ョンプログラムのような別の分野では、該言語の取り扱
いに関して多くの先入観が存在している。
【0004】ネットワーク管理プログラム分野には、特
定のアプリケーション用の特有のプログラミング言語が
存在する。例えばSMALLTALK型の言語は、単純
化され総称プログラミング(programmatio
n generique)、即ち汎用プログラミングを
容易にするようなサーバアクセスインタフェースを提供
することを目的とする第1の種類のアプリケーション、
即ちデータ内容が分からないままデータ構造が直接処理
される種類のアプリケーションに使用される。実際、こ
の型の言語では、型付けが変数ではなく変数の内容に関
連している。これは、前記第1の種類のアプリケーショ
ンによって生じる問題に効果的に対処することを可能に
する一つの特徴である。しかしながら、集合的性格(c
aractere ensembliste)を有する
関係データベースとのインタフェースを形成したい場合
には、別の型の言語、例えばやはり集合的性格を有する
が汎用プログラミングを容易にすることはない言語SQ
Lを使用しなければならない。また、例えばネットワー
ク管理プラットホームの場合のように複数のサーバの樹
木的性格(caractere arborescen
t)を考慮するインタフェースを形成する場合には別の
問題が生じる。従って、アプリケーションには各種類毎
に適合した言語の型が対応する。このような情況は実用
性に欠け、折り返し受け取られる値の構造を予め知るこ
となしに情報サーバへの要求を設定できるようにしなが
ら関係データベース(リレーショナルデータベース)と
のインタフェースを形成できるようにネットワーク管理
プログラム型のアプリケーションプログラムを展開しな
ければならない場合には、柔軟性の欠如につながる。
定のアプリケーション用の特有のプログラミング言語が
存在する。例えばSMALLTALK型の言語は、単純
化され総称プログラミング(programmatio
n generique)、即ち汎用プログラミングを
容易にするようなサーバアクセスインタフェースを提供
することを目的とする第1の種類のアプリケーション、
即ちデータ内容が分からないままデータ構造が直接処理
される種類のアプリケーションに使用される。実際、こ
の型の言語では、型付けが変数ではなく変数の内容に関
連している。これは、前記第1の種類のアプリケーショ
ンによって生じる問題に効果的に対処することを可能に
する一つの特徴である。しかしながら、集合的性格(c
aractere ensembliste)を有する
関係データベースとのインタフェースを形成したい場合
には、別の型の言語、例えばやはり集合的性格を有する
が汎用プログラミングを容易にすることはない言語SQ
Lを使用しなければならない。また、例えばネットワー
ク管理プラットホームの場合のように複数のサーバの樹
木的性格(caractere arborescen
t)を考慮するインタフェースを形成する場合には別の
問題が生じる。従って、アプリケーションには各種類毎
に適合した言語の型が対応する。このような情況は実用
性に欠け、折り返し受け取られる値の構造を予め知るこ
となしに情報サーバへの要求を設定できるようにしなが
ら関係データベース(リレーショナルデータベース)と
のインタフェースを形成できるようにネットワーク管理
プログラム型のアプリケーションプログラムを展開しな
ければならない場合には、柔軟性の欠如につながる。
【0005】
【課題を解決するための手段】本発明は、ネットワーク
に接続された複数のデータ処理装置を有する情報処理シ
ステムであって、集合型又はリスト型データ構造のデー
タへのアクセスを行う情報処理システムを構築する方法
であって、データ形式の宣言なしに変数の内容によって
データ形式が定義される集合型又はリスト型データ構造
のデータが処理可能なLisp型プログラミング言語を
用いて作成されたアプリケーションプログラムであっ
て、サーバへのアクセスのための汎用プログラミング形
式のインタフェースと、関係データベースの集合型デー
タと複数のサーバのリスト型データとを処理できるイン
タフェースとを含むネットワーク管理型のアプリケーシ
ョンプログラムを装備するステップと、データ型を指定
することなくデータを要求し且つ受信することによって
該データ構造のデータを操作する手段を装備するステッ
プと、該複数のデータ処理装置の各々に該プログラミン
グ言語の言語インタプリタを装備するステップと、を含
む情報処理システムを構築する方法を提供するものであ
る。
に接続された複数のデータ処理装置を有する情報処理シ
ステムであって、集合型又はリスト型データ構造のデー
タへのアクセスを行う情報処理システムを構築する方法
であって、データ形式の宣言なしに変数の内容によって
データ形式が定義される集合型又はリスト型データ構造
のデータが処理可能なLisp型プログラミング言語を
用いて作成されたアプリケーションプログラムであっ
て、サーバへのアクセスのための汎用プログラミング形
式のインタフェースと、関係データベースの集合型デー
タと複数のサーバのリスト型データとを処理できるイン
タフェースとを含むネットワーク管理型のアプリケーシ
ョンプログラムを装備するステップと、データ型を指定
することなくデータを要求し且つ受信することによって
該データ構造のデータを操作する手段を装備するステッ
プと、該複数のデータ処理装置の各々に該プログラミン
グ言語の言語インタプリタを装備するステップと、を含
む情報処理システムを構築する方法を提供するものであ
る。
【0006】このように本発明の思想は、これまで考え
られなかったことであるが、ネットワークに接続された
複数のデータ処理装置であって、集合型又はリスト型デ
ータ構造のデータへのアクセスを行う情報処理システム
を構築する方法において、本質的に人口知能分野で使用
されるように設計されたプログラミング用記号言語をネ
ットワーク管理プログラム型のアプリケーションプログ
ラムで使用することにある。実際この言語は、前述のア
プリケーションプログラムを展開するための望ましい特
徴を総て兼ね備えている。先行技術の方法と異なり、単
一の言語が使用されるため、大きな柔軟性と高い効率と
が得られる。従って、プログラムはデータの内容を知ら
ないままデータを処理することができ、そのため有利な
総称性(genericite)を有し、特に、折り返
し受け取られる値の構造を予め知ることなしに要求を情
報サーバに送ることができる。勿論、前記サーバとのア
クセスインタフェースは大幅に単純化される。このよう
な言語では、変数は実際には型をもたない。なぜならこ
れらの変数はいずれも不確定状態で存在するものとみな
され、型は割り当てと同時に決定されるからである。コ
ードは種々のアプリケーションに適合する。また、この
言語は水準が極めて高く集合的性格を有するため、種々
の情報サーバとのインタフェース、即ち、SQLのよう
な構築言語のやはり集合的である性格を考慮することを
可能にして関係データベースへのアクセスを許可すると
共に、主としてネットワーク管理プラットホームに使用
される特定サーバの樹木的性格を考慮することを可能に
するインタフェースが極めて簡単に形成される。従っ
て、このようなプログラミング言語を使用すればアプリ
ケーションの展開時間が著しく短縮される。
られなかったことであるが、ネットワークに接続された
複数のデータ処理装置であって、集合型又はリスト型デ
ータ構造のデータへのアクセスを行う情報処理システム
を構築する方法において、本質的に人口知能分野で使用
されるように設計されたプログラミング用記号言語をネ
ットワーク管理プログラム型のアプリケーションプログ
ラムで使用することにある。実際この言語は、前述のア
プリケーションプログラムを展開するための望ましい特
徴を総て兼ね備えている。先行技術の方法と異なり、単
一の言語が使用されるため、大きな柔軟性と高い効率と
が得られる。従って、プログラムはデータの内容を知ら
ないままデータを処理することができ、そのため有利な
総称性(genericite)を有し、特に、折り返
し受け取られる値の構造を予め知ることなしに要求を情
報サーバに送ることができる。勿論、前記サーバとのア
クセスインタフェースは大幅に単純化される。このよう
な言語では、変数は実際には型をもたない。なぜならこ
れらの変数はいずれも不確定状態で存在するものとみな
され、型は割り当てと同時に決定されるからである。コ
ードは種々のアプリケーションに適合する。また、この
言語は水準が極めて高く集合的性格を有するため、種々
の情報サーバとのインタフェース、即ち、SQLのよう
な構築言語のやはり集合的である性格を考慮することを
可能にして関係データベースへのアクセスを許可すると
共に、主としてネットワーク管理プラットホームに使用
される特定サーバの樹木的性格を考慮することを可能に
するインタフェースが極めて簡単に形成される。従っ
て、このようなプログラミング言語を使用すればアプリ
ケーションの展開時間が著しく短縮される。
【0007】本発明では、使用される言語がLisp型
の言語である。
の言語である。
【0008】また、この言語に従ってネットワークの種
々のデータ処理装置の間の対話を行うことができるよう
に、前記データ処理装置は総て前記言語のインタプリタ
を備えている。
々のデータ処理装置の間の対話を行うことができるよう
に、前記データ処理装置は総て前記言語のインタプリタ
を備えている。
【0009】注目すべきことに、各データ処理装置の言
語インタプリタは主として、評価サービス、メモリ管理
サービスといった内部サービスに基づくと共に言語の原
始関数(fonctions primitives)
を行うコードに基づいて実行されるプログラムを処理す
るための核と、複数のサーバへのアクセスを許可し且つ
言語の拡張を容易にするための、前記核と原始関数を行
うコードとの間のドキュメンテーションが作成されてい
るプログラムインタフェースと、新しい原始関数へのイ
ンタプリタとで構成される。
語インタプリタは主として、評価サービス、メモリ管理
サービスといった内部サービスに基づくと共に言語の原
始関数(fonctions primitives)
を行うコードに基づいて実行されるプログラムを処理す
るための核と、複数のサーバへのアクセスを許可し且つ
言語の拡張を容易にするための、前記核と原始関数を行
うコードとの間のドキュメンテーションが作成されてい
るプログラムインタフェースと、新しい原始関数へのイ
ンタプリタとで構成される。
【0010】前記インタプリタは、所望のアプリケーシ
ョンを簡単に、迅速に且つ効果的に展開させることがで
きる。前述の言語を使用すると、種々の関数をコード化
し(インタプリタと該インタプリタがアクセスする種々
のライブラリとで構成された環境内で)、別のプログラ
ム言語に必要とされる従来のコンパイル−連係(lia
ison)−実行段階を通らずに迅速にテストすること
ができる。従って、コードはコンパイルされることはな
く、インタプリタが呼び出されると存在する総てのコー
ドがロードされ即座に翻訳される。このプログラムイン
タフェースは複数のサーバへのアクセスを提供する。こ
のインタフェースは、言語と、例えば新しいサーバへの
アクセスを提供する新しい原始関数へのインタプリタと
の拡張を有利な方法で容易にするために明確なものであ
り、そしてそのドキュメンテーションが作成されていな
ければならない。
ョンを簡単に、迅速に且つ効果的に展開させることがで
きる。前述の言語を使用すると、種々の関数をコード化
し(インタプリタと該インタプリタがアクセスする種々
のライブラリとで構成された環境内で)、別のプログラ
ム言語に必要とされる従来のコンパイル−連係(lia
ison)−実行段階を通らずに迅速にテストすること
ができる。従って、コードはコンパイルされることはな
く、インタプリタが呼び出されると存在する総てのコー
ドがロードされ即座に翻訳される。このプログラムイン
タフェースは複数のサーバへのアクセスを提供する。こ
のインタフェースは、言語と、例えば新しいサーバへの
アクセスを提供する新しい原始関数へのインタプリタと
の拡張を有利な方法で容易にするために明確なものであ
り、そしてそのドキュメンテーションが作成されていな
ければならない。
【0011】
【実施例】本発明は、添付図面に基づく以下の非限定的
実施例の説明によってより明らかにされる。
実施例の説明によってより明らかにされる。
【0012】図1では、インタプリタが符号INTで示
されており、ライブラリアセンブリが符号LIBで示さ
れている。言語インタプリタINTは主に、核Kと、プ
ログラムインタフェースAPIと、インタフェースIN
Tの原始関数を使用する関数セットSOFとで構成され
ている。前記関数セットは2つのカテゴリに大別でき
る。第1のカテゴリでは、基本関数(fonction
de base)BF、即ち変数の内容について型決
定され複雑な構造の処理を可能にする言語に固有の関
数、例えばLispの基本関数が配列されている。第2
のカテゴリには符号LIBで示されている種々のサービ
スとのインタフェースを行う拡張関数(fonctio
ns etendues)が含まれる。例えば、図1に
示す例では、関数セットSAFが、関係データベース
(図示せず)とのインタフェースに使用される構築言語
SLLに固有のライブラリへのアクセスを可能にする。
別の関数セットXAFは、図形ユーザインタフェースを
開発し且つ管理するための構成要素を供給することを目
的とするライブラリXMLへのアクセスを可能にする。
第3の関数セットGAFは、作成された図形オブジェク
トを用いるアプリケーションを許可するライブラリGO
Lへのアクセスを可能にする。第4の関数セットMIF
は、ネットワーク及び情報システム管理サービスとのイ
ンタフェースとして使用されるライブラリMILへのア
クセスを可能にする。第1又は第2のカテゴリの関数セ
ットについては、本発明で使用される言語(以後、言語
SMLと略称する)の原始関数の使用が、該原始関数を
コード化する関数として知られている手続きの実行につ
ながる。
されており、ライブラリアセンブリが符号LIBで示さ
れている。言語インタプリタINTは主に、核Kと、プ
ログラムインタフェースAPIと、インタフェースIN
Tの原始関数を使用する関数セットSOFとで構成され
ている。前記関数セットは2つのカテゴリに大別でき
る。第1のカテゴリでは、基本関数(fonction
de base)BF、即ち変数の内容について型決
定され複雑な構造の処理を可能にする言語に固有の関
数、例えばLispの基本関数が配列されている。第2
のカテゴリには符号LIBで示されている種々のサービ
スとのインタフェースを行う拡張関数(fonctio
ns etendues)が含まれる。例えば、図1に
示す例では、関数セットSAFが、関係データベース
(図示せず)とのインタフェースに使用される構築言語
SLLに固有のライブラリへのアクセスを可能にする。
別の関数セットXAFは、図形ユーザインタフェースを
開発し且つ管理するための構成要素を供給することを目
的とするライブラリXMLへのアクセスを可能にする。
第3の関数セットGAFは、作成された図形オブジェク
トを用いるアプリケーションを許可するライブラリGO
Lへのアクセスを可能にする。第4の関数セットMIF
は、ネットワーク及び情報システム管理サービスとのイ
ンタフェースとして使用されるライブラリMILへのア
クセスを可能にする。第1又は第2のカテゴリの関数セ
ットについては、本発明で使用される言語(以後、言語
SMLと略称する)の原始関数の使用が、該原始関数を
コード化する関数として知られている手続きの実行につ
ながる。
【0013】原始関数をコード化する関数は、インタプ
リタの残りと同様にコンパイルされ、最初は例えば言語
Cで書き込まれる。入力引数は、言語SMLで機能する
呼び出し装置から送られてくるため、言語SMLで受け
取られる。同様にして、呼び出し装置に戻される値は常
に言語SMLで表される。
リタの残りと同様にコンパイルされ、最初は例えば言語
Cで書き込まれる。入力引数は、言語SMLで機能する
呼び出し装置から送られてくるため、言語SMLで受け
取られる。同様にして、呼び出し装置に戻される値は常
に言語SMLで表される。
【0014】基本関数BF(言語SML)の場合は、原
始関数をコード化する関数がそのタスクを果たすと、呼
び出し装置への戻しが行われる。しかしながら、関数S
MLの呼び出しがアセンブリLIBによって提案された
サービスへのアクセス要求を表す場合には、原始関数を
コード化する関数が、通常は下記のタスクの実行につな
がる補足的作業を実行しなければならない。
始関数をコード化する関数がそのタスクを果たすと、呼
び出し装置への戻しが行われる。しかしながら、関数S
MLの呼び出しがアセンブリLIBによって提案された
サービスへのアクセス要求を表す場合には、原始関数を
コード化する関数が、通常は下記のタスクの実行につな
がる補足的作業を実行しなければならない。
【0015】入力引数(言語SML)の妥当性検査、 エラーがない場合の、言語SMLの引数からC型言語の
引数への変換、C型言語の入力引数を供給するアセンブ
リLIBの外部ライブラリの1つにおける手続きの呼び
出し、外部手続きの戻り後の、言語SMLの戻り値を供
給する呼び出し装置への戻し。
引数への変換、C型言語の入力引数を供給するアセンブ
リLIBの外部ライブラリの1つにおける手続きの呼び
出し、外部手続きの戻り後の、言語SMLの戻り値を供
給する呼び出し装置への戻し。
【0016】図2は、ネットワーク管理におけるデータ
処理の概略を示す図である。
処理の概略を示す図である。
【0017】図面では、矢印は、言語SMLを使用する
アプリケーションと図示されている種々のブロックとの
間の通信を記号化したものである。
アプリケーションと図示されている種々のブロックとの
間の通信を記号化したものである。
【0018】SMLプログラム11は一組のマイクロサ
ーバと見なすことができ、サーバ対アプリケーションの
通信を行うのと同様な方法でアプリケーション対アプリ
ケーションの通信を行うことができ、他のアプリケーシ
ョン21、22、23、24の管理を行う。両側の点線
12、13は、言語SMLに基づいて通信を行うことの
できる他のアプリケーションを記号化して示している。
ここで、OSF/DCEはOSF技術であるオープン・
ソフトウェア・ファウンデーション/ディストリビュー
テッド・コンピューティング・エンバイロンメントであ
る。SMLインタフェース・ビルダー31は効率的な開
発環境を与えるものであり、アプリケーションに対して
ユーザーインタフェースコードを発生する。SMLデバ
ッガ32は対話型デバッガであって、プログラム中の誤
りを対話形式で取り除く。SML原始関数は、電話イン
タフェース33を用いる通信を可能にする。XMP A
PI34は、管理サーバ及び管理サービスに対する標準
インタフェースであり、SMLはXMP APIによっ
て管理サーバ及び管理アプリケーションをコード化する
ための容易な方法を与える。CMISは共通情報管理サ
ービスであり、オブジェクトの樹木構造を示す。OSM
/DMEは分散型管理環境であり、X/OPENはオー
プンシステムに対するAPI及びプロトコールのフレー
ムワーク及びソフトウェアを展開する。SQLデータベ
ース35はSQLのデータベースを示す。X WIND
OW−OSF/Motifは外部ライブラリのための図
形ユーザインタフェースであり、SML言語はこのよう
な外部ライブラリにアクセスするインタフェースを提供
する。GOは本出願人のグラフィックオブジェクトを用
いるアプリケーションを示す。
ーバと見なすことができ、サーバ対アプリケーションの
通信を行うのと同様な方法でアプリケーション対アプリ
ケーションの通信を行うことができ、他のアプリケーシ
ョン21、22、23、24の管理を行う。両側の点線
12、13は、言語SMLに基づいて通信を行うことの
できる他のアプリケーションを記号化して示している。
ここで、OSF/DCEはOSF技術であるオープン・
ソフトウェア・ファウンデーション/ディストリビュー
テッド・コンピューティング・エンバイロンメントであ
る。SMLインタフェース・ビルダー31は効率的な開
発環境を与えるものであり、アプリケーションに対して
ユーザーインタフェースコードを発生する。SMLデバ
ッガ32は対話型デバッガであって、プログラム中の誤
りを対話形式で取り除く。SML原始関数は、電話イン
タフェース33を用いる通信を可能にする。XMP A
PI34は、管理サーバ及び管理サービスに対する標準
インタフェースであり、SMLはXMP APIによっ
て管理サーバ及び管理アプリケーションをコード化する
ための容易な方法を与える。CMISは共通情報管理サ
ービスであり、オブジェクトの樹木構造を示す。OSM
/DMEは分散型管理環境であり、X/OPENはオー
プンシステムに対するAPI及びプロトコールのフレー
ムワーク及びソフトウェアを展開する。SQLデータベ
ース35はSQLのデータベースを示す。X WIND
OW−OSF/Motifは外部ライブラリのための図
形ユーザインタフェースであり、SML言語はこのよう
な外部ライブラリにアクセスするインタフェースを提供
する。GOは本出願人のグラフィックオブジェクトを用
いるアプリケーションを示す。
【0019】また、本発明の目的とは関係ないが、言語
SMLは、協働データ処理(informatique
coopertive)とも称する分散データ処理で
極めて多くのアプリケーションを実行させることができ
る。
SMLは、協働データ処理(informatique
coopertive)とも称する分散データ処理で
極めて多くのアプリケーションを実行させることができ
る。
【0020】一般的には、この言語はLisp型言語の
特徴を有すると有利であり、ネットワーク及び情報シス
テム管理情報のアクセス、処理及び呈示を行うための効
果的で一貫した手段の供給を目標とする。そのために、
この言語は下記の主要規約を考慮しなければならない。
特徴を有すると有利であり、ネットワーク及び情報シス
テム管理情報のアクセス、処理及び呈示を行うための効
果的で一貫した手段の供給を目標とする。そのために、
この言語は下記の主要規約を考慮しなければならない。
【0021】管理されるオブジェクトがISO規格の規
約に従って定義される。
約に従って定義される。
【0022】管理されるオブジェクトに関する動作が一
貫しており、且つネットワーク及び情報システム管理サ
ービスの使用に関するISO規格に記載の動作に合致す
る(ISO CMIS参照)。
貫しており、且つネットワーク及び情報システム管理サ
ービスの使用に関するISO規格に記載の動作に合致す
る(ISO CMIS参照)。
【0023】データベースへのアクセスがSQLのよう
な構築言語を介して可能である。
な構築言語を介して可能である。
【0024】例えば対話又は情報の可視化のためのユー
ザインタフェースが、例えばX/Motifのような図
形ユーザインタフェース開発及び管理構成要素へのアク
セスと、システムGO(Graphic Object
s)のような作成された図形オブジェクトを用いるアプ
リケーションへのアクセスとを可能にする関数を介して
管理される。
ザインタフェースが、例えばX/Motifのような図
形ユーザインタフェース開発及び管理構成要素へのアク
セスと、システムGO(Graphic Object
s)のような作成された図形オブジェクトを用いるアプ
リケーションへのアクセスとを可能にする関数を介して
管理される。
【0025】本発明で使用される言語SMLは言語“C
ommon Lisp”の影響を受けているが、必ずし
もこの言語に完全に適合しようとするものではない。な
ぜなら、言語SMLは“Common Lisp”又は
他の総てのLisp派生言語とは基本的に異なるオブジ
ェクトへの到達を目指しているからである。実際、全体
から見ると、Lisp派生言語は人口知能分野で広く使
用されているが、言語SMLはネットワーク管理プログ
ラム型のアプリケーションプログラムに適合したもので
ある。この理由から、言語SMLの必要基本関数は例え
ば“Common Lisp”で提案されている関数よ
りも明らかに少ない。
ommon Lisp”の影響を受けているが、必ずし
もこの言語に完全に適合しようとするものではない。な
ぜなら、言語SMLは“Common Lisp”又は
他の総てのLisp派生言語とは基本的に異なるオブジ
ェクトへの到達を目指しているからである。実際、全体
から見ると、Lisp派生言語は人口知能分野で広く使
用されているが、言語SMLはネットワーク管理プログ
ラム型のアプリケーションプログラムに適合したもので
ある。この理由から、言語SMLの必要基本関数は例え
ば“Common Lisp”で提案されている関数よ
りも明らかに少ない。
【0026】言語SMLと“Common Lisp”
との間には更に別の相違が存在する。例えば、言語SM
Lではアトムが単一の値を有し得るのに対し、通常のL
ispダイアレクトは例えば、同一の名称がコンフリク
トの危険を伴わずに変数と関数とに与えられるようにす
る。また、言語SMLでは、情報の解析及び探査のため
の走査動作を促進すべく、リストが表のように内部的に
処理される。
との間には更に別の相違が存在する。例えば、言語SM
Lではアトムが単一の値を有し得るのに対し、通常のL
ispダイアレクトは例えば、同一の名称がコンフリク
トの危険を伴わずに変数と関数とに与えられるようにす
る。また、言語SMLでは、情報の解析及び探査のため
の走査動作を促進すべく、リストが表のように内部的に
処理される。
【0027】留意すべき別の重要事項として、樹木構造
を有する管理情報ベース(所与のアプリケーションに有
用な総ての情報を含むベース)の管理されるオブジェク
トはリストの形態で簡単に表現できるが、この表現は言
語SMLの場合には極めて自然に得られる。
を有する管理情報ベース(所与のアプリケーションに有
用な総ての情報を含むベース)の管理されるオブジェク
トはリストの形態で簡単に表現できるが、この表現は言
語SMLの場合には極めて自然に得られる。
【0028】アセンブリLIBの外部ライブラリは、最
初にC型言語で書き込まれたコンパイルされた手続きで
構成されているが、原始関数をコード化する関数と異な
り、SML型の引数又はオブジェクトを無視する。前記
手続きは、SML型引数をC型言語に変換するか又はそ
の逆の変換を行うため、アセンブリLIBの外部ライブ
ラリとSML関数とを連結する手続きとみなすことがで
きる。
初にC型言語で書き込まれたコンパイルされた手続きで
構成されているが、原始関数をコード化する関数と異な
り、SML型の引数又はオブジェクトを無視する。前記
手続きは、SML型引数をC型言語に変換するか又はそ
の逆の変換を行うため、アセンブリLIBの外部ライブ
ラリとSML関数とを連結する手続きとみなすことがで
きる。
【0029】XAF又はMIFのような関数の使用は、
ユーザを任意のアプリケーションにアクセスさせる上で
必須であると共に、ネットワーク及び情報システム管理
サービスに含まれている情報(例えばデータベース)を
検索するために必須である。関数GAFの使用は有用で
はあるが必ずしも必須ではない。これに対し、関数SA
Fの使用はアプリケーションにとって必須であることは
ない。実際、関数SAFは関係データベースの形成又は
該データベースへのアクセスを可能にするために使用さ
れるにすぎない。このようなデータベースとの関係は、
あるアプリケーションに対して特異的な使用について設
定し得る。また、前記データベースは複数のアプリケー
ションの間で共有され得る。
ユーザを任意のアプリケーションにアクセスさせる上で
必須であると共に、ネットワーク及び情報システム管理
サービスに含まれている情報(例えばデータベース)を
検索するために必須である。関数GAFの使用は有用で
はあるが必ずしも必須ではない。これに対し、関数SA
Fの使用はアプリケーションにとって必須であることは
ない。実際、関数SAFは関係データベースの形成又は
該データベースへのアクセスを可能にするために使用さ
れるにすぎない。このようなデータベースとの関係は、
あるアプリケーションに対して特異的な使用について設
定し得る。また、前記データベースは複数のアプリケー
ションの間で共有され得る。
【0030】インタフェースAPIは、SML原始関数
をコード化する関数の実行を伴う言語SMLの関数BF
を介する総ての関数SAF、XAF、GAF、MIFの
アプリケーションを許可する。SML原始関数をコード
化する関数は、幾つかの確認及び基本フォーマッティン
グ操作の後で、アセンブリLIBの外部ライブラリの1
つへのアクセスを可能にする適当な関数を呼び出す。
をコード化する関数の実行を伴う言語SMLの関数BF
を介する総ての関数SAF、XAF、GAF、MIFの
アプリケーションを許可する。SML原始関数をコード
化する関数は、幾つかの確認及び基本フォーマッティン
グ操作の後で、アセンブリLIBの外部ライブラリの1
つへのアクセスを可能にする適当な関数を呼び出す。
【0031】また、核Kの役割はSML関数の呼び出し
とSML原始関数をコード化する関数とを結合すること
にある。SML原始関数をコード化する関数は関数SA
F、XAF、GAF、MIFと同様にコードのコンパイ
ルを伴うC型言語の手続きである。もとのSML関数の
呼び出しは翻訳される。一般的には、翻訳段階は実行時
間の1%以下に相当し、処理時間の最大部分はコンパイ
ルされたコードの実行に移される。
とSML原始関数をコード化する関数とを結合すること
にある。SML原始関数をコード化する関数は関数SA
F、XAF、GAF、MIFと同様にコードのコンパイ
ルを伴うC型言語の手続きである。もとのSML関数の
呼び出しは翻訳される。一般的には、翻訳段階は実行時
間の1%以下に相当し、処理時間の最大部分はコンパイ
ルされたコードの実行に移される。
【0032】SML環境の重要且つ有利な特徴の1つ
は、外部事象に対する反応性に由来する。例えば、ある
SMLアプリケーションはインタフェースを介して種々
のサービスにアクセスし、発生する総ての事象が該アプ
リケーションに通知されるように要求することができ
る。例えば、ユーザのアクション(キー、スクリーン、
マウス等を介する)は、ユーザとの対話を開始させるS
MLアプリケーションを「再起動」させる特異的事象と
見なし得る。この「再起動(reveil)」動作は、
事象を処理するための特異的SML手続きの実行を含
む。このような手続きは「コールバック」手続きと称
し、あらゆるSMLアプリケーションの展開にとって極
めて重要なものである。
は、外部事象に対する反応性に由来する。例えば、ある
SMLアプリケーションはインタフェースを介して種々
のサービスにアクセスし、発生する総ての事象が該アプ
リケーションに通知されるように要求することができ
る。例えば、ユーザのアクション(キー、スクリーン、
マウス等を介する)は、ユーザとの対話を開始させるS
MLアプリケーションを「再起動」させる特異的事象と
見なし得る。この「再起動(reveil)」動作は、
事象を処理するための特異的SML手続きの実行を含
む。このような手続きは「コールバック」手続きと称
し、あらゆるSMLアプリケーションの展開にとって極
めて重要なものである。
【0033】SMLアプリケーションは、適当な事象源
に対する発呼の発生後に、且つ事象の発生時に開始され
なければならないコールバック手続きの名称を供給した
後で、事象を処理するように実施される。
に対する発呼の発生後に、且つ事象の発生時に開始され
なければならないコールバック手続きの名称を供給した
後で、事象を処理するように実施される。
【0034】実際、SMLアプリケーションはコールバ
ック手続きの集合体とみなすことができる。このアプリ
ケーションはその開始時に且つ初期化の後で、適当なコ
ールバック手続きの名称を供給することによって事象源
に自己の要求を通知する。このアプリケーションは次い
で前記事象の発生を待機する。
ック手続きの集合体とみなすことができる。このアプリ
ケーションはその開始時に且つ初期化の後で、適当なコ
ールバック手続きの名称を供給することによって事象源
に自己の要求を通知する。このアプリケーションは次い
で前記事象の発生を待機する。
【0035】発生した事象はSMLインタープリタの核
Kによって管理される。従って、核KはSML発呼とS
ML原始関数をコード化する関数との関係にかかわるだ
けでなく、事象の処理にもかかわる。所与のソースから
事象が発生すると、核Kは必要であればアプリケーショ
ンの非活動状態を待ち、次いで適当な戻り手続きを起動
する。
Kによって管理される。従って、核KはSML発呼とS
ML原始関数をコード化する関数との関係にかかわるだ
けでなく、事象の処理にもかかわる。所与のソースから
事象が発生すると、核Kは必要であればアプリケーショ
ンの非活動状態を待ち、次いで適当な戻り手続きを起動
する。
【0036】あるアプリケーションがある事象を処理し
ている最中に別の事象が発生した場合には、前記核は実
行中のタスクが終了するのを待ってから、新しい事象に
対応する戻り手続きを起動する。従って、事象は所与の
アプリケーションに関して処理待機状態を維持し得、待
機ファイル中の最初の事象が次に処理されることにな
る。事象の処理には優先度の概念はない。
ている最中に別の事象が発生した場合には、前記核は実
行中のタスクが終了するのを待ってから、新しい事象に
対応する戻り手続きを起動する。従って、事象は所与の
アプリケーションに関して処理待機状態を維持し得、待
機ファイル中の最初の事象が次に処理されることにな
る。事象の処理には優先度の概念はない。
【0037】本発明に関するプログラミング概念では、
展開すべき任意のSMLアプリケーションが主に下記の
2つの基本的タスクを実行しなければならない。
展開すべき任意のSMLアプリケーションが主に下記の
2つの基本的タスクを実行しなければならない。
【0038】ユーザとのインタフェースを形成するタス
ク。これは、ユーザとアプリケーションとの間の対話を
制御するのに使用されるオブジェクト(窓、対話箱、ボ
タン等)をスクリーン上に表示する操作を含む。
ク。これは、ユーザとアプリケーションとの間の対話を
制御するのに使用されるオブジェクト(窓、対話箱、ボ
タン等)をスクリーン上に表示する操作を含む。
【0039】ユーザによって要求された情報を探索し、
処理し且つ表示するタスク。
処理し且つ表示するタスク。
【0040】言語SMLは、これらの2つの基本的タス
クの実行を許可する種々の関数とのインタフェースを供
給する。
クの実行を許可する種々の関数とのインタフェースを供
給する。
【0041】ユーザインタフェースは、通常のように、
例えば公知のシステムOSF/Motif−X/Win
dows(Open Software Founda
tion及びM.I.T.の登録商標)のような図形ユ
ーザインタフェース開発及び管理システムを使用するた
めにコード化される。言語SMLは、外部ライブラリX
ML、例えばX/Motifにアクセスするコンパイル
された関数XAFのためのインタフェースを供給する。
例えば公知のシステムOSF/Motif−X/Win
dows(Open Software Founda
tion及びM.I.T.の登録商標)のような図形ユ
ーザインタフェース開発及び管理システムを使用するた
めにコード化される。言語SMLは、外部ライブラリX
ML、例えばX/Motifにアクセスするコンパイル
された関数XAFのためのインタフェースを供給する。
【0042】アプリケーションは、ユーザによって要求
されている情報を決定したら、次のステップでその情報
を探索しなければならない。
されている情報を決定したら、次のステップでその情報
を探索しなければならない。
【0043】種々のアプリケーションについて使用可能
にされなければならない情報全体は被管理情報ベースM
IBと称する。このベースは、集中データベースと異な
って、単一のデータディレクトリからなるのではなく、
概念的な性質を有する。なぜなら、このベースは、必要
な時に供給することができる情報を表すからである。
にされなければならない情報全体は被管理情報ベースM
IBと称する。このベースは、集中データベースと異な
って、単一のデータディレクトリからなるのではなく、
概念的な性質を有する。なぜなら、このベースは、必要
な時に供給することができる情報を表すからである。
【0044】従って、ベースMIB中の情報の探索で
は、データベースへのアクセス要求は行われない。この
探索では、要求された情報を提供できる構成要素からの
情報の要求が行われる。これらの構成要素の各々はベー
スMIBの一部分を管理する。
は、データベースへのアクセス要求は行われない。この
探索では、要求された情報を提供できる構成要素からの
情報の要求が行われる。これらの構成要素の各々はベー
スMIBの一部分を管理する。
【0045】アプリケーション(要求提起構成要素)と
情報管理体(情報提供構成要素)との間の対話は、これ
ら2つの構成要素の間で送出されるメッセージを介して
得られる。管理体は、自分が知っているオブジェクト部
分を介してアプリケーションを供給することにより情報
要求に応答する。これらのオブジェクトの管理体を以後
オブジェクト管理体と称する。
情報管理体(情報提供構成要素)との間の対話は、これ
ら2つの構成要素の間で送出されるメッセージを介して
得られる。管理体は、自分が知っているオブジェクト部
分を介してアプリケーションを供給することにより情報
要求に応答する。これらのオブジェクトの管理体を以後
オブジェクト管理体と称する。
【0046】本発明が適用される環境は、意味論的には
オブジェクト指向パラダイム(paradigme o
riente−objet)を使用する。これは、プロ
グラマが手続き型アプローチ(approche or
ientee−procedure)を使用しないこと
を意味する。オブジェクトは、特定数のアクションの要
求が可能なエンティティであるという点で手続きとは異
なる。あるオブジェクトに固有のデータはそのオブジェ
クト以外のものによって直接的に処理されることはな
く、一般的には、手続き向きモデルの場合と異なり、広
域データという概念は存在しない。
オブジェクト指向パラダイム(paradigme o
riente−objet)を使用する。これは、プロ
グラマが手続き型アプローチ(approche or
ientee−procedure)を使用しないこと
を意味する。オブジェクトは、特定数のアクションの要
求が可能なエンティティであるという点で手続きとは異
なる。あるオブジェクトに固有のデータはそのオブジェ
クト以外のものによって直接的に処理されることはな
く、一般的には、手続き向きモデルの場合と異なり、広
域データという概念は存在しない。
【0047】オブジェクト指向モデルを用いて本発明の
概念でアプリケーションを展開するためには、次のこと
を記憶に留どめなければならない。即ち、オブジェクト
にメッセージを送るエンティティはそのオブジェクトに
よるメッセージの処理の終了を待つ必要はなく、機能が
非同期であるため、最初のオブジェクトに送られたメッ
セージに対する応答を待ちながら別のメッセージを別の
オブジェクトに送ることができる。逆に、手続きが呼び
出された時は、機能が同期であるため、前記手続きが終
了しない限り呼び出しコードが他の総ての呼び出しをブ
ロックする。
概念でアプリケーションを展開するためには、次のこと
を記憶に留どめなければならない。即ち、オブジェクト
にメッセージを送るエンティティはそのオブジェクトに
よるメッセージの処理の終了を待つ必要はなく、機能が
非同期であるため、最初のオブジェクトに送られたメッ
セージに対する応答を待ちながら別のメッセージを別の
オブジェクトに送ることができる。逆に、手続きが呼び
出された時は、機能が同期であるため、前記手続きが終
了しない限り呼び出しコードが他の総ての呼び出しをブ
ロックする。
【0048】これら種々のアプリケーションの実施で
は、メッセージがオブジェクトを指定してそのオブジェ
クトに直接適用され得る。なぜなら、アプリケーション
によって送られたメッセージを処理するのはオブジェク
トではなく、オブジェクト管理体だからである。
は、メッセージがオブジェクトを指定してそのオブジェ
クトに直接適用され得る。なぜなら、アプリケーション
によって送られたメッセージを処理するのはオブジェク
トではなく、オブジェクト管理体だからである。
【0049】このオブジェクトアプリケーション及び管
理モデルには、アプリケーションがクライエントであり
且つオブジェクト管理体がサーバであるクライエント−
サーバモデルを対応させることができる。この場合は、
アプリケーションがオブジェクト管理サービスを要求す
るだけである。オブジェクト管理体は、アプリケーショ
ンによって送出されたメッセージを受け取るとそのメッ
セージを翻訳し処理する。
理モデルには、アプリケーションがクライエントであり
且つオブジェクト管理体がサーバであるクライエント−
サーバモデルを対応させることができる。この場合は、
アプリケーションがオブジェクト管理サービスを要求す
るだけである。オブジェクト管理体は、アプリケーショ
ンによって送出されたメッセージを受け取るとそのメッ
セージを翻訳し処理する。
【0050】インテグレータエージェント(agent
integrateur)が、要求を送出したアプリ
ケーションに情報を供給するオブジェクト管理体である
とすれば、このインテグレータエージェントは、前記情
報を供給するために、管理情報ベースの被管理オブジェ
クトの属性値を管理するエージェント(通常は別のシス
テムの構成要素からなる)とインタフェースを介して通
信しなければならない。
integrateur)が、要求を送出したアプリ
ケーションに情報を供給するオブジェクト管理体である
とすれば、このインテグレータエージェントは、前記情
報を供給するために、管理情報ベースの被管理オブジェ
クトの属性値を管理するエージェント(通常は別のシス
テムの構成要素からなる)とインタフェースを介して通
信しなければならない。
【0051】アプリケーションの重要な特徴の1つは、
アプリケーションが、オブジェクト管理体と異なり、ユ
ーザと直接対話することにある。アプリケーションはユ
ーザインタフェースを介して要求を受け取り、情報をユ
ーザに送り返す。これに対し、アプリケーションは別の
アプリケーション又は別のオブジェクト管理体について
作動することがないように、オブジェクトを管理するこ
とはない。
アプリケーションが、オブジェクト管理体と異なり、ユ
ーザと直接対話することにある。アプリケーションはユ
ーザインタフェースを介して要求を受け取り、情報をユ
ーザに送り返す。これに対し、アプリケーションは別の
アプリケーション又は別のオブジェクト管理体について
作動することがないように、オブジェクトを管理するこ
とはない。
【0052】既述のようにアプリケーションは事象に反
応するが、これは、事実上アプリケーションが例えばユ
ーザのインタラクションのような事象の発生を待つこと
を意味する。しかしながら、アプリケーションは自分で
事象を発生させることはなく、事象はオブジェクト管理
体によってのみ発生する。
応するが、これは、事実上アプリケーションが例えばユ
ーザのインタラクションのような事象の発生を待つこと
を意味する。しかしながら、アプリケーションは自分で
事象を発生させることはなく、事象はオブジェクト管理
体によってのみ発生する。
【0053】アプリケーションは、SML環境で使用さ
れる場合には、ユーザのインタラクションに応答する準
備をしなければならない。ユーザの情報要求はアプリケ
ーションと1つ又は複数のオブジェクト管理体との間の
対話を誘起する。これは、前記管理体が活動状態で存在
することと、前記管理体がアプリケーションによって送
出されたメッセージを受け取る準備ができていることと
を前提とする。そのため管理体は常に機能可能状態にあ
り、アプリケーションが活動中である限り活動状態で存
在し続けなければならない。
れる場合には、ユーザのインタラクションに応答する準
備をしなければならない。ユーザの情報要求はアプリケ
ーションと1つ又は複数のオブジェクト管理体との間の
対話を誘起する。これは、前記管理体が活動状態で存在
することと、前記管理体がアプリケーションによって送
出されたメッセージを受け取る準備ができていることと
を前提とする。そのため管理体は常に機能可能状態にあ
り、アプリケーションが活動中である限り活動状態で存
在し続けなければならない。
【0054】このような情況では、総てのアプリケーシ
ョン及びオブジェクト管理体が標準的プロトコル及びサ
ービスを用いる通信下部構造を介して互いに通信し合
う。
ョン及びオブジェクト管理体が標準的プロトコル及びサ
ービスを用いる通信下部構造を介して互いに通信し合
う。
【0055】前記下部構造は、ネットワーク及び情報シ
ステム管理サービスを含む通信管理サービスを含む。
ステム管理サービスを含む通信管理サービスを含む。
【0056】アプリケーションはオブジェクト管理体と
同様に、ネットワーク及び情報システム管理サービス
(OSI CMIS規格に基づく)へのアクセスを有す
る。アプリケーションは、関数BF及びMIFによりイ
ンタフェースAPIを介し、次いでCMISのようなサ
ービスへのインタフェースとして使用される外部ライブ
ラリMILを介して、前記サービス(例えばCMIS)
にアクセスする。
同様に、ネットワーク及び情報システム管理サービス
(OSI CMIS規格に基づく)へのアクセスを有す
る。アプリケーションは、関数BF及びMIFによりイ
ンタフェースAPIを介し、次いでCMISのようなサ
ービスへのインタフェースとして使用される外部ライブ
ラリMILを介して、前記サービス(例えばCMIS)
にアクセスする。
【0057】当該アプリケーションにはCMISのよう
なネットワーク及び情報システム管理サービスにより2
つの重要なサービスを与えることができる。即ち、ある
アプリケーションによって送出されたメッセージを受け
取るべき管理体をそのアプリケーションが指定するオブ
ジェクトのタイプに応じて決定しながら、アプリケーシ
ョンとオブジェクト管理体との間のルーティング又は切
り換えサービスを供給するサービス(前記アプリケーシ
ョンはオブジェクト管理体が同一システム上に存在する
のか又は別のシステム上に存在するのかを知らない)
と、被管理オブジェクトベースの被管理オブジェクトに
関する動作の実行を許可する関数をアプリケーションに
提案するサービスとを与える。前記動作のうち最も重要
なものは下記の動作である。
なネットワーク及び情報システム管理サービスにより2
つの重要なサービスを与えることができる。即ち、ある
アプリケーションによって送出されたメッセージを受け
取るべき管理体をそのアプリケーションが指定するオブ
ジェクトのタイプに応じて決定しながら、アプリケーシ
ョンとオブジェクト管理体との間のルーティング又は切
り換えサービスを供給するサービス(前記アプリケーシ
ョンはオブジェクト管理体が同一システム上に存在する
のか又は別のシステム上に存在するのかを知らない)
と、被管理オブジェクトベースの被管理オブジェクトに
関する動作の実行を許可する関数をアプリケーションに
提案するサービスとを与える。前記動作のうち最も重要
なものは下記の動作である。
【0058】GET:オブジェクトの情報(これらの属
性の値)を探索する動作。これは最も多く使用される動
作である。
性の値)を探索する動作。これは最も多く使用される動
作である。
【0059】CANCEL GET:動作GET後の受
け取り済みの応答の数が十分であることをアプリケーシ
ョンがネットワーク及び情報システム管理サービスに通
知できるようにする操作。その結果、オブジェクト管理
体からの別の応答は総て拒絶されることになる。
け取り済みの応答の数が十分であることをアプリケーシ
ョンがネットワーク及び情報システム管理サービスに通
知できるようにする操作。その結果、オブジェクト管理
体からの別の応答は総て拒絶されることになる。
【0060】SET:オブジェクトの属性に特定の値を
与える動作。
与える動作。
【0061】CREATE:オブジェクトインスタンス
(instance d’objet)を形成する動
作。
(instance d’objet)を形成する動
作。
【0062】DELETE:オブジェクトインスタンス
を抹消する動作。
を抹消する動作。
【0063】アプリケーションが属性値を決定できるの
は、オブジェクトの決定がこの動作を許可した時だけで
ある。これは、動作CREATE及びDELETEにつ
いても同様である。
は、オブジェクトの決定がこの動作を許可した時だけで
ある。これは、動作CREATE及びDELETEにつ
いても同様である。
【0064】ここで、言語SMLの関数セットBFの非
限定的具体例を、特定の取決め事項と統語論的記述とに
ついて説明する。
限定的具体例を、特定の取決め事項と統語論的記述とに
ついて説明する。
【0065】慣例的に、リテラル記号はその記号自体が
参照記号ではなくデータであることを意味し、アスタリ
スク*は、これを末尾に有する記号がオプションであ
り、所望の回数だけ反復され得ることを意味し、符号+
はこの符号を末尾に有する記号が所望の回数だけ反復さ
れ得るが少なくとも1回は存在しなければならないこと
を意味し、大括弧{}はその中の記号群が単一の項と見
なされることを意味し、鈎括弧〔〕はその中の記号群が
オプションであることを意味し、分離バー|は複数の代
替が存在することを意味する。
参照記号ではなくデータであることを意味し、アスタリ
スク*は、これを末尾に有する記号がオプションであ
り、所望の回数だけ反復され得ることを意味し、符号+
はこの符号を末尾に有する記号が所望の回数だけ反復さ
れ得るが少なくとも1回は存在しなければならないこと
を意味し、大括弧{}はその中の記号群が単一の項と見
なされることを意味し、鈎括弧〔〕はその中の記号群が
オプションであることを意味し、分離バー|は複数の代
替が存在することを意味する。
【0066】注釈は総てセミコロンで始まり、行の最後
で終わる。
で終わる。
【0067】数は符号を有する32ビットによって表さ
れ、10進法形態(デフォルト(par defaul
t))、16進法形態(#xもしくは0x)又はコード
ASCII(#\J)に従って記述できる。
れ、10進法形態(デフォルト(par defaul
t))、16進法形態(#xもしくは0x)又はコード
ASCII(#\J)に従って記述できる。
【0068】記号は関数又は変数を名付けるための識別
子である。
子である。
【0069】コロン:で始まる記号はキーワードであ
る。キーワードは関数の定義で使用される。
る。キーワードは関数の定義で使用される。
【0070】言語SMLの記号は単一評価され(mon
oevalues)、従って1つの記号は1つの関数又
は1つの変数を表すものであり、両方を表すことはな
い。
oevalues)、従って1つの記号は1つの関数又
は1つの変数を表すものであり、両方を表すことはな
い。
【0071】総てのLisp派生言語の場合と同様に、
リストはデータ構造であると同時にプログラム構造でも
ある。省略時解釈ではリストが評価され、最初のエレメ
ントが関数でなければならない。但し関数(’)を使用
すれば評価を回避することができる。
リストはデータ構造であると同時にプログラム構造でも
ある。省略時解釈ではリストが評価され、最初のエレメ
ントが関数でなければならない。但し関数(’)を使用
すれば評価を回避することができる。
【0072】リストはメモリに記憶されている連続的エ
レメントの拡張可能な集合体であるため、一般的な連鎖
セル(cellules chainees)状Lis
p構造を有してはいない。それでもリスト又はリスト連
鎖(リスト集合体)はCommon Lispシーケン
スのように処理される。
レメントの拡張可能な集合体であるため、一般的な連鎖
セル(cellules chainees)状Lis
p構造を有してはいない。それでもリスト又はリスト連
鎖(リスト集合体)はCommon Lispシーケン
スのように処理される。
【0073】リスト“Propriete(所有権)”
は、属性とその値とからなる対を複数含む特別のリスト
である。属性は記号でなければならない。
は、属性とその値とからなる対を複数含む特別のリスト
である。属性は記号でなければならない。
【0074】リスト連鎖は引用符で囲んで示される。
【0075】以下に主要制御関数を挙げる。
【0076】“catch”及び“throw”:これ
らの関数は比較的例外的に操作され、複雑な処理を回避
するための有力なメカニズムを有する。関数“catc
h”はフォーマット(forme)を評価するが、同じ
タグ(etiquette)を有する“throw”が
“forme”の評価中に発生すると、前記評価は最後
まで続けられず、“catch”は“resultat
(結果)”の評価を戻す。
らの関数は比較的例外的に操作され、複雑な処理を回避
するための有力なメカニズムを有する。関数“catc
h”はフォーマット(forme)を評価するが、同じ
タグ(etiquette)を有する“throw”が
“forme”の評価中に発生すると、前記評価は最後
まで続けられず、“catch”は“resultat
(結果)”の評価を戻す。
【0077】タグは制御転送用のターゲット(cibl
e)として決定されなければならない。“catch”
及び“throw”は対をなす。“catch”と“t
hrow”との組合わせは種々のタグで何組も使用し得
る。“throw”には必ず“catch”が対応し、
“throw”が未知のタグを有しているとエラーが通
報される。
e)として決定されなければならない。“catch”
及び“throw”は対をなす。“catch”と“t
hrow”との組合わせは種々のタグで何組も使用し得
る。“throw”には必ず“catch”が対応し、
“throw”が未知のタグを有しているとエラーが通
報される。
【0078】“Cond”:これは条件テスト(tes
t conditinonnel)である。この関数
は、確認された条件を戻す第1のテストに対応する“f
orme(フォーマット)”を評価する。この関数は、
そのフォーマットのうち最後のフォーマットの評価を戻
す。フォーマットが存在しない場合には、単一テスト値
が戻される。各テストで“nil”(何もみつからな
い)が生じた場合には、関数“cond”は“nil”
を戻す。
t conditinonnel)である。この関数
は、確認された条件を戻す第1のテストに対応する“f
orme(フォーマット)”を評価する。この関数は、
そのフォーマットのうち最後のフォーマットの評価を戻
す。フォーマットが存在しない場合には、単一テスト値
が戻される。各テストで“nil”(何もみつからな
い)が生じた場合には、関数“cond”は“nil”
を戻す。
【0079】“do”:この関数は汎用反復操作(it
eration generale)を行い、任意の数
値記号を有する汎用反復メカニズムを供給する。最初は
変数がその初期値に連結され、次いで該関数が下記のよ
うに機能するループを実行する。
eration generale)を行い、任意の数
値記号を有する汎用反復メカニズムを供給する。最初は
変数がその初期値に連結され、次いで該関数が下記のよ
うに機能するループを実行する。
【0080】・ 最終テストの評価。この属性が確認さ
れ且つ“resultat”が特定された場合には、
“resultat”が評価され最終評価が戻される。
“resultat”が特定されなければ“nil”が
戻される。
れ且つ“resultat”が特定された場合には、
“resultat”が評価され最終評価が戻される。
“resultat”が特定されなければ“nil”が
戻される。
【0081】・ 各“forme”の評価。
【0082】・ 左から右への「ステップ毎」の式の評
価。各結果は対応する可変記号に関連している。「ステ
ップ」が省略されれば、変数は不変である。
価。各結果は対応する可変記号に関連している。「ステ
ップ」が省略されれば、変数は不変である。
【0083】“dolist”:この関数はリストのエ
レメント中で反復操作を行い、リストの各エレメントを
1つの「変数」に順次割り当て、各“forme”を評
価する。“resultat”が省略されれば、“ni
l”が戻される。
レメント中で反復操作を行い、リストの各エレメントを
1つの「変数」に順次割り当て、各“forme”を評
価する。“resultat”が省略されれば、“ni
l”が戻される。
【0084】“dotimes”:この関数は下記の操
作によってゼロ〜(n−1)のループを形成させる。こ
の関数はまず実行すべき回数を評価する。この回数は整
数でなければならない。次いで、0〜(評価数−1)の
整数を順次割り当てる。各反復毎に、各フォーマットの
指示が実行される。評価された数が0又は負の値に等し
ければ、前記指示は実行されない。この関数の結果は
“resultat”の評価であり、これが省略されれ
ば結果は“nil”である。
作によってゼロ〜(n−1)のループを形成させる。こ
の関数はまず実行すべき回数を評価する。この回数は整
数でなければならない。次いで、0〜(評価数−1)の
整数を順次割り当てる。各反復毎に、各フォーマットの
指示が実行される。評価された数が0又は負の値に等し
ければ、前記指示は実行されない。この関数の結果は
“resultat”の評価であり、これが省略されれ
ば結果は“nil”である。
【0085】“eval”:この関数は瞬間的環境でS
ML式を評価する。引数がこの関数によって評価される
前にSMLによって評価されるため、二重評価が与えら
れる。
ML式を評価する。引数がこの関数によって評価される
前にSMLによって評価されるため、二重評価が与えら
れる。
【0086】“exit”:この関数は実行を終了する
ことによってSML環境を閉じる。
ことによってSML環境を閉じる。
【0087】“for”及び“mapfor”:これら
の関数は値リスト中で反復を行う。これらの関数は、評
価値リストの各エレメントに1つの「変数」(評価され
ていない)を順次割り当て、指示を実行する。“fo
r”は最終反復の最終指示の評価の値を戻し、“map
for”は反復用の連続的「指示」値からなるリストを
構成する。
の関数は値リスト中で反復を行う。これらの関数は、評
価値リストの各エレメントに1つの「変数」(評価され
ていない)を順次割り当て、指示を実行する。“fo
r”は最終反復の最終指示の評価の値を戻し、“map
for”は反復用の連続的「指示」値からなるリストを
構成する。
【0088】“if”:“cond”と類似の機能を有
するが括弧レベルが削除されている条件テスト。このテ
ストは、予備条件が確認されなかった場合には、確認さ
れた第1の条件の部分“then”又は部分“els
e”(この部分が存在すれば)を実行する。
するが括弧レベルが削除されている条件テスト。このテ
ストは、予備条件が確認されなかった場合には、確認さ
れた第1の条件の部分“then”又は部分“els
e”(この部分が存在すれば)を実行する。
【0089】“let”:この関数は下記の操作によっ
て局所変数を通知する。
て局所変数を通知する。
【0090】・ 総ての初期値を評価し、これらの値を
対応する変数に関連させる。
対応する変数に関連させる。
【0091】・ 各「forme」を逐次評価する。
【0092】いずれの初期値も変数に対応しなければ、
“nil”が初期化される。この関数の戻し値(val
eur de retour)は最終“forme”に
よって戻される値である。
“nil”が初期化される。この関数の戻し値(val
eur de retour)は最終“forme”に
よって戻される値である。
【0093】“progn”:この関数は指示を逐次実
行し、各“forme”を評価し、最終評価の結果を戻
す。この関数は、例えば指示“if”の部分“the
n”で1つ以上の指示が待機している場合に有用であ
る。
行し、各“forme”を評価し、最終評価の結果を戻
す。この関数は、例えば指示“if”の部分“the
n”で1つ以上の指示が待機している場合に有用であ
る。
【0094】“quote”又は“/”:この関数の目
的は評価を回避することにある。この関数はオブジェク
トを評価せずに戻す。
的は評価を回避することにある。この関数はオブジェク
トを評価せずに戻す。
【0095】“set”又は“setq”:この関数
は、変数に値を割り当てるために使用される。これは、
Lisp派生言語割り当て関数と同等のものである。第
1の引数は“setq”形態では評価されず、“se
t”形態で評価される。これら2つの関数は第2の引数
を評価し、第1の引数の値を結果として得られる値に固
定する。作業値(valeurs actives)の
固定はこれらの値を変化させず、前記値に基づいて、予
め決定された関数を呼び出す。
は、変数に値を割り当てるために使用される。これは、
Lisp派生言語割り当て関数と同等のものである。第
1の引数は“setq”形態では評価されず、“se
t”形態で評価される。これら2つの関数は第2の引数
を評価し、第1の引数の値を結果として得られる値に固
定する。作業値(valeurs actives)の
固定はこれらの値を変化させず、前記値に基づいて、予
め決定された関数を呼び出す。
【0096】“some”及び“every”:これら
2つの関数はリスト中で属性を検索するための反復を誘
起する。そのために、これらの関数はリストの各エレメ
ントに属性関数(fonction attribu
t)を適用する。“some”は、“nil”ではない
値が戻されるまで前記関数を適用し、次いで前記値を戻
し、さもなければ最後に“nil”を戻す。“ever
y”は値“nil”が戻されるまで前記関数を適用し、
“nil”を戻す。さもなければ最後に、得られた最終
結果を戻す。所与のリストの数は適用される関数の引数
の数と同じでなければならない。従って、第1の所与の
リストの長さをnとすれば、前記関数はn回適用され
る。
2つの関数はリスト中で属性を検索するための反復を誘
起する。そのために、これらの関数はリストの各エレメ
ントに属性関数(fonction attribu
t)を適用する。“some”は、“nil”ではない
値が戻されるまで前記関数を適用し、次いで前記値を戻
し、さもなければ最後に“nil”を戻す。“ever
y”は値“nil”が戻されるまで前記関数を適用し、
“nil”を戻す。さもなければ最後に、得られた最終
結果を戻す。所与のリストの数は適用される関数の引数
の数と同じでなければならない。従って、第1の所与の
リストの長さをnとすれば、前記関数はn回適用され
る。
【0097】別のリストの1つが第1のリストより小さ
い大きさを有する場合、そのリストは、必要な回数の終
了時の最終エレメントを第1のリストと同じ大きさのリ
ストに加えたものに等しいとみなされる。第1のリスト
が別のリストより小さい大きさを有する場合は、その他
のリストの第1のエレメントnのみが参照される。
い大きさを有する場合、そのリストは、必要な回数の終
了時の最終エレメントを第1のリストと同じ大きさのリ
ストに加えたものに等しいとみなされる。第1のリスト
が別のリストより小さい大きさを有する場合は、その他
のリストの第1のエレメントnのみが参照される。
【0098】“unless”:この関数はネガティブ
な条件テストであって、各指示を実行し、条件が値“n
il”で評価されれば最終指示の値を戻し、さもなけれ
ば“nil”を戻す。これは、後述の関数“when”
の逆である。
な条件テストであって、各指示を実行し、条件が値“n
il”で評価されれば最終指示の値を戻し、さもなけれ
ば“nil”を戻す。これは、後述の関数“when”
の逆である。
【0099】“unwind−protect”:この
関数は“form protegee”の評価を戻す
が、内部“throw”による退出試行(tentat
ive de sortie)を保証する。各“for
me”は“throw”に従う前に逐次評価される。
関数は“form protegee”の評価を戻す
が、内部“throw”による退出試行(tentat
ive de sortie)を保証する。各“for
me”は“throw”に従う前に逐次評価される。
【0100】“when”:この関数はポジティブな条
件テストであり、各指示を実行し、評価条件が確認され
れば最終指示の値を戻し、さもなければ“nil”を戻
す。
件テストであり、各指示を実行し、評価条件が確認され
れば最終指示の値を戻し、さもなければ“nil”を戻
す。
【0101】“while”:この関数は、各指示を条
件“nil”まで逐次実行する。この関数は常に“ni
l”を戻す。
件“nil”まで逐次実行する。この関数は常に“ni
l”を戻す。
【0102】“with”又は“with−eva
l”:これらの関数は局所変数を通知する。これらは、
ある指示群に固有の変数を通知し初期化するために使用
される構成体である。作業値及び関数は、“with”
の実行後に初期値をゼロにリセットすることにより所望
される通りに操作される。値は逐次評価される。アーギ
ュメント“context(コンテキスト)”は変数及
び対応値のリスト(所有権リスト、liste pro
priete)であり、このリストは複数の関数“wi
th”で再使用できる。関数“with−eval”は
式を評価し、次いでこの式をコンテキストとして使用す
る。SMLインタプリタの構造に鑑みて、“with”
は作業値及び関数についても機能する。
l”:これらの関数は局所変数を通知する。これらは、
ある指示群に固有の変数を通知し初期化するために使用
される構成体である。作業値及び関数は、“with”
の実行後に初期値をゼロにリセットすることにより所望
される通りに操作される。値は逐次評価される。アーギ
ュメント“context(コンテキスト)”は変数及
び対応値のリスト(所有権リスト、liste pro
priete)であり、このリストは複数の関数“wi
th”で再使用できる。関数“with−eval”は
式を評価し、次いでこの式をコンテキストとして使用す
る。SMLインタプリタの構造に鑑みて、“with”
は作業値及び関数についても機能する。
【0103】以下に主要入出力関数を列挙する。
【0104】“close”:この関数はデータフロー
(flux)中のオブジェクトの処理を終了させる。後
述の指示“open”の逆の指示である。
(flux)中のオブジェクトの処理を終了させる。後
述の指示“open”の逆の指示である。
【0105】“load”:この関数は、変数によって
特定された探索ルート(chemin de rech
erche)を用いて、“filename”により特
定されたSMLファイルをローディングし且つ実行する
ことを可能にする。特定ルートの各ディレクトリ内のフ
ァイル“filename sml”を探索するために
第1の試行が実施される。ファイルがみつからない場合
には、次いでファイル“filename”の探索が行
われる。ファイル名が文字“/”を含んでいる場合、そ
のファイル名は絶対ルート名とみなされ、探索ルートは
使用されない。ファイルの読取り時に何等かのエラーが
発生した場合にはエラーメッセージが送出され、ファイ
ルの次の読取りが停止される。ファイルがみつかれば、
この関数はそのファイルの名称をストリングの形態で戻
す。ファイルがみつからず且つキーワード“if−do
es−not−exist”が指定されれば、エラーが
通知されるか又は関数“nil”が戻される。ファイル
がみつからず且つキーワード“if−does−not
−exist”が指定されなければ、エラーが通知され
る。
特定された探索ルート(chemin de rech
erche)を用いて、“filename”により特
定されたSMLファイルをローディングし且つ実行する
ことを可能にする。特定ルートの各ディレクトリ内のフ
ァイル“filename sml”を探索するために
第1の試行が実施される。ファイルがみつからない場合
には、次いでファイル“filename”の探索が行
われる。ファイル名が文字“/”を含んでいる場合、そ
のファイル名は絶対ルート名とみなされ、探索ルートは
使用されない。ファイルの読取り時に何等かのエラーが
発生した場合にはエラーメッセージが送出され、ファイ
ルの次の読取りが停止される。ファイルがみつかれば、
この関数はそのファイルの名称をストリングの形態で戻
す。ファイルがみつからず且つキーワード“if−do
es−not−exist”が指定されれば、エラーが
通知されるか又は関数“nil”が戻される。ファイル
がみつからず且つキーワード“if−does−not
−exist”が指定されなければ、エラーが通知され
る。
【0106】“open”:この関数はデータフロー中
のオブジェクトの処理をオープンさせる。この関数は、
ファイル“filename”をオープンしてオブジェ
クトフローを形成し、“flux”タイプのオブジェク
トを戻す。キーワード及び対応する値は形成すべきフロ
ーのタイプを決定し、入力、出力又はこれら2つの動作
の選択はキーワード“direction”によって指
定される。このdirectionは下記のうちの1つ
である。
のオブジェクトの処理をオープンさせる。この関数は、
ファイル“filename”をオープンしてオブジェ
クトフローを形成し、“flux”タイプのオブジェク
トを戻す。キーワード及び対応する値は形成すべきフロ
ーのタイプを決定し、入力、出力又はこれら2つの動作
の選択はキーワード“direction”によって指
定される。このdirectionは下記のうちの1つ
である。
【0107】:input:入力フロー(デフォル
ト)、 :output:出力フロー、 :io:双方向フロー。
ト)、 :output:出力フロー、 :io:双方向フロー。
【0108】キーワード:“if−exist”は、フ
ァイルが存在し且つ“:output”又は“:io”
でオープンされる場合には保持すべきアクションを指定
する。キー値は下記のうちの1つである。
ァイルが存在し且つ“:output”又は“:io”
でオープンされる場合には保持すべきアクションを指定
する。キー値は下記のうちの1つである。
【0109】:append:出発位置はファイルの末
尾である(デフォルト)。
尾である(デフォルト)。
【0110】:overwrite:出発位置はファイ
ルの頭部であり、現行ファイルの内容は、それが存在す
る場合には、重ね書きされない。
ルの頭部であり、現行ファイルの内容は、それが存在す
る場合には、重ね書きされない。
【0111】:supersede:出発位置はファイ
ルの頭部であり、現行ファイルの内容は置換される。
ルの頭部であり、現行ファイルの内容は置換される。
【0112】キーワード“:type”はファイルのタ
イプを特定する。キー値は下記のうちの1つである。
イプを特定する。キー値は下記のうちの1つである。
【0113】:file:形成されるフローはファイル
UNIX(デフォルト)である。
UNIX(デフォルト)である。
【0114】:string:形成されるフローは内部
ストリングである。“read”又は“print”
(後で説明する)のような入出力関数は、ストリング処
理司令と同様に適用され得る。
ストリングである。“read”又は“print”
(後で説明する)のような入出力関数は、ストリング処
理司令と同様に適用され得る。
【0115】キーワード“:buffered”は、バ
ッファレジスタが出力操作毎に空にならなければならな
いか又は空になってはならないかを特定する。キー値は
下記のうちの1つである。
ッファレジスタが出力操作毎に空にならなければならな
いか又は空になってはならないかを特定する。キー値は
下記のうちの1つである。
【0116】nil:空になってはならない、 t:空にならなければならない(デフォルト)。
【0117】“prin1”:この関数はSMLオブジ
ェクトをプリントする。各オブジェクトは自然の形態、
即ち行間にスペースも分割もない形態で指定(特定)さ
れる。この関数は評価された最終オブジェクトを戻す。
出力は、関数“open”でキーワード“:buffe
red”の値に応じて呼び出しの最後に「空にされる
(videe)」。
ェクトをプリントする。各オブジェクトは自然の形態、
即ち行間にスペースも分割もない形態で指定(特定)さ
れる。この関数は評価された最終オブジェクトを戻す。
出力は、関数“open”でキーワード“:buffe
red”の値に応じて呼び出しの最後に「空にされる
(videe)」。
【0118】“print”:この関数は新しい行の印
刷を可能にし、次いで各SMLオブジェクトのプリント
を可能にする。各オブジェクトは行間にスペースも分割
も伴わずに印刷される。この関数は評価された最終オブ
ジェクトを戻す。出力はやはり、関数“open”でキ
ーワード“buffered”に応じて発呼の最後に
「空にされる」。
刷を可能にし、次いで各SMLオブジェクトのプリント
を可能にする。各オブジェクトは行間にスペースも分割
も伴わずに印刷される。この関数は評価された最終オブ
ジェクトを戻す。出力はやはり、関数“open”でキ
ーワード“buffered”に応じて発呼の最後に
「空にされる」。
【0119】“*print−readably*”:
この関数は印刷の表示を制御する。この関数*prin
t−readably*は変数である。その値が“ni
l”(デフォルト)であれば、総ての出力を読み取るこ
とができる。即ち、読みやすさを改善するために特定文
字が翻訳される。その値が“true”であれば、総て
の出力が特定文字を含んでいるかのように印刷される。
但し、エスケープシーケンスは例外であって、常に*p
rint−readably*値を考慮せずに翻訳され
る。
この関数は印刷の表示を制御する。この関数*prin
t−readably*は変数である。その値が“ni
l”(デフォルト)であれば、総ての出力を読み取るこ
とができる。即ち、読みやすさを改善するために特定文
字が翻訳される。その値が“true”であれば、総て
の出力が特定文字を含んでいるかのように印刷される。
但し、エスケープシーケンスは例外であって、常に*p
rint−readably*値を考慮せずに翻訳され
る。
【0120】*print−level*:この関数は
リストの深さの印刷を制御する。この関数は印刷すべき
リストの最大深さを制御する変数である。
リストの深さの印刷を制御する。この関数は印刷すべき
リストの最大深さを制御する変数である。
【0121】“provide”及び“requir
e”:これらの関数は、ファィルのローディングを管理
する。これらの関数は、SMLファィルを2回目のロー
ディングが回避されるようにローディングするか否かを
決定するのを補助する。共通引き数“file”は印刷
名を使用してファィルを決定する記号でなければならな
い。記号“file”は次いでいずれか一方の関数によ
り値“nil”に固定される。関数“require”
はファィルが存在するかどうか、従ってSMLでロード
されているか否かを探索する。ファィルが存在しない場
合には、ファィルがロードされるか又は何も行われな
い。ファィルが既にロードされているという確認は、関
数“provide”によって与えられる。関数“pr
ovide”はファィルがロードされたことを確認す
る。この関数は通常、ロードされたファィル内に呼び出
される。
e”:これらの関数は、ファィルのローディングを管理
する。これらの関数は、SMLファィルを2回目のロー
ディングが回避されるようにローディングするか否かを
決定するのを補助する。共通引き数“file”は印刷
名を使用してファィルを決定する記号でなければならな
い。記号“file”は次いでいずれか一方の関数によ
り値“nil”に固定される。関数“require”
はファィルが存在するかどうか、従ってSMLでロード
されているか否かを探索する。ファィルが存在しない場
合には、ファィルがロードされるか又は何も行われな
い。ファィルが既にロードされているという確認は、関
数“provide”によって与えられる。関数“pr
ovide”はファィルがロードされたことを確認す
る。この関数は通常、ロードされたファィル内に呼び出
される。
【0122】“read”:この関数はストリングの読
取り及び翻訳を可能にする。この関数は、入力フローが
指定されていればその入力フローで、さもなければ「標
準的入力」で次の式を読取り、この式を解析し、戻す。
この関数はファイルの最後にタグ“fin de fi
chier”に向けて“throw”を実行する。
取り及び翻訳を可能にする。この関数は、入力フローが
指定されていればその入力フローで、さもなければ「標
準的入力」で次の式を読取り、この式を解析し、戻す。
この関数はファイルの最後にタグ“fin de fi
chier”に向けて“throw”を実行する。
【0123】“read−char”:この関数は、入
力フローが指定されていればその入力ファイルで、ある
いは「標準的入力」で文字を読取り、これを戻す。この
関数は、バイトがこのようにして読取られる二進ファイ
ルに有用である。
力フローが指定されていればその入力ファイルで、ある
いは「標準的入力」で文字を読取り、これを戻す。この
関数は、バイトがこのようにして読取られる二進ファイ
ルに有用である。
【0124】“read−line”:この関数は、入
力フローが指定されていればこの入力フローで、さもな
ければ「標準的入力」で文字ストリングを読取り、最後
に新しい行を考慮しないで前記文字ストリングを戻す。
この関数はファイルの最後にタグ“fin de fi
chier”に向けて“throw”を実行する。
力フローが指定されていればこの入力フローで、さもな
ければ「標準的入力」で文字ストリングを読取り、最後
に新しい行を考慮しないで前記文字ストリングを戻す。
この関数はファイルの最後にタグ“fin de fi
chier”に向けて“throw”を実行する。
【0125】“*standard−error*又は
*standard−input*又は*standa
rd−output”:これらの関数は標準的フローに
使用される。これらの関数は広域変数に対応し、さもな
ければ省略時解釈で対応値に固定される。変数が値“n
il”に固定されれば、この変数は自己のデフォルト値
(省略解釈時の値)にリセットされる。
*standard−input*又は*standa
rd−output”:これらの関数は標準的フローに
使用される。これらの関数は広域変数に対応し、さもな
ければ省略時解釈で対応値に固定される。変数が値“n
il”に固定されれば、この変数は自己のデフォルト値
(省略解釈時の値)にリセットされる。
【0126】“write−char”:この関数は、
出力フローが指定されていればその出力フローで、さも
なければ「標準的出力」で文字を書込み、この文字を戻
す。この関数は、バイトがこのようにして書込まれる二
進ファイルの形成に有用である。
出力フローが指定されていればその出力フローで、さも
なければ「標準的出力」で文字を書込み、この文字を戻
す。この関数は、バイトがこのようにして書込まれる二
進ファイルの形成に有用である。
【0127】“write−line”:この関数は出
力フローが指定されていればその出力フローで、さもな
ければ「標準的出力」で文字ストリングを書込み、この
ストリングを戻す。
力フローが指定されていればその出力フローで、さもな
ければ「標準的出力」で文字ストリングを書込み、この
ストリングを戻す。
【0128】以下は主要記号の定義である。
【0129】“defconstant”:この関数は
変数を通知し、関数“setq”又は“let”で参照
できない所与の値に固定する。
変数を通知し、関数“setq”又は“let”で参照
できない所与の値に固定する。
【0130】“defvar”:この機能は指定変数が
広域変数であることを通知する。広域変数は構成体“l
et”によって動的に読み取ることができる。
広域変数であることを通知する。広域変数は構成体“l
et”によって動的に読み取ることができる。
【0131】“documentation”:文書を
固定又は探索する。“string”が指定されていな
ければ、この関数は指定記号用の文書を探索する。文書
が存在していなければ、値“nil”が戻される。“s
tring”が指定されていれば、これは“symbo
l”に対応し、記号が決定されなければエラーが発生す
る。“documentation”は関数“defv
ar”、“defconstant”、“defun”
及び“defmacro”によって決定され得る。
固定又は探索する。“string”が指定されていな
ければ、この関数は指定記号用の文書を探索する。文書
が存在していなければ、値“nil”が戻される。“s
tring”が指定されていれば、これは“symbo
l”に対応し、記号が決定されなければエラーが発生す
る。“documentation”は関数“defv
ar”、“defconstant”、“defun”
及び“defmacro”によって決定され得る。
【0132】“gensym”:この関数は新しい記号
を形成し、戻す。その名称は文字Gとこれに続く数字と
で構成され、前記数字は関数の呼び出し毎に増加する。
“intern”:この関数は“string”という
名称の(ストリング)記号を形成し、戻す。
を形成し、戻す。その名称は文字Gとこれに続く数字と
で構成され、前記数字は関数の呼び出し毎に増加する。
“intern”:この関数は“string”という
名称の(ストリング)記号を形成し、戻す。
【0133】同じ名称の記号がみつかると、その記号は
戻される。この関数は、“’”のような特別の文字又は
ブランク(スペース)を含む「アトム」を形成する場合
に有用である。
戻される。この関数は、“’”のような特別の文字又は
ブランク(スペース)を含む「アトム」を形成する場合
に有用である。
【0134】“makunbound”:この関数は、
関数“boundp”(後で説明する)が該関数に適用
された場合には値“nil”が戻されるように記号を不
確定にする。
関数“boundp”(後で説明する)が該関数に適用
された場合には値“nil”が戻されるように記号を不
確定にする。
【0135】以下は主要属性の定義である。
【0136】“/=”:これは、オブジェクト1がオブ
ジェクト2と異なる場合には値“true”を戻し、そ
うでなければ値“nil”を戻す不等テストである。
ジェクト2と異なる場合には値“true”を戻し、そ
うでなければ値“nil”を戻す不等テストである。
【0137】“<”:これは、2つの数又は2つのスト
リングを比較し、第1の引数が第2の引数と同じかそれ
より小さい場合には値“t”を戻し、そうでない場合に
は値“nil”を戻す厳密下位テスト(test de
stricte inferiorite)である。
ストリングはアルファベット順に比較される。
リングを比較し、第1の引数が第2の引数と同じかそれ
より小さい場合には値“t”を戻し、そうでない場合に
は値“nil”を戻す厳密下位テスト(test de
stricte inferiorite)である。
ストリングはアルファベット順に比較される。
【0138】“<=”:2つの数又は2つのストリング
を比較し、第1の引数が第2の引数と同じかそれより小
さい場合には値“t”を戻し、そうでない場合には値
“nil”を戻す下位テストである。ストリングはやは
りアルファベット順に比較される。
を比較し、第1の引数が第2の引数と同じかそれより小
さい場合には値“t”を戻し、そうでない場合には値
“nil”を戻す下位テストである。ストリングはやは
りアルファベット順に比較される。
【0139】“>”:2つの数又は2つのストリングを
比較し、第1の引数が第2の引数と同じかそれより大き
い場合には値“t”を戻し、そうでない場合には値“n
il”を戻す厳密上位テスト(test de str
icte superiorite)である。ストリン
グはアルファベット順に比較される。
比較し、第1の引数が第2の引数と同じかそれより大き
い場合には値“t”を戻し、そうでない場合には値“n
il”を戻す厳密上位テスト(test de str
icte superiorite)である。ストリン
グはアルファベット順に比較される。
【0140】“>=”:2つの数又は2つのストリング
を比較し、第1の引数が第2の引数と同じかそれより大
きい場合には値“t”を戻し、そうでない場合には値
“nil”を戻す上位テストである。ストリングはアル
ファベット順に比較される。
を比較し、第1の引数が第2の引数と同じかそれより大
きい場合には値“t”を戻し、そうでない場合には値
“nil”を戻す上位テストである。ストリングはアル
ファベット順に比較される。
【0141】“and”:これは式の間の“et lo
gique”であり、各「forme」を左から右へと
評価する。formeが値“nil”で評価されれば、
この関数は値“nil”を戻し、さもなければ値“t”
を戻す。引数が指定されなければ、この関数は値“t”
を戻す。
gique”であり、各「forme」を左から右へと
評価する。formeが値“nil”で評価されれば、
この関数は値“nil”を戻し、さもなければ値“t”
を戻す。引数が指定されなければ、この関数は値“t”
を戻す。
【0142】“boundp”:この関数は、アトムが
既に決定されているかどうかをテストする。この関数
は、評価記号が決定されればこれを戻し、さもなければ
値“nil”を戻す。この関数は、変数“symbol
e”が値を有していれば確認される。
既に決定されているかどうかをテストする。この関数
は、評価記号が決定されればこれを戻し、さもなければ
値“nil”を戻す。この関数は、変数“symbol
e”が値を有していれば確認される。
【0143】“compare”:この関数は2つの数
又は2つのストリングの間の比較を課し、下記の値のう
ちの1つを戻す。
又は2つのストリングの間の比較を課し、下記の値のう
ちの1つを戻す。
【0144】・ 第1の引数が第2の引数より大きい場
合には厳密に正の数。
合には厳密に正の数。
【0145】・ 第1の引数と第2の引数が同等の場合
にはゼロ。
にはゼロ。
【0146】・ 第1の引数が第2の引数より小さい場
合には厳密に負の数。
合には厳密に負の数。
【0147】“eq”:2つのオブジェクトの間の厳密
等価性テスト。これは、2つのオブジェクトがメモリの
同一場所に位置している場合にのみ確認される。
等価性テスト。これは、2つのオブジェクトがメモリの
同一場所に位置している場合にのみ確認される。
【0148】“equal”又は“=”:2つのオブジ
ェクトの間の等価性テスト。このテストは、オブジェク
ト1がオブジェクト2と同じ値を有する場合にはオブジ
ェクト1の値を戻し、そうでなければ値“nil”を戻
す。リストの等価性はこれらリストの各エレメントの等
価性を調べることによって確認される。
ェクトの間の等価性テスト。このテストは、オブジェク
ト1がオブジェクト2と同じ値を有する場合にはオブジ
ェクト1の値を戻し、そうでなければ値“nil”を戻
す。リストの等価性はこれらリストの各エレメントの等
価性を調べることによって確認される。
【0149】“()”又は“nil”:これは、オブジ
ェクトが“nil”でなければ“vrai”である一般
的な言語Lispの値“nil”である。
ェクトが“nil”でなければ“vrai”である一般
的な言語Lispの値“nil”である。
【0150】“not”:これは“non logiq
ue”である。オブジェクトが値“nil”を有してい
れば値“t”が戻され、そうでなければ値“nil”が
戻される。
ue”である。オブジェクトが値“nil”を有してい
れば値“t”が戻され、そうでなければ値“nil”が
戻される。
【0151】“or”:これは式の間の“ou log
ique”である。これは、各フォーマット(form
e)を右から左へと評価する。フォーマットが値“no
n nil”で評価されれば、その評価が戻される。総
てのフォーマットが値“nil”で評価されれば、最終
評価が送り返される。
ique”である。これは、各フォーマット(form
e)を右から左へと評価する。フォーマットが値“no
n nil”で評価されれば、その評価が戻される。総
てのフォーマットが値“nil”で評価されれば、最終
評価が送り返される。
【0152】“t”:これは真の論理値である。
【0153】“typep”:これは属性“type
des donnees(データの型)”である。この
関数は、オブジェクトがこのタイプであれば“typ
e”を戻し、そうでなければ値“nil”を戻す。
des donnees(データの型)”である。この
関数は、オブジェクトがこのタイプであれば“typ
e”を戻し、そうでなければ値“nil”を戻す。
【0154】以下はリスト関数の定義である。
【0155】“append”:この関数は、引き数の
連結によって新しいリスト又は新しいストリングを構成
し、戻すことを可能にする。
連結によって新しいリスト又は新しいストリングを構成
し、戻すことを可能にする。
【0156】“copy”:この関数はSMLオブジェ
クトをコピーし、リストでなければならないオブジェク
トのコピーを戻す。
クトをコピーし、リストでなければならないオブジェク
トのコピーを戻す。
【0157】“length”:この関数はリストのエ
レメント数又はストリングの文字数を戻す。
レメント数又はストリングの文字数を戻す。
【0158】“list”:この関数は評価された引き
数のリストを構成し、戻す。
数のリストを構成し、戻す。
【0159】“list−get”又は“list−p
ut”又は“list−put!”:これらの関数は、
リスト中の値を得るか又は固定することを可能にする。
“list−get”はリスト中の値を戻す。“lis
t−put!”はリストを変更してこれを戻し、“li
st−put”は更新された新しいリストを戻す。値は
数(位置)又は属性(記号)によって特定し得る。属性
が使用される場合には、リストは所有権リストとみなさ
れ、該リストの言及されたエレメントは該リスト中の記
号のすぐ後のエレメントである。位置が使用される場
合、その位置はゼロを出発点とするリストのエレメント
の位置に関する。「位置」がリストの最終メンバの位置
より上にある場合には、“list−get”が、デフ
ォルト値が指定されていればそのデフォルト値を戻し、
そうでなければ値“nil”を戻し、“list−pu
t”及び“list−put!”が、必要であれば非指
定位置を値”nil”で埋めながら、リストの新しいメ
ンバを正しい位置に挿入する。「属性」が既存の属性に
対応しない場合には、“list−put”が、デフォ
ルト値が指定されていればそのデフォルト値を戻し、そ
でなければ値“nil”を戻す。
ut”又は“list−put!”:これらの関数は、
リスト中の値を得るか又は固定することを可能にする。
“list−get”はリスト中の値を戻す。“lis
t−put!”はリストを変更してこれを戻し、“li
st−put”は更新された新しいリストを戻す。値は
数(位置)又は属性(記号)によって特定し得る。属性
が使用される場合には、リストは所有権リストとみなさ
れ、該リストの言及されたエレメントは該リスト中の記
号のすぐ後のエレメントである。位置が使用される場
合、その位置はゼロを出発点とするリストのエレメント
の位置に関する。「位置」がリストの最終メンバの位置
より上にある場合には、“list−get”が、デフ
ォルト値が指定されていればそのデフォルト値を戻し、
そうでなければ値“nil”を戻し、“list−pu
t”及び“list−put!”が、必要であれば非指
定位置を値”nil”で埋めながら、リストの新しいメ
ンバを正しい位置に挿入する。「属性」が既存の属性に
対応しない場合には、“list−put”が、デフォ
ルト値が指定されていればそのデフォルト値を戻し、そ
でなければ値“nil”を戻す。
【0160】“list−remove”又は“lis
t−remove!”:これらの関数はリストから1つ
又は複数のエレメントを削除させる。“list−re
move!”はリストを変更してこれを戻し、“lis
t−remove”は更新された新しいリストを戻す。
「属性」が使用される場合にはリストは所有権リストと
みなされる。その場合は、属性エレメントと、リスト中
で該エレメントに続くエレメントとが削除される。「位
置」が使用される場合、その位置はゼロを出発点とする
リスト中のエレメントの位置にかかわる。「属性」が既
存の属性と対をなさない場合、又は位置がリスト中の最
終メンバの位置より上にある場合には、リストは変更さ
れない。
t−remove!”:これらの関数はリストから1つ
又は複数のエレメントを削除させる。“list−re
move!”はリストを変更してこれを戻し、“lis
t−remove”は更新された新しいリストを戻す。
「属性」が使用される場合にはリストは所有権リストと
みなされる。その場合は、属性エレメントと、リスト中
で該エレメントに続くエレメントとが削除される。「位
置」が使用される場合、その位置はゼロを出発点とする
リスト中のエレメントの位置にかかわる。「属性」が既
存の属性と対をなさない場合、又は位置がリスト中の最
終メンバの位置より上にある場合には、リストは変更さ
れない。
【0161】“make−list”:この関数はエレ
メントの大きさを含むリストを形成し、戻す。このリス
トでは各エレメントが、“form”という属性が存在
する場合にはその“form”によって初期化され、そ
うでなければ“nil”によって初期化される。
メントの大きさを含むリストを形成し、戻す。このリス
トでは各エレメントが、“form”という属性が存在
する場合にはその“form”によって初期化され、そ
うでなければ“nil”によって初期化される。
【0162】“map”:この関数は指定された1つ以
上のリストのエレメントに関数を適用し、構成されるも
のを決定する“type de resultat(結
果の型)”の値に従ってリスト又はストリングを戻す。
適用される関数は、供給されるリストの引数の数Nと同
じ数の引数をとらなければならない。N個のリストは同
じ長さLを有していなければならない。関数“map”
は、リストが指定されていれば、該関数の呼び出しの結
果とリストのL個のエレメントとをエレメントとして含
む長さLのリスト又はストリングを戻し、あるいは複数
のリストについて各リストの最初のエレメントが指定さ
れていれば、各リストの第2のエレメントを戻し、これ
をL個のエレメントに至るまで行う。
上のリストのエレメントに関数を適用し、構成されるも
のを決定する“type de resultat(結
果の型)”の値に従ってリスト又はストリングを戻す。
適用される関数は、供給されるリストの引数の数Nと同
じ数の引数をとらなければならない。N個のリストは同
じ長さLを有していなければならない。関数“map”
は、リストが指定されていれば、該関数の呼び出しの結
果とリストのL個のエレメントとをエレメントとして含
む長さLのリスト又はストリングを戻し、あるいは複数
のリストについて各リストの最初のエレメントが指定さ
れていれば、各リストの第2のエレメントを戻し、これ
をL個のエレメントに至るまで行う。
【0163】“maphash”:この機能は2つの引
数、所有権リスト中の各キー及び対応する値を有する関
数を適用する。この関数は常に値“nil”を戻す。こ
の関数は表に使用することもできる。
数、所有権リスト中の各キー及び対応する値を有する関
数を適用する。この関数は常に値“nil”を戻す。こ
の関数は表に使用することもできる。
【0164】“nconc”:この関数はリスト1と各
リストとの連結を行う。この関数は、リスト又はストリ
ングのシーケンスを物理的に修正し、リスト1を戻す。
“position”:第1の形態ではリストが属性
“equal”で解析される。エレメント“item”
が存在する場合には、この関数は、ゼロを出発点とする
リスト中の前記エレメントの記号を戻し、そうでなけれ
ば値“nil”を戻す。第2の形態では、エレメント
“substring”の存在がストリング内で探索さ
れる。このエレメントが存在していれば、この関数はそ
れが始まる位置である文字の位置を戻し、そうでなけれ
ば値“nil”を戻す。
リストとの連結を行う。この関数は、リスト又はストリ
ングのシーケンスを物理的に修正し、リスト1を戻す。
“position”:第1の形態ではリストが属性
“equal”で解析される。エレメント“item”
が存在する場合には、この関数は、ゼロを出発点とする
リスト中の前記エレメントの記号を戻し、そうでなけれ
ば値“nil”を戻す。第2の形態では、エレメント
“substring”の存在がストリング内で探索さ
れる。このエレメントが存在していれば、この関数はそ
れが始まる位置である文字の位置を戻し、そうでなけれ
ば値“nil”を戻す。
【0165】“reverse”:この関数は同じエレ
メントを逆の順番で含む新しいリストを戻す。
メントを逆の順番で含む新しいリストを戻す。
【0166】“sort”:この関数は、関数“com
parison”を用いてリストを漸増する順序で分類
する。
parison”を用いてリストを漸増する順序で分類
する。
【0167】関数“comparison”は比較すべ
き2つのエレメントをもって呼び出され、整数を戻さな
ければならない。その値は、第1の引き数が第2の引き
数より小さいか、同じか又は大きいかによって、負、ゼ
ロ又は正となる。
き2つのエレメントをもって呼び出され、整数を戻さな
ければならない。その値は、第1の引き数が第2の引き
数より小さいか、同じか又は大きいかによって、負、ゼ
ロ又は正となる。
【0168】“subseq”:この関数は、出発位置
(“start”)のエレメントから最終位置(“en
d”)のエレメントまでのサブリストを戻す。“sta
rt”及び“end”はゼロからの数である。指標付き
エレメント(elements indexes)の数
がリストの表を上回っていれば、戻されるサブリストは
値“nil”に固定される。この関数はストリングでも
使用できる。
(“start”)のエレメントから最終位置(“en
d”)のエレメントまでのサブリストを戻す。“sta
rt”及び“end”はゼロからの数である。指標付き
エレメント(elements indexes)の数
がリストの表を上回っていれば、戻されるサブリストは
値“nil”に固定される。この関数はストリングでも
使用できる。
【0169】以下はストリング関数及び表関数の定義で
ある。
ある。
【0170】ストリングは文字リストと同様に処理され
るため、“append”、“length”、“ma
p”、“max”、“nconc”、“positio
n”、“subseq”のようなリスト関数はストリン
グでも使用できる。
るため、“append”、“length”、“ma
p”、“max”、“nconc”、“positio
n”、“subseq”のようなリスト関数はストリン
グでも使用できる。
【0171】“match”:この関数はSMLストリ
ングから副ストリング(サブストリング)を対にして抽
出することを可能にする。
ングから副ストリング(サブストリング)を対にして抽
出することを可能にする。
【0172】“string−downcase”又は
“string−upcase”:これらの関数は転換
後にストリングのコピーを戻す。
“string−upcase”:これらの関数は転換
後にストリングのコピーを戻す。
【0173】また、“list−get”、“list
−put”、“list−put!”、“list−r
emove!”、“maphash”のような幾つかの
リスト関数は表を処理するために使用できる。表のオブ
ジェクトは、所有権リストに適用される関数“coer
ce”を用いて形成される。
−put”、“list−put!”、“list−r
emove!”、“maphash”のような幾つかの
リスト関数は表を処理するために使用できる。表のオブ
ジェクトは、所有権リストに適用される関数“coer
ce”を用いて形成される。
【0174】以下はマクロ定義の説明である。
【0175】“backquote”又は“’”:この
関数は、指定されたリストをコピー形成のためのゲージ
として用いて前記指定リストのコピーを形成する。
関数は、指定されたリストをコピー形成のためのゲージ
として用いて前記指定リストのコピーを形成する。
【0176】“defun”:SML関数の決定を可能
にする。リスト“lambda”及び“forme”中
の宣言されたパラメータを用いて関数の名称を決定する
新しい関数を形成するのが一般的な方法である。
にする。リスト“lambda”及び“forme”中
の宣言されたパラメータを用いて関数の名称を決定する
新しい関数を形成するのが一般的な方法である。
【0177】“defmacro”:この関数はSML
マクロを決定する。これは、リスト”lambda”及
び“forme”中のパラメータを用いてマクロの名称
を決定する新しいマクロを形成するための一般的な使用
である。
マクロを決定する。これは、リスト”lambda”及
び“forme”中のパラメータを用いてマクロの名称
を決定する新しいマクロを形成するための一般的な使用
である。
【0178】“lambda”:この関数は、式“la
mbda”を用いて無名関数を決定するための基本形態
である式“lambda”を決定する。式“lambd
a”はラムダ記号とラムダリストとラムダ式のボディと
で構成されている。ラムダリストはパラメータを特定す
る。ある関数が呼び出されると、この関数の引数は対応
するラムダリストのパラメータと対にされる。必要なパ
ラメータが指定されていれば、ラムダ式が適用された時
に対応する引数が存在していなければならない。リスト
“lambda”は記号&から始まる下記のようなキー
ワードを使用し得る。
mbda”を用いて無名関数を決定するための基本形態
である式“lambda”を決定する。式“lambd
a”はラムダ記号とラムダリストとラムダ式のボディと
で構成されている。ラムダリストはパラメータを特定す
る。ある関数が呼び出されると、この関数の引数は対応
するラムダリストのパラメータと対にされる。必要なパ
ラメータが指定されていれば、ラムダ式が適用された時
に対応する引数が存在していなければならない。リスト
“lambda”は記号&から始まる下記のようなキー
ワードを使用し得る。
【0179】&optional:オプショナルパラメ
ータ;これらの引き数は、使用されない場合には、初期
値が存在すればその初期値に連結され、そうでなければ
値“nil”に連結される。
ータ;これらの引き数は、使用されない場合には、初期
値が存在すればその初期値に連結され、そうでなければ
値“nil”に連結される。
【0180】&rest:休止パラメータ;必要パラメ
ータ及びオプショナルパラメータの総てが連結されてい
れば、後続の引数の総てがリスト中で形成され、休止パ
ラメータに連結される。
ータ及びオプショナルパラメータの総てが連結されてい
れば、後続の引数の総てがリスト中で形成され、休止パ
ラメータに連結される。
【0181】&key:キーワードパラメータ;これ
は、呼び出されたキーワードとその値とからなる対で構
成された引数である。
は、呼び出されたキーワードとその値とからなる対で構
成された引数である。
【0182】&aux:これは、実際にはパラメータで
はない局所変数である。これは、関数“let”と同等
である。
はない局所変数である。これは、関数“let”と同等
である。
【0183】“lambdamacro”:この関数
は、無名マクロを決定するための基本形態であるマクロ
ラムダ式を決定する。必要パラメータが指定されていれ
ば、ラムダ式が適用された時に対応する引き数が存在し
ていなければならない。リスト“lambdamacr
o”は、記号&から始まり且つリスト“lambda”
のキーワード&optional、&rest、&ke
y及び&auxと同様に定義されるキーワードを使用し
得る。
は、無名マクロを決定するための基本形態であるマクロ
ラムダ式を決定する。必要パラメータが指定されていれ
ば、ラムダ式が適用された時に対応する引き数が存在し
ていなければならない。リスト“lambdamacr
o”は、記号&から始まり且つリスト“lambda”
のキーワード&optional、&rest、&ke
y及び&auxと同様に定義されるキーワードを使用し
得る。
【0184】以下は幾つかのデジタル演算子及び他の演
算子の定義である。
算子の定義である。
【0185】“+”:数値加算演算子。これはリスト又
はストリング用の連結演算子としても使用できる。結果
の型は第1の引き数の型、即ちリストの場合は()、連
結の場合は“”、数の場合はゼロに基づいて決定され
る。
はストリング用の連結演算子としても使用できる。結果
の型は第1の引き数の型、即ちリストの場合は()、連
結の場合は“”、数の場合はゼロに基づいて決定され
る。
【0186】“*”及び“/”:それぞれ引き数のモジ
ュロ(modulo)、積及び商を戻す算術演算子。
ュロ(modulo)、積及び商を戻す算術演算子。
【0187】“−”:算術差分演算子。
【0188】“logand”、“logor”、“l
ognot”、“logxor”:それぞれ演算“et
logique(論理AND)”、“ou logi
que(論理OR)”、“non logique(論
理NOT)”及び“ouexclusif logiq
ue(排他的論理OR)”に対応する演算子。“ma
x”及び“min”:数値又はストリングのリストの最
大値又は最小値をそれぞれ戻す演算子。
ognot”、“logxor”:それぞれ演算“et
logique(論理AND)”、“ou logi
que(論理OR)”、“non logique(論
理NOT)”及び“ouexclusif logiq
ue(排他的論理OR)”に対応する演算子。“ma
x”及び“min”:数値又はストリングのリストの最
大値又は最小値をそれぞれ戻す演算子。
【0189】“random”:乱数(nombre
aleatoire)を発生する演算子。
aleatoire)を発生する演算子。
【0190】“coerce”:型を特定し、オブジェ
クトの型を「結果の型」によって指定された型に変換す
る機能を果たす。
クトの型を「結果の型」によって指定された型に変換す
る機能を果たす。
【0191】“type−of”:オブジェクトの内部
SML型を戻す。
SML型を戻す。
【0192】“!”又は“!!”:インタプリタコマン
ドを実行する。“!”は所与の引き数を有するストリン
グとして所与のコマンドを実行し、操作の終了を待たな
い。“!!”は入出力コマンドに関連した入出力フロー
を戻す。このコマンドはフローが切断されれば消滅す
る。
ドを実行する。“!”は所与の引き数を有するストリン
グとして所与のコマンドを実行し、操作の終了を待たな
い。“!!”は入出力コマンドに関連した入出力フロー
を戻す。このコマンドはフローが切断されれば消滅す
る。
【0193】“applicaton−class
*”:これは、実行中のアプリケーションのクラスを示
すストリング定数である。SMLアプリケーション場合
はこの値が“SML”である。
*”:これは、実行中のアプリケーションのクラスを示
すストリング定数である。SMLアプリケーション場合
はこの値が“SML”である。
【0194】“*applicaton−name
*”:これは、実行中のアプリケーションの名称を示す
ストリング定数である。
*”:これは、実行中のアプリケーションの名称を示す
ストリング定数である。
【0195】“command−line−arg”:
この関数は起動時にSMLインタプリタによって転送さ
れた引数を表すストリングリストを戻す。
この関数は起動時にSMLインタプリタによって転送さ
れた引数を表すストリングリストを戻す。
【0196】“get−internal−run−t
ime”:この関数は、ミリ秒単位の実行時間の値を戻
すことを可能にする。戻される値は、引数が供給されて
いなければ通過時間に対応し、そうでなければ下記のキ
ーワードの1つに依存する。
ime”:この関数は、ミリ秒単位の実行時間の値を戻
すことを可能にする。戻される値は、引数が供給されて
いなければ通過時間に対応し、そうでなければ下記のキ
ーワードの1つに依存する。
【0197】:real:SMLアプリケーションの開
始からの通過時間(デフォルト)、 :user:SML指示の実行の間に使用される時間C
PU、 :system:SMLのカウントのためにシステムに
よって使用される時間CPU。
始からの通過時間(デフォルト)、 :user:SML指示の実行の間に使用される時間C
PU、 :system:SMLのカウントのためにシステムに
よって使用される時間CPU。
【0198】“getnev”:ストリングの変数名が
インタプリタの出力変数の名称であれば、この関数は前
記値をストリングとして戻し、そうでなければ値“ni
l”を戻す。
インタプリタの出力変数の名称であれば、この関数は前
記値をストリングとして戻し、そうでなければ値“ni
l”を戻す。
【0199】“setnev”:この関数はインタプリ
タの変数の名称をある値に固定する。これら2つの引き
数はストリングでなければならない。
タの変数の名称をある値に固定する。これら2つの引き
数はストリングでなければならない。
【0200】また、SMLでは式の評価を分別すること
もできる。その場合は、特定時間の後で、総ての要求が
応答を受け取った時に評価が発生する。SML関数の場
合の時間の内部表現はミリ秒である。
もできる。その場合は、特定時間の後で、総ての要求が
応答を受け取った時に評価が発生する。SML関数の場
合の時間の内部表現はミリ秒である。
【0201】“eval−after”:式の評価は特
定の時間が経過した後で行われる。この関数は下記の2
つの段階で実施される。
定の時間が経過した後で行われる。この関数は下記の2
つの段階で実施される。
【0202】・ “eval−after”を呼び出す
時は、次いで評価される各フォーマット(forme)
がコンテキストと共に保持される。
時は、次いで評価される各フォーマット(forme)
がコンテキストと共に保持される。
【0203】・ 特定時間が経過した後で、評価された
各フォーマットにコンテキストが連結される。
各フォーマットにコンテキストが連結される。
【0204】この関数は、後述の関数“remove−
timer”によってゼロにリセットできる“time
r”型オブジェクトを戻す。
timer”によってゼロにリセットできる“time
r”型オブジェクトを戻す。
【0205】“eval−every”:この関数は前
記関数と類似しているが、反復評価を実行する。この関
数は勿論、関数“remove−timer”によって
ゼロにリセットできる。
記関数と類似しているが、反復評価を実行する。この関
数は勿論、関数“remove−timer”によって
ゼロにリセットできる。
【0206】“remove−timer”:この関数
は、関数“eval−after”又は“eval−e
very”のいずれか一方によって構成された“tim
er”型オブジェクトを排除する。
は、関数“eval−after”又は“eval−e
very”のいずれか一方によって構成された“tim
er”型オブジェクトを排除する。
【0207】SMLはまた、特に下記の関数を調整する
ためのツールも使用する。
ためのツールも使用する。
【0208】“hashinfo”:この関数はアトム
ストックに関する統計を供給する。戻される情報は記号
の数、表中の挿入体の数及び衝突の数である。
ストックに関する統計を供給する。戻される情報は記号
の数、表中の挿入体の数及び衝突の数である。
【0209】“meminfo”:この関数はSMLに
よって使用されるメモリアロケータの状態を供給し印刷
する。
よって使用されるメモリアロケータの状態を供給し印刷
する。
【0210】“oblist”:この関数は既に決定さ
れているSMLアトムの名称を戻し、印刷する。記号
“string”が指定されていなければ、決定された
名称が総て戻され、そうでなければ記号“strin
g”を含む名称のみが戻される。
れているSMLアトムの名称を戻し、印刷する。記号
“string”が指定されていなければ、決定された
名称が総て戻され、そうでなければ記号“strin
g”を含む名称のみが戻される。
【0211】“stack−print−leve
l”:この関数は、エラーが印刷されたパイルの構造体
の数(nombre de structures
d’une pile imprimees en e
rreur)を供給する。
l”:この関数は、エラーが印刷されたパイルの構造体
の数(nombre de structures
d’une pile imprimees en e
rreur)を供給する。
【0212】“trace−untrace”:関数
“trace”は、要求に至るまでに実行された関数の
リストを戻す。関数“untrace”は要求に至るま
でにまだ実行されていない関数があればこれら関数のリ
ストを戻し、そうでなければ値“nil”を戻す。
“trace”は、要求に至るまでに実行された関数の
リストを戻す。関数“untrace”は要求に至るま
でにまだ実行されていない関数があればこれら関数のリ
ストを戻し、そうでなければ値“nil”を戻す。
【0213】関数セットMIFは前述のように、アプリ
ケーションとオブジェクト管理体との間の情報交換にお
いてネットワーク及び情報システム管理サービスとのイ
ンタフェースとして使用される外部ライブラリMILへ
のアクセスを可能にする。例えばCMISのようなネッ
トワーク及び情報システム管理サービスに関連したプロ
グラミングの概念に鑑みて、SMLアプリケーションは
下記の動作を実施できるものでなければならない。
ケーションとオブジェクト管理体との間の情報交換にお
いてネットワーク及び情報システム管理サービスとのイ
ンタフェースとして使用される外部ライブラリMILへ
のアクセスを可能にする。例えばCMISのようなネッ
トワーク及び情報システム管理サービスに関連したプロ
グラミングの概念に鑑みて、SMLアプリケーションは
下記の動作を実施できるものでなければならない。
【0214】1.サービスの初期化、 2.ユーザのアクションの待機、 3.ネットワーク及び情報システム管理サービスの要求
の送出、 4.前記要求のためのリコール手続きの設定、 5.要求確認が到着した時のリコール手続きの実行、 6.ステップ2からユーザの最終要求までの反復、 7.アプリケーションの終了。
の送出、 4.前記要求のためのリコール手続きの設定、 5.要求確認が到着した時のリコール手続きの実行、 6.ステップ2からユーザの最終要求までの反復、 7.アプリケーションの終了。
【0215】関数セットXAFは、例えばX/Moti
fのような図形ユーザインタフェースを開発し管理する
ための構成要素を有するライブラリXMLへのアクセス
を可能にする。
fのような図形ユーザインタフェースを開発し管理する
ための構成要素を有するライブラリXMLへのアクセス
を可能にする。
【0216】X窓型システムのアーキテクチャはクライ
エント−サーバモデルに基づく。
エント−サーバモデルに基づく。
【0217】サーバは総ての入出力装置(例えばマウ
ス)を制御し、スクリーン上に窓を形成して操作し、テ
キスト及び図形を形成する。サーバによって提供された
ファシリティを使用するアプリケーションはクライエン
ト(client)と呼ばれる。このクライエントは、
特定のプロトコルを用いてネットワークを介する接続後
にサーバと通信する。サーバは、マウスを介するユーザ
のアクションに応答する事象をサーバが発生する時に、
その事象を例えば簡単な仕方でクライエントアプリケー
ションに送る。これは、該実施例の概念では、この種事
象がSMLインタプリタの責任下にあり、これに特異的
なコールバックの機能が実施されることを意味する。
ス)を制御し、スクリーン上に窓を形成して操作し、テ
キスト及び図形を形成する。サーバによって提供された
ファシリティを使用するアプリケーションはクライエン
ト(client)と呼ばれる。このクライエントは、
特定のプロトコルを用いてネットワークを介する接続後
にサーバと通信する。サーバは、マウスを介するユーザ
のアクションに応答する事象をサーバが発生する時に、
その事象を例えば簡単な仕方でクライエントアプリケー
ションに送る。これは、該実施例の概念では、この種事
象がSMLインタプリタの責任下にあり、これに特異的
なコールバックの機能が実施されることを意味する。
【0218】CMISのようなネットワーク及び情報シ
ステム管理サービスと、X/Motifのような図形ユ
ーザインタープリタの開発及び管理を可能にする外部ラ
イブラリとを同時に使用するSMLアプリケーションは
下記の動作を実行しなければならない。
ステム管理サービスと、X/Motifのような図形ユ
ーザインタープリタの開発及び管理を可能にする外部ラ
イブラリとを同時に使用するSMLアプリケーションは
下記の動作を実行しなければならない。
【0219】1.2種類のサービスの初期化、 2.“道具”と称するユーザインタフェース構成要素の
形成及び表現、 3.ユーザインタラクションのためのリコール手続きの
設定、 4.ユーザのアクションの待機、 5.リコール手続きによってネットワーク及び情報シス
テム管理サービスの要求を送出する動作、 6.前記要求のためのリコール手続きの設定、 7.要求確認が到着した時のリコール手続きの実行、 8.ステップ4からユーザの最終要求までの反復、 9.アプリケーションの終了。
形成及び表現、 3.ユーザインタラクションのためのリコール手続きの
設定、 4.ユーザのアクションの待機、 5.リコール手続きによってネットワーク及び情報シス
テム管理サービスの要求を送出する動作、 6.前記要求のためのリコール手続きの設定、 7.要求確認が到着した時のリコール手続きの実行、 8.ステップ4からユーザの最終要求までの反復、 9.アプリケーションの終了。
【0220】関数セットGAFは、図形オブジェクトを
使用するアプリケーションを許可するライブラリGOL
へのアクセスを可能にする。この種のアプリケーション
は、例えばX/Motif、MS−WINDOWS、P
ostscript等のような既存のユーザインタフェ
ースに組み込むことができる図形ライブラリに基づいて
二次元図形オブジェクトを呈示し編集することを可能に
する。
使用するアプリケーションを許可するライブラリGOL
へのアクセスを可能にする。この種のアプリケーション
は、例えばX/Motif、MS−WINDOWS、P
ostscript等のような既存のユーザインタフェ
ースに組み込むことができる図形ライブラリに基づいて
二次元図形オブジェクトを呈示し編集することを可能に
する。
【0221】関数SAFの役割は、例えばINGRES
(Ingres Co.の登録商標)、ORACLE
(Oracle Corporationの登録商標)
等のような関係データベースとのインタフェースとして
使用される、例えばSQLのような構築言語の特異的ラ
イブラリSLLへのアクセスを許可することにある。
(Ingres Co.の登録商標)、ORACLE
(Oracle Corporationの登録商標)
等のような関係データベースとのインタフェースとして
使用される、例えばSQLのような構築言語の特異的ラ
イブラリSLLへのアクセスを許可することにある。
【0222】関数SAFは2つのファンクショナリティ
レベル(niveaux de fonctionna
lites)を提供する。第1のレベルは、SML環境
において標準的要求を構築言語で形成することを可能に
する。このレベルで使用される関数はデータベースサー
バとは対話しない。第2のレベルでは、使用される関数
がデータベースサーバと対話して、特に、前記サーバと
の接続又は切断、変更が望まれる時の更新を許可する。
レベル(niveaux de fonctionna
lites)を提供する。第1のレベルは、SML環境
において標準的要求を構築言語で形成することを可能に
する。このレベルで使用される関数はデータベースサー
バとは対話しない。第2のレベルでは、使用される関数
がデータベースサーバと対話して、特に、前記サーバと
の接続又は切断、変更が望まれる時の更新を許可する。
【0223】SML特異的関数SAFは、ライブラリS
LLとのインタフェースを実現させる。以下はその原理
の要約である。
LLとのインタフェースを実現させる。以下はその原理
の要約である。
【0224】“sql−login”:パラメータ“c
onnectid”によって識別されたデータベースサ
ーバへの接続を可能にする。前記パラメータはデータベ
ースのサーバの名称を指定するストリングである。接続
が実施されると、この関数が値“t”を戻し、そうでな
ければ関数“sql−error”(後で説明する)が
呼び出され、値“nil”が戻される。
onnectid”によって識別されたデータベースサ
ーバへの接続を可能にする。前記パラメータはデータベ
ースのサーバの名称を指定するストリングである。接続
が実施されると、この関数が値“t”を戻し、そうでな
ければ関数“sql−error”(後で説明する)が
呼び出され、値“nil”が戻される。
【0225】“sql−logout”:データベース
サーバからの切断を可能にする。この関数は、実行中の
論理タスク単位を終了させる。ある単位が実行中の場合
はこの機能が当該タスク単位の間に行われた総ての変更
を固定し、切断が行われる。
サーバからの切断を可能にする。この関数は、実行中の
論理タスク単位を終了させる。ある単位が実行中の場合
はこの機能が当該タスク単位の間に行われた総ての変更
を固定し、切断が行われる。
【0226】“sql−build−delete”:
削除要求をストリングとして形成することを可能にす
る。
削除要求をストリングとして形成することを可能にす
る。
【0227】“sql−build−insert”:
挿入要求をストリングとして形成することを可能にす
る。
挿入要求をストリングとして形成することを可能にす
る。
【0228】“sql−build−select”:
選択要求をリスト形態のストリングとして形成すること
を可能にする。
選択要求をリスト形態のストリングとして形成すること
を可能にする。
【0229】“sql−build−update”:
更新要求をストリングとして形成することを可能にす
る。
更新要求をストリングとして形成することを可能にす
る。
【0230】“sql−oper”:条件提案をストリ
ングとして形成することを可能にする。
ングとして形成することを可能にする。
【0231】“sql−exec”:要求を、実行のた
めに、パラメータ“command”を用いてデータベ
ースサーバに委ねる。
めに、パラメータ“command”を用いてデータベ
ースサーバに委ねる。
【0232】パラメータ“command”はストリン
グか、又は先行関数“sql−build−xxx”の
1つによって戻される結果であり得る。この関数は、デ
ータベースサーバと実際に接続した後でしか使用できな
い。
グか、又は先行関数“sql−build−xxx”の
1つによって戻される結果であり得る。この関数は、デ
ータベースサーバと実際に接続した後でしか使用できな
い。
【0233】“sql−commit”:タスク単位
を、該タスク単位の間に行われた変更を固定しながら終
了する。
を、該タスク単位の間に行われた変更を固定しながら終
了する。
【0234】“sql−rollback”:タスク単
位を、該タスク単位の間に行われた変更を考慮せずに終
了する。
位を、該タスク単位の間に行われた変更を考慮せずに終
了する。
【0235】“sql−error”:この関数は、要
求が不成功に終わった場合に呼び出される。
求が不成功に終わった場合に呼び出される。
【0236】“sql−get−error”:最終要
求に応答してデータベースサーバの最終メッセージを戻
す。
求に応答してデータベースサーバの最終メッセージを戻
す。
【0237】一般的には、構築言語のデータの型は等価
の型を言語SMLで有している。従ってこれら2種類の
言語の間には対応性が存在する。また、構築言語の表名
及び属性名は言語SMLのアトムで表現される(例えば
言語Lisp参照)。値は勿論これら2種類の言語にお
いて対応性を有する。
の型を言語SMLで有している。従ってこれら2種類の
言語の間には対応性が存在する。また、構築言語の表名
及び属性名は言語SMLのアトムで表現される(例えば
言語Lisp参照)。値は勿論これら2種類の言語にお
いて対応性を有する。
【0238】更に、SMLへの拡張を書き表すこともで
きる。そのためには、新しい関数をC型言語で書込み、
次いでコンパイルし且つSMLライブラリに連結する。
その結果、拡張された新しいSMLインタプリタが得ら
れる。一般的には、SML拡張の展開は下記のステップ
を伴う。
きる。そのためには、新しい関数をC型言語で書込み、
次いでコンパイルし且つSMLライブラリに連結する。
その結果、拡張された新しいSMLインタプリタが得ら
れる。一般的には、SML拡張の展開は下記のステップ
を伴う。
【0239】新しいSML名称が言及される毎に呼び出
されなければならない原始関数のためのC型言語のコー
ドの展開、新しいSML関数の名称と、コンパイルされ
た外部ライブラリ内の原始関数の名称との間の対応の実
現、必要なライブラリを全部連結して行う新しいSML
インタプリタの構築、の各ステップ。
されなければならない原始関数のためのC型言語のコー
ドの展開、新しいSML関数の名称と、コンパイルされ
た外部ライブラリ内の原始関数の名称との間の対応の実
現、必要なライブラリを全部連結して行う新しいSML
インタプリタの構築、の各ステップ。
【0240】結論として、この種のプログラミング言語
はアプリケーションの展開時間を大幅に短縮させる。例
えば、型決定が変数ではなく変数の内容に基づいて行わ
れる本発明で使用する言語は、極めて有意に単純化され
ており総称プログラミングを容易にするようなサーバア
クセスインタフェースの実現を可能にする。データの構
造は無条件で直接処理される。実際、SML変数はいず
れも不確定状態(値“nil”)で存在するとみなされ
るため型をもたず、型は割り当てと同時に固定され、そ
の結果総称プログラミングが許可される。これは、型が
コンパイルされる、即ちプログラミングの前に型を知る
必要があるC型言語と比べて極めて有利な利点である。
また、このような言語は集合論的性格を有し種々の情報
サーバとのインタフェースを容易にするため、管理アプ
リケーション用の極めて高い水準の言語として有利に使
用される。例えば、この種の言語を使用すると、該言語
の集合論的性格を考慮しながらSQLのような構築言語
に固有のライブラリにアクセスすることができる。ま
た、例えばネットワーク管理プラットホームの場合のよ
うに複数のサーバのツリー的性格を遵守しながらインタ
フェースを形成することができる。
はアプリケーションの展開時間を大幅に短縮させる。例
えば、型決定が変数ではなく変数の内容に基づいて行わ
れる本発明で使用する言語は、極めて有意に単純化され
ており総称プログラミングを容易にするようなサーバア
クセスインタフェースの実現を可能にする。データの構
造は無条件で直接処理される。実際、SML変数はいず
れも不確定状態(値“nil”)で存在するとみなされ
るため型をもたず、型は割り当てと同時に固定され、そ
の結果総称プログラミングが許可される。これは、型が
コンパイルされる、即ちプログラミングの前に型を知る
必要があるC型言語と比べて極めて有利な利点である。
また、このような言語は集合論的性格を有し種々の情報
サーバとのインタフェースを容易にするため、管理アプ
リケーション用の極めて高い水準の言語として有利に使
用される。例えば、この種の言語を使用すると、該言語
の集合論的性格を考慮しながらSQLのような構築言語
に固有のライブラリにアクセスすることができる。ま
た、例えばネットワーク管理プラットホームの場合のよ
うに複数のサーバのツリー的性格を遵守しながらインタ
フェースを形成することができる。
【0241】別の重要な利点は、実行可能なコードが、
受け取られたデータの型に適合するように自然に容易に
自己修正できることにある。従って、アプリケーション
は管理オブジェクトの構造を知らないまま該オブジェク
トの値の要求をネットワークに送り、次いで受け取られ
たオブジェクトの構造に適合した表示及び更新関数を動
的に構築することができる。実際、既述のようにプログ
ラムとデータとの間には差がないため、プログラムは自
己修正することができ、従ってアプリケーションが自分
が処理するデータに応じて動的に修正されることにな
る。
受け取られたデータの型に適合するように自然に容易に
自己修正できることにある。従って、アプリケーション
は管理オブジェクトの構造を知らないまま該オブジェク
トの値の要求をネットワークに送り、次いで受け取られ
たオブジェクトの構造に適合した表示及び更新関数を動
的に構築することができる。実際、既述のようにプログ
ラムとデータとの間には差がないため、プログラムは自
己修正することができ、従ってアプリケーションが自分
が処理するデータに応じて動的に修正されることにな
る。
【0242】また、プログラム及びデータが同じように
表現されるSMLのような言語の使用は特に簡単であり
且つ有利である。実際、この種の言語は大きな使用柔軟
性と、著しい順応性と、それ自体が方向を有するコード
部分、例えばトランザクションの送出を可能にする大き
なパワーとをもたらし、動的に調整されたプロセッサの
間にロード平衡をもたらし、実行の間のコードの動的修
正を許可する。このような使用では、コードが単純なデ
ータ伝送と同じ容易さ及び柔軟性をもって伝搬される。
表現されるSMLのような言語の使用は特に簡単であり
且つ有利である。実際、この種の言語は大きな使用柔軟
性と、著しい順応性と、それ自体が方向を有するコード
部分、例えばトランザクションの送出を可能にする大き
なパワーとをもたらし、動的に調整されたプロセッサの
間にロード平衡をもたらし、実行の間のコードの動的修
正を許可する。このような使用では、コードが単純なデ
ータ伝送と同じ容易さ及び柔軟性をもって伝搬される。
【図1】インタプリタと該インタプリタがアクセスする
ライブラリアセンブリとを表す構造の一例を示す説明図
である。
ライブラリアセンブリとを表す構造の一例を示す説明図
である。
【図2】ネットワーク管理におけるデータ処理の概略図
である。
である。
K 核 INT インタプリタ LIB ライブラリ SOF 関数セット
Claims (1)
- 【請求項1】 ネットワークに接続された複数のデータ
処理装置を有する情報処理システムであって、集合型又
はリスト型データ構造のデータへのアクセスを行う情報
処理システムを構築する方法であって、 データ形式の宣言なしに変数の内容によってデータ形式
が定義される集合型又はリスト型データ構造のデータが
処理可能なLisp型プログラミング言語を用いて作成
されたアプリケーションプログラムであって、サーバへ
のアクセスのための汎用プログラミング形式のインタフ
ェースと、関係データベースの集合型データと複数のサ
ーバのリスト型データとを処理できるインタフェースと
を含むネットワーク管理型のアプリケーションプログラ
ムを装備するステップと、 データ型を指定することなくデータを要求し且つ受信す
ることによって該データ構造のデータを操作する手段を
装備するステップと、 該複数のデータ処理装置の各々に該プログラミング言語
の言語インタプリタを装備するステップと、 を含む情報処理システムを構築する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9202976A FR2688611A1 (fr) | 1992-03-12 | 1992-03-12 | Utilisation d'un langage dont le typage porte sur le contenu des variables et permettant de manipuler des constructions complexes. |
FR9202976 | 1992-03-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0668006A JPH0668006A (ja) | 1994-03-11 |
JP2514152B2 true JP2514152B2 (ja) | 1996-07-10 |
Family
ID=9427621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5052316A Expired - Lifetime JP2514152B2 (ja) | 1992-03-12 | 1993-03-12 | 情報処理システムを構築する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5734907A (ja) |
EP (1) | EP0560689A1 (ja) |
JP (1) | JP2514152B2 (ja) |
CA (1) | CA2091546C (ja) |
FR (1) | FR2688611A1 (ja) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716096B2 (en) * | 1996-11-27 | 2010-05-11 | Diebold Self-Service Systems A Division Of Diebold, Incorporated | Application service provider and automated transaction machine system and method |
US6496865B1 (en) * | 1997-03-12 | 2002-12-17 | Novell, Inc. | System and method for providing interpreter applications access to server resources in a distributed network |
US6621505B1 (en) * | 1997-09-30 | 2003-09-16 | Journee Software Corp. | Dynamic process-based enterprise computing system and method |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US6314429B1 (en) * | 1997-10-08 | 2001-11-06 | Mitel Corporation | Bi-directional conversion library |
US6226788B1 (en) * | 1998-07-22 | 2001-05-01 | Cisco Technology, Inc. | Extensible network management system |
US6192512B1 (en) * | 1998-09-24 | 2001-02-20 | International Business Machines Corporation | Interpreter with virtualized interface |
BR9914551A (pt) | 1998-10-16 | 2002-03-05 | Computer Ass Think Inc | Processo e sistema para macro-linguagem extensìvel |
FI107206B (fi) * | 1999-03-16 | 2001-06-15 | Nokia Networks Oy | Menetelmä ja laite rajapinnan määrittämiseksi ja tietoliikennejärjestelmä |
US6463440B1 (en) | 1999-04-08 | 2002-10-08 | International Business Machines Corporation | Retrieval of style sheets from directories based upon partial characteristic matching |
US6589291B1 (en) | 1999-04-08 | 2003-07-08 | International Business Machines Corporation | Dynamically determining the most appropriate location for style sheet application |
US6457172B1 (en) * | 1999-04-13 | 2002-09-24 | International Business Machines Corporation | Compiler for supporting multiple runtime data representations |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US6766361B1 (en) | 2000-02-24 | 2004-07-20 | Cephire Technologies, Inc. | Machine-to-machine e-commerce interface using extensible markup language |
US6519588B1 (en) | 2000-04-03 | 2003-02-11 | Mro Software, Inc. | System and method for representing related concepts |
US6928487B2 (en) * | 2000-12-23 | 2005-08-09 | International Business Machines Corporation | Computer system, method, and business method for automating business-to-business communications |
JP2002358290A (ja) * | 2001-03-19 | 2002-12-13 | Toshiba Corp | 情報処理サービス提供方法及びプログラム並びにシステム |
DE10149619A1 (de) * | 2001-10-09 | 2003-04-24 | Deutsche Post Ag | Verfahren zur Steuerung von elektronischen Paketfachanlagen und Schnittstelle zur Durchführung des Verfahrens |
JP3964259B2 (ja) * | 2002-05-10 | 2007-08-22 | 富士通株式会社 | プログラム生成装置、及びプログラム生成方法、並びにプログラム生成用プログラム |
US7953779B1 (en) * | 2002-10-08 | 2011-05-31 | Trilogy Development Group, Inc. | Configuration representation and modeling using configuration spaces |
US20040083465A1 (en) * | 2002-10-28 | 2004-04-29 | Weijia Zhang | Method and system for connecting to an application programming interface |
WO2005015389A1 (en) * | 2003-07-11 | 2005-02-17 | Computer Associates Think, Inc. | Adding user-defined objects to a modeling tool |
US7539982B2 (en) * | 2004-05-07 | 2009-05-26 | International Business Machines Corporation | XML based scripting language |
US7281694B2 (en) * | 2004-06-14 | 2007-10-16 | Hewlett-Packard Development Company, L.P. | Mounting bracket |
US8010576B2 (en) * | 2004-08-19 | 2011-08-30 | Oracle International Corporation | Inventory and configuration management |
US8788687B2 (en) * | 2006-10-04 | 2014-07-22 | Welch Allyn, Inc. | Dynamic medical object information base |
EP1866780A4 (en) * | 2005-03-30 | 2013-07-31 | Welch Allyn Inc | COMMUNICATION OF INFORMATION BETWEEN MULTIPLE NETWORK ELEMENTS |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
US20070050770A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Method and apparatus for uniformly integrating operating system resources |
US20070067769A1 (en) * | 2005-08-30 | 2007-03-22 | Geisinger Nile J | Method and apparatus for providing cross-platform hardware support for computer platforms |
US20070050765A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Programming language abstractions for creating and controlling virtual computers, operating systems and networks |
US20070074192A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Computing platform having transparent access to resources of a host platform |
US8209657B1 (en) * | 2006-04-03 | 2012-06-26 | Bae Systems Information And Electronic Systems Integration Inc. | System design combining functional decomposition and object-oriented programming |
US7526486B2 (en) * | 2006-05-22 | 2009-04-28 | Initiate Systems, Inc. | Method and system for indexing information about entities with respect to hierarchies |
US7827537B2 (en) * | 2006-05-26 | 2010-11-02 | Oracle America, Inc | Searching computer programs that use different semantics |
EP2030134A4 (en) | 2006-06-02 | 2010-06-23 | Initiate Systems Inc | SYSTEM AND METHOD FOR AUTOMATIC WEIGHT GENERATION FOR CHARACTERISTICITY |
US7698268B1 (en) | 2006-09-15 | 2010-04-13 | Initiate Systems, Inc. | Method and system for filtering false positives |
US7685093B1 (en) | 2006-09-15 | 2010-03-23 | Initiate Systems, Inc. | Method and system for comparing attributes such as business names |
US8356009B2 (en) | 2006-09-15 | 2013-01-15 | International Business Machines Corporation | Implementation defined segments for relational database systems |
US8359339B2 (en) | 2007-02-05 | 2013-01-22 | International Business Machines Corporation | Graphical user interface for configuration of an algorithm for the matching of data records |
US8515926B2 (en) * | 2007-03-22 | 2013-08-20 | International Business Machines Corporation | Processing related data from information sources |
US8321393B2 (en) * | 2007-03-29 | 2012-11-27 | International Business Machines Corporation | Parsing information in data records and in different languages |
WO2008121824A1 (en) | 2007-03-29 | 2008-10-09 | Initiate Systems, Inc. | Method and system for data exchange among data sources |
WO2008121700A1 (en) | 2007-03-29 | 2008-10-09 | Initiate Systems, Inc. | Method and system for managing entities |
US8423514B2 (en) | 2007-03-29 | 2013-04-16 | International Business Machines Corporation | Service provisioning |
US20110010214A1 (en) * | 2007-06-29 | 2011-01-13 | Carruth J Scott | Method and system for project management |
US8713434B2 (en) | 2007-09-28 | 2014-04-29 | International Business Machines Corporation | Indexing, relating and managing information about entities |
CN101878461B (zh) | 2007-09-28 | 2014-03-12 | 国际商业机器公司 | 分析用于匹配数据记录的系统的方法和系统 |
JP5306359B2 (ja) | 2007-09-28 | 2013-10-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数言語によるデータ記録を関連付ける方法およびシステム |
US8863115B2 (en) * | 2008-03-20 | 2014-10-14 | Sap Ag | Execution of program code having language-level integration of program models |
WO2011011718A2 (en) | 2009-07-24 | 2011-01-27 | Welch Allyn, Inc. | Configurable health-care equipment apparatus |
USD635681S1 (en) | 2010-07-22 | 2011-04-05 | Welch Allyn, Inc. | Patient-monitor housing |
USD671222S1 (en) | 2010-07-22 | 2012-11-20 | Welch Allyn, Inc. | Module for a patient-monitor or the like |
USD632397S1 (en) | 2010-07-22 | 2011-02-08 | Welch Allyn, Inc. | Portions of a patient-monitor housing |
US8762964B2 (en) * | 2010-12-17 | 2014-06-24 | Cisco Technology, Inc. | Optimizing symbol manipulation language-based executable applications for distributed execution |
US8856190B2 (en) * | 2011-06-30 | 2014-10-07 | Accenture Global Services Limited | Distributed computing system hierarchal structure manipulation |
US9117026B1 (en) * | 2013-12-23 | 2015-08-25 | Ca, Inc. | Reporting the presence of hardcoded strings on a user interface (UI) |
US9690549B2 (en) * | 2015-03-25 | 2017-06-27 | Ca, Inc. | Editing software products using text mapping files |
TWI575401B (zh) * | 2015-11-12 | 2017-03-21 | 財團法人資訊工業策進會 | 行動裝置及一種適用於行動裝置的監控方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE155593T1 (de) * | 1989-11-30 | 1997-08-15 | Seer Technologies Inc | Rechnerunterstützte softwareentwicklungseinrichtung |
US5491796A (en) * | 1992-10-23 | 1996-02-13 | Net Labs, Inc. | Apparatus for remotely managing diverse information network resources |
-
1992
- 1992-03-12 FR FR9202976A patent/FR2688611A1/fr active Granted
-
1993
- 1993-03-11 CA CA002091546A patent/CA2091546C/fr not_active Expired - Fee Related
- 1993-03-12 JP JP5052316A patent/JP2514152B2/ja not_active Expired - Lifetime
- 1993-03-12 EP EP93400643A patent/EP0560689A1/fr not_active Ceased
-
1995
- 1995-06-07 US US08/479,563 patent/US5734907A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5734907A (en) | 1998-03-31 |
CA2091546A1 (fr) | 1993-09-13 |
EP0560689A1 (fr) | 1993-09-15 |
FR2688611A1 (fr) | 1993-09-17 |
JPH0668006A (ja) | 1994-03-11 |
FR2688611B1 (ja) | 1997-02-21 |
CA2091546C (fr) | 1999-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2514152B2 (ja) | 情報処理システムを構築する方法 | |
US5860010A (en) | Use of language with similar representation for programs and data in distributed data processing | |
US6470375B1 (en) | System and method for managing the execution of system management tasks | |
US7010796B1 (en) | Methods and apparatus providing remote operation of an application programming interface | |
JP3179513B2 (ja) | 異種ネットワーク環境における適用業務プログラムの統合システム | |
US6658625B1 (en) | Apparatus and method for generic data conversion | |
Van Den Bos et al. | PROCOL: A parallel object language with protocols | |
US5632031A (en) | Method and means for encoding storing and retrieving hierarchical data processing information for a computer system | |
US7406682B2 (en) | Translator-compiler for converting legacy management software | |
US5754845A (en) | Portable and dynamic distributed applications architecture | |
US7461385B2 (en) | Method for establishing a new user interface via an intermingled user interface | |
US7359990B2 (en) | Editing files of remote systems using an integrated development environment | |
US5778223A (en) | Dictionary for encoding and retrieving hierarchical data processing information for a computer system | |
US5664181A (en) | Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | |
US20080071802A1 (en) | Tranformation of modular finite state transducers | |
JP2005018777A (ja) | 共通問い合わせ実行時システムおよびアプリケーションプログラミングインターフェイス | |
JP2007234047A (ja) | インターフェイス定義言語によって定義されたデータ構造体を異種システム間で移送するための方法および装置 | |
US6542900B1 (en) | Method and apparatus for distributed object mapping in a java language environment | |
US6516354B2 (en) | Method and apparatus for efficient representation of variable length identifiers in a distributed object system | |
CN111694846A (zh) | 一种基于Type 2 JDBC驱动的分离模式分布式存储过程实现方法 | |
JP3489216B2 (ja) | ファイルシステム | |
JPH07500688A (ja) | 分散情報処理におけるプログラム用とデータ用とで類似の表現を有する言語の使用方法 | |
JPH05158699A (ja) | クラス情報を管理するための方法及び装置 | |
JP5732926B2 (ja) | リモートプロシージャコール処理方法 | |
US20100023923A1 (en) | Method for medeling objects in a hetrogenious computing environment |