JP3142276B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP3142276B2 JP3142276B2 JP62271610A JP27161087A JP3142276B2 JP 3142276 B2 JP3142276 B2 JP 3142276B2 JP 62271610 A JP62271610 A JP 62271610A JP 27161087 A JP27161087 A JP 27161087A JP 3142276 B2 JP3142276 B2 JP 3142276B2
- Authority
- JP
- Japan
- Prior art keywords
- menu
- expression
- address
- key
- sub
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Input From Keyboards Or The Like (AREA)
- Calculators And Similar Devices (AREA)
- Digital Computer Display Output (AREA)
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は一般に電子式データ処理装置に関し、更に詳
細には、改良された代数式処理能力を提供するデータ処
理装置に関する。 〔従来技術およびその問題点〕 科学計算機は典型的には手持ち型または卓上型の装置
であって、オペレータから入力データと動作命令とを受
取る、人手で作動できるキーボードと、結果をオペレー
タに伝える可視表示とを備えている。もっと近頃の開発
の成果は簡単な数よりも複雑なデータ構造を入力し、表
示し、編集することができる英数字表示の設備である。
特に、これは方程式や代数式を入力し、表示し、且つ編
集することができる。 これら科学計算機が次第に複雑化したことはデータ構
造が一層多様化する傾向と相俟ってこれらデータ構造の
編集プロセスを自動化する原動力となった。以前の計算
機は方程式や代数式を編集するのにいわゆるキャラクタ
・エディタを使用しており、オペレータは方程式または
式の表示形態中の個別の文字あるいは文字群を削除し、
挿入し、または重ね書きすることができる。 キャラクタ・エディタはオペレータの入力エラーを修
正するには有用且つ重要であるが、不適切な形態表現さ
れた、数字的には正しい式を修正する目的には甚だ不充
分である。一例として、 (alog(2N)+1)−alog(2N)および (alog(2N)−alog(2N))+1 を考える。ここでalogは普通の逆対数関数であり、Nは
計算機内の有効数字の桁数である。これらの式は形式的
には等価であるが、計算機で評価するときは異なる結果
が得られ、2番目の形だけが正しい結果を与える。した
がって、キャラクタ・エディタの主な欠点はオペレータ
がかなりな努力を払わなければ第1の式を第2の式に変
換することができず、且つ式中にエラーが入って来る可
能性があるということである。 この種の編集に関するキャラクタ・エディタの別の欠
点は式を形式的に等価な式に変換するプロセスにおいて
オペレータに対する指針が欠除しているということであ
る。 〔発明の目的〕 本発明の目的は上述した従来技術の問題点を解消し、
数式等の編集が便利なデータ処理装置を提供することを
目的とする。 〔発明の概要〕 本発明の一実施例によれば、動作シーケンスを改良す
るとともに代数式処理能力を改良して、入力された代数
式または計算された代数式を編集する際のオペレータと
機械との間のインターフェースを高度なものとしたデー
タ処理装置が与えられる。本装置はオペレータにどの数
学的に正しい代数処理が編集中の式の現在選択されてい
る部分式と調和しているかを示す可視フィードバックを
行う。本装置はオペレータの誤りの可能性が無くなるよ
うに代数処理を選択し、実行する能力を提供する。 本発明は数種の形態で実施することができる。本発明
を実施する一つの形態では、どんな部分式をも選択する
ことができ、こうして選択した部分式をその部分式の表
示形態を変更して表示するような動作シーケンスが行な
われる。 本発明を実施する第2の形態では、編集中の式中の現
在選択されている部分式と調和する代数処理の指標を備
えているメニュー・ラベルを表示する動作シーケンスが
行なわれる。 本発明を実施する第3の形態では、編集中の式の現在
選択されている部分式と調和する代数処理の指標を備え
ているメニュー・ラベルが表示されたことに応じて代数
処理を選択することができ、選択された処理はオペレー
タの誤りの可能性が無いように行われ、処理の結果が表
示され、以後の編集に利用できるような動作シーケンス
が行なわれる。 〔発明の実施例〕 第1A図および第1B図に示したデータ処理装置100は第
1部分101(左半分)と第2部分102(右半分)は備えて
いる。第1部分101は複数のキーを備え、これらのうち
には英数字記号を入力するキーが含まれている。 第2部分102は表示装置103を備えている。好ましい実
施例では、表示装置103は液晶のドット・アレイ表示装
置であって、それぞれ23字から成る4行を表示する。表
示装置103は告知(annunciator)用の行106をも備えて
おり、これは本装置の各種の動作モードを表示するのに
使用される。 第2部分102は図に示してあるような数字キーおよび
関数キーを含む複数のキーも備えている。RNTERと書か
れたキー105は英数字の文字入力を終結し、入力された
ものの処理を開始するのに使用される。本装置の動作中
にこのキーを押すと、部分式選択メニューに戻す要求信
号を発する(第12B図)。シフト・キー107は次に押され
たキーに、そのキーの上方に記入された別の定義を実行
させる作用をする。 第2部分102は1列に並んだ6個の多機能キー104も備
えている。これらのキーは変数の関数あるいは数値と関
連づけることができる。多機能キーの現在の定義は表示
装置の最下文字行に、各キーの直上にメニュー・ラベル
を表示することによって示される。 第1および第2部分101、102は関連する計算機機能群
(メニュー)を、夫々6個の要素からなる部分群に分け
て多機能キー104に割当てる各種のキーを備えている。
これらのキーにはユーザ・メニュー・キー108が含まれ
ている。このキーはユーザ変数を自動的に多機能キー10
4に割当てる。NEXTと書かれたキー109は多機能キーの割
当てを現メニュー中の次の6個の機能の群に進める。本
装置の動作中、このキーを押すと編集対象の式の選択さ
れた部分式に適切な次のメニューにメニューを進めると
いう要求信号を発する。このキー109の機能をシフトす
ると前の6個の機能が再び活性化される。すなわち、本
装置の動作中、シフト・キーを押し、続いてキー109を
押すと、編集される式の選択された部分式に適切な前の
メニューにメニューを変更する要求信号が発せられる。
各メニューが選択されると、そのメニュー・ラベルが表
示される。 第2部分102は赤外線発光ダイオード110も備えてい
る。これはデータを対応する受信装置、典型的にはプリ
ンタに伝えるのに使用される。 ONと書かれたキー111はユーザが計算機を動作させた
り止めたりすることができるようにするとともに計算機
が動作しているとき計算機の正常動作を中断することが
できるようにする特別な割込みキーである。本装置の動
作中、このキーを押すとエディット動作から出るように
要求する信号を発する。 第2図はデータ処理装置100の内部のチップ・レベル
の構造を示す。中央処理装置(CPU)201、2個の読出し
専用メモリ(ROM)203と204、および2個のディスプレ
イ・ドライバRAM複合体205と206がメイン・バス200と結
合して示してある。各ディスプレイ・ドライバは液晶の
表示装置103の、それぞれ半分207と208を制御する。キ
ーボード202はCPU201と結合して示してある。キーボー
ド202はキーの二つの部分101と102(第1A図、第1B図)
を備えることができるが、タッチ検知スクリーンのよう
な別の形態のデータ入力を表わすこともできる。 第3図は本装置のユーザ・インタフェースをサポート
するためROM203および204に含まれているオペレーティ
ング・システムによるRAM205および206の使い方を示す
マップである。このオペレーティング・システムの基本
は「データ処理装置」と題されて昭和62年5月28日に本
願出願人によって出題された特開昭62−133258号に記さ
れている。 上述の特許出願においては、一様構造のオブジェクト
(object)はオブジェクト・メモリ内でオブジェクト・
ポインタと自由に混合される。オブジェクトはメモリ内
のオブジェクト実行シーケンスのプロローグをアドレス
する。オブジェクト・ポインタは他のオブジェクトをア
ドレスする。オブジェクトは直接あるいは間接にアドレ
スされるかを問わず正しく評価される。ポインタはオブ
ジェクトあるいはオブジェクト・ポインタを選択的に指
示あるいはアドレスする。 オブジェクトがポインタにより直接アドレスされる
と、メモリ内のオブジェクトのアドレス先のアドレス先
がアドレスされ、これはオブジェクト実行シーケンスを
開始する。 オブジェクトが間接的にアドレスされる際には、ポイ
ンタはオブジェクト・ポインタをアドレスする。オブジ
ェクト・ポインタはオブジェクトをアドレスする。メモ
リ内のオブジェクトのアドレス先がアドレスされ、これ
はオブジェクト実行プロセスを開始させる。 更に詳細には、本装置に採用されているオブジェクト
実行プロセスは実行シーケンス中に自由にとり混ぜて含
まれているオブジェクトおよびオブジェクト・ポインタ
の双方を正しく自動的に評価するようになっている。オ
ブジェクトには一様構造が与えられているので、オブジ
ェクトはすべて、直接か間接にはかかわりなく実行され
る。異なる形式のオブジェクトもやはり一様構造であ
る。その各々は少くともプロローグ・アドレスと本体を
備えている。これらの二つの部分はメモリ内で隣接して
いる。プロローグ・アドレスはメモリ内の、オブジェク
トの実行を記述するプロローグをアドレスする。本体は
データである。オブジェクトのプロローグ・アドレス部
分が指されるすなわちアドレスされると、そのオブジェ
クト自体が指されるすなわち、アドレスされることにな
る。 オブジェクトは単独オブジェクトでもよいし、複合オ
ブジェクトでもよい。その本体が一つながりのオブジェ
クトおよび/またはオブジェクト・ポインタである場合
には、それは複合オブジェクトである。 オブジェクトの直接実行においては、ポインタは、イ
ンタープリタ・ポインタと呼ばれ、オブジェクトのプロ
ローグ・アドレスを指す。このプロローグ・アドレスは
メモリ内の、実行すべきオブジェクトを直接識別するオ
ブジェクト実行のプロローグをアドレスする。オブジェ
クトの間接実行においては、インタープリタ・ポインタ
はオブジェクト・ポインタを指す。このオブジェクト・
ポインタは実行すべきオブジェクトであるオブジェクト
のプロローグ・アドレスを指す、つまりアドレスする。
オブジェクト・ポインタはメモリ内のプロローグをアド
レスしないので、実行すべきオブジェクトを直接識別す
ることはない。プロローグ・アドレスはメモリ内のオブ
ジェクト実行のプロローグをアドレスする。 このようにしてオブジェクト間に各々がプロローグ・
アドレスと本体とを備える構造の一様性を与えることに
より、またメモリ内にオブジェクト実行のプロローグを
設けることにより、更に、インタープリタ・ポインタお
よびオブジェクト・ポインタがオブジェクトのプロロー
グ・アドレス部分を指すことによりそのオブジェクトを
選択的に識別することができることに加えて、インター
プリタ・ポインタがオブジェクト・ポインタを指すこと
ができるようなオブジェクト・ポインタおよびインター
プリタ・ポインタを使用することにより、直接または間
接オブジェクト実行に関するオブジェクトおよびオブジ
ェクト・ポインタの混在を最少限の処理ステップで許容
する簡単な技法が提供される。これによりプログラミン
グが減り、メモリが節約されて、処理のオーバーヘッド
がかなり減少する。 計算機の動作は表示スタック上のオブジェクトの評価
を中心として行なわれる。オブジェクトはデータ、名
前、または手続とすることができる。オブジェクトを評
価することはそのオブジェクトに関係する動作を行うこ
とを意味する。データ・オブジェクトは特別なことを行
わず(これらは最初のデータである)、名前オブジェク
トは他のオブジェクトを参照し、手続オブジェクトはそ
の定義によりオブジェクトおよび命令を処理する。 オブジェクトという語は、前述の特許出願および本明
細書で使用しているように、オペレーティング・システ
ムによりサポートされている、数学データおよび式、プ
ログラムなどを含む多数のデータ形式を表わしている。
オブジェクトはROM203および204、一時オブジェクト領
域302、またはユーザ変数領域310に存在することができ
る。 予約システム・メモリ領域301は残りのメモリ領域302
〜310を識別するメモリ・アドレスと、他の永久的に割
当てられたシステム・データを備えている。 一時オブジェクト領域302は本装置の使用中に作り出
された無名のオブジェクトを含んでいる。 リターン・スタック303は未完了の計算機動作を表わ
すオブジェクト連鎖を指すポインタを構成するアドレス
の後入れ先出しスタックである。このスタックはメモリ
の終り(高位アドレス)の方に向って大きくなる。 未使用メモリ304は現在使用していないメモリ領域で
ある。 データ・ポインタ・スタック305はオブジェクトを指
すポインタを構成するアドレスの後入れ先出しスタック
である。本発明のユーザ・インタフェースは、ポインタ
それ自信ではなく、スタック・ポインタにより指示され
たオブジェクトを人間が読み得る形で表示する。データ
・ポインタ・スタック305はメモリの始まり(低位アド
レス)の方に向って未使用メモリ内に成長していく。 コマンド行領域306はユーザが入力したコマンドおよ
びデータをテキスト文字の形態で蓄積するのに使用され
る動的に割当てられるメモリである。 一時環境領域307は主として中間結果およびパラメー
タ渡しのメモリとして使用される動的に割当てられるオ
ブジェクトのリンクト・リストである。 ループ・インデクス領域308はプログラム構成をルー
プする開始/停止インデクスをしまっておくのに使用さ
れる。 キー・マップ309はキーボードの各キーに現在対応付
けられている機能を定義する。 ユーザ変数領域310はユーザにより明示的に作り出さ
れた名前付きオブジェクト(変数)を含んでいる。 第4図は本発明の好ましい実施例によるROM203および
204の関連した構造を示す。特に、同図はシステム内の
代数演算子に対応するメモリ構造が格納されている代数
演算子領域402、表示されたメニューを表わすメモリ構
造が格納されているメニュー領域403、および共通に発
生するデータ定数に対応するメモリ構造が格納されてい
る定数領域404の存在を示している。 第5図は本発明の好ましい実施例によるROM203および
204のメニュー領域の構造を示す。特に、メニュー領域
はある固定された既知アドレスから始まる、メニュー・
データ構造の隣接連鎖(contiguous sequence)を備え
ている。メニュー・データ構造の構造に関する追加情報
を第6図ないし第8図に示してある。 第6図は本装置のメニューに対応するメモリ構造を示
す。特に、メニューはプロローグ・アドレス/形式定数
601で始まるが、これはメニュー構造の実行を開始する
実行可能なコードのアドレスを与えるとともにそれが先
頭を成すデータ構造の形式を定義するという二重の目的
に役立つ。プロローグ・アドレス/形式定数に続くの
は、最初のメニュー項目または最初のメニュー項目のア
ドレス602、その他のメニュー項目またはメニュー項目
のアドレス603、および最後のメニュー項目またはメニ
ュー項目のアドレス604である。最後のメニュー項目の
次に終了マーカー605がある。これはプロローグ・アド
レス/形式定数と対をなしており、またメニューの終り
を定義する。 第7図は本発明の好ましい実施例によるメニュー項目
の構造を示す。特に、メニュー項目はプロローグ・アド
レス/形式定数701で始まる。これはメニュー項目の実
行を開示する実行可能なコードのアドレスを発生すると
ともにそれが先頭を成すデータ構造の形式を定義すると
いう二重の目的に役立つ。プロローグ・アドレス/形式
定数に続くのはメニュー項目の本体の実行中に演算子が
メニュー・ラベルまたはメニュー・ラベル・アドレス70
3を実行から遮蔽する固定演算子アドレス702である。ユ
ーザに表示されるメニュー・ラベルはどのメニュー・オ
プションが現在アクティブで実行に利用できるかを示す
文字データの指示子を備えている。メニュー・ラベルま
たはメニュー・ラベル・アドレスの次にデータ処理コマ
ンド列704がある。これはこのメニュー項目の動作を定
義するのに役立つ。最後のデータ処理コマンドに続くの
は終了マーカ705である。これはプロローグ・アドレス
/形式定数と対をなしておりメニュー項目の終りを定義
する。 第8図は本発明の好ましい実施例にるメニュー・ラベ
ルのメモリ構造を示す。特にメニュー・ラベルはプロロ
ーグ・アドレス/形式定数801で始まる。これはメニュ
ー・ラベル構造の実行を開始する実行可能なコードのア
ドレスを与えるとともにそれが先頭を成すデータ構造の
形式を定義するという二重の目的を役立つ。プロローグ
・アドレス/形式定数に続いて長さ指示子802がある。
これはメニュー・ラベル構造の長さを決めるのに役立
つ。これに続いて文字データ803がある。これはこのメ
ニュー・ラベルが参照されているメニュー項目がアクテ
ィブであって実行に利用できるときユーザに表示すべき
文字を定義するのに役立つ。 第9図は本発明の好ましい実施例による代数演算子に
対応するメモリ構造を示す。特に、代数演算子はプロロ
ーグ・アドレス/形式定数901で始まる。これは代数演
算の実行を開示する実行可能なコードのアドレスを与え
るとともにそれが先頭を成すデータ構造の形式を定義す
るという二重の目的に役立つ。プロローグ・アドレス/
形式定数に続くのはその演算子が使用する引数の数を確
認し定義するのに役立つ固定された数の処理のうちの一
つのアドレス902である。このアドレスに続いて当該代
数演算子に特有でその演算を定義するのに役立つデータ
処理コマンド列903がある。最後に、終了マーカ904があ
る。これはプロローグ・アドレス/形式定数と対をな
し、当該代数演算子の終りを定義する。 第10図は本発明の好ましい実施例によるRAM205および
206の一方におけるここでの説明に関連する構造を示
す。特に、固定ロケーション1002に(矢印1009)で示し
たように)一時的に必要なデータ・オブジェクトのアド
レスを格納することができる一時環境領域1007の先頭の
現アドレスがある。第2の固定ロケーションには、デー
タ処理演算の暗黙の引数であるオブジェクトのアドレス
の暗黙裡にリンクされたリストから成る(矢印1008で示
したような)データ・ポインタ・スタック1006のアドレ
ス1003がある。第3の固定ロケーション1004にメニュー
領域内の現在のメニューとして定義されるメニューの序
数の表現が含まれている。一時オブジェクト領域1005は
データ処理演算により作り出されデータ・ポインタ・ス
タック上のあるいは一時環境領域内のアドレスにより参
照されるオブジェクトを含んでいる。 第11A図および第11B図は本発明の好ましい実施例の動
作中のデータ・ポインタ・スタックの状態の例を示す。
これらの例で、ユーザは式LN(2.3+1.0)を編集してい
るところである。ここで、LNはeを底とする定数(自然
対数)関数を示している。 式LN(2.3+1.0)は代数オブジェクトとして定義さ
れ、部分式(2.3+1.0)も同様に定義されている。代数
オブジェクトは数学的な形で入力されかつ表示される手
続(procedure)である。代数オブジェクトは数、変数
名、関数、および演算子を含むことができる。これらは
次のように定義される。 数:実数または複素数 変数名:任意の名前。現在その名前に対応する変数が
存在するか否かは問わない。このような名前が評価され
ると、それ自信を戻す。 関数:代数手続中で許容されているコマンド。関数は
正確に一つの結果を戻さなければならない。関数の一つ
または複数の引数が代数オブジェクトであれば、結果は
代数的である。大部分の関数は関数名の次に括弧内に入
った一つ以上の引数が付いたものとして現れる。たとえ
ばLN(X)。 演算子:一般にその引数を括弧で囲む必要のない関
数。これにはその名前がその引数の前に現われる前置
(prefix)演算子、たとえば単項負号や、その名前がそ
の二つの引数の間に現われるインフィクス演算子、たと
えば、+がある。 手続:手続は、評価されるときスタックから引数を取
らず丁度一つの引数がスタックに返し、かつ部分式の階
層に完全に細分することができる場合には、代数構文に
従う。部分式は数、名前、または関数およびその引数で
あってよい。階層とは各部分式がそれ自身ある関数の引
数であることが可能であることを意味する。たとえば、
式 LN(2.3+1.0) を考える。 この式は二つの数(2.3と1.0)を含んでいる。その各
々は単純な部分式と考えることができる。この式は二つ
の関数、+とLN、を含んでおり、この各々はその引数と
ともに部分式を定義している。+の引数は2.3と1.0であ
り、2.3+1.0はLNの引数である。階層はその演算子を備
えた式を通常の関数(ポーランド記法)LN(+2.3,1.
0))として書き直せば一層明らかになる。 式の中のオブジェクトあるいは部分式はその位置とレ
ベルで特徴づけられる。 オブジェクトの位置は式中で左から右へ数えることに
より決まる。たとえば、式LN(2.3+1.0)でLNの位置は
1であり、+の位置は2である。 部分式の位置は当該部分式を定義するオブジェクトの
位置である。同じ例で、LN(2.3+1.0)の位置は、位置
1にあるLNで定義されるので、1である。 代数式内のオブジェクトのレベルは、式が純粋に関数
形で書かれている場合には、当該オブジェクトを囲む括
弧の対の数である。たとえば、式LN(2.3+1.0)で、LN
のレベルは0であり、+のレベルは1であり、2.3と1.0
のレベルは2である。各代数式はレベル0のオブジェク
トを丁度ひとつ有している。 上記の式の括弧を除き、関数をその引数の後に置くよ
うにもう一度書きなおすことにより、その逆ポーランド
記法の形が得られる。すなわち、 2.3,1.0+LN これは代数構文を備えたプログラムを定義しており、対
応する代数オブジェクトと実際上等価である。 式LN(2.3+1.0)において、今、部分式2.3+1.0が更
に編集するため選択されている。式を入力し選択された
部分式の形と調和する操作処理メニューを要求する動作
コマンドは既に実行されていると仮定する。これらにつ
いては後に述べる。第11A図に示してあるのはこれらの
条件下のデータ・ポインタ・スタックの状態である。こ
こにおいて、データ・ポインタ・スタックのトップ1101
には整数4のアドレスが入っている。この整数4の表現
はROM203,204の定数領域に入っている。データ・ポイン
タ.スタックのこの最初の要素は編集中の式の要素、L
N、2.3、+、1.0、の全個数を示す。スタック内のその
次には、式の最外部の演算子、この場合は自然対数に対
応する演算子LN、のアドレス1102である。これはRAM内
のデータ・ポインタ・スタック中の、整数1で定義され
る、演算子の第1のアドレス位置を占めている。この先
には与えられた式における次位の外側演算子、この場合
の演算子は加算である、+のアドレス1103がある。これ
はRAM内のデータ・ポインタ・スタック中の整数2で定
義される演算子の第2のアドレス位置を占めている。各
演算子に対する引数の数は先に示した代数演算子の構造
を使用して演算子のアドレスから計算することができる
ことに注意すること。この場合の引数は2.3と1.0であ
る。加算演算子のアドレスに続くのは加算演算子に対す
る引数である。この場合左側の引数は数2.3を表現する
もののアドレス1104によって表わされる。この数は、特
に普通の数というわけではないから、RAM内の一時対象
領域に作り出されている。加算の右側の引数は数1.0を
表現するもののアドレス(1105)によって表わされる。
この数は共通に使用される数であるから、ROM内の定数
領域に置かれている。 この状況において、一時環境領域は、計算可能なロケ
ーションに、整数2を表現するもののアドレスを含んで
いる。この整数は選択された部分式2.3+1.0の最も外側
の演算子+のアドレスである第2の演算子のアドレスの
データ・ポインタ・スタック内のロケーションを示すの
で、結局この整数は選択された部分式を示す。この場
合、この整数は式内の第2の演算のアドレス、すなわ
ち、第2の演算子である加算演算子+のアドレスを示す
2である。 第11B図は、この場合加算演算の二つの引数2.3と1.0
とを交換することになる、ユーザが選択した操作である
交換操作後のデータ・ポインタ・スタックの状態を示
す。この操作の結果、加算演算の新しい左側の引数が数
1.0を表現するもののアドレス1104によって表わされ、
新しい右側の引数が数2.3を表現するもののアドレス110
5によって表わされている。この編集の結果得られる、
選択された部分式はしたがって1.0+2.3であり、得られ
る編集後の式はLN(1.0+2.3)である。 式LN(2.3+1.0)を本装置に入力し編集する特定のス
テップを第11C図から第11Q図までを参照して以下に説明
する。 1. ONと書かれたキー111を押す。表示装置は第11C図の
ように見える。表示装置上の4本の行は上から下へ降順
に両面の差に番号が付けられる。これは即時入力モード
である。 2. ′と書かれたキー112を押す。表示装置は第11D図の
ように見える。即時入力モードでは、これによって代数
入力モードが始まる、すなわち起動される。代数カーソ
ル14は表示画面の左下隅(行1)にある。このモードで
は、コマンド・キーを押すとそのコマンドが実行され
る。関数キーを押すとその関数名がコマンド行に与えら
れる。関数がその引数を、LN(2.3+1.0)のように、括
弧内に取る場合には、開き括弧も加えられる。 3. シフト・キー107とシフトされたLOGS113キーを押
す。表示装置は第11E図のように見える。個々のメニュ
ー・ラベル15は行1に表示される。代数カーソル14は行
2に上げられ、行1から4までが上にシフトされ、番号
の付いた行1と2が画面上に残る。 4. LNを押す。これはメニュー表示のラベルLNの直下の
メニュー・キー104である。表示装置は第11F図のように
なる。右側に括弧の付いた関数LNが行2に出現し、代数
カーソルが右にシフトされる。 5. 今度は対応する文字が記されたキー順に押すことに
より式2.3+1.0を追加する。これらのステップに対応す
る表示は第11G図、第11H図、第11I図のように見える。
メニュー・ラベルは不変のままである。 6. 次にシフト・キー107とシフトされたキー116を押
す。これにより式の終りに括弧が付加され(第11J
図)、これで量(2.3+1.0)が完結する。 7. 今度はENTERと書かれたキー105を押す。これによ
り、第11K図に示すように、式が表示装置上の右側とシ
フトされ、この式が表示スタックの最下部に入る。カー
ソル14は消える。 8. ALGEBRAと書かれたキー117をシフトして押す。この
動作ははじめシフトキー107を押し、次にシフトされたA
LGEBRAキー117を押すことによりなされる。これにより
メニューに代数演算が持込まれ、編集すべき式の編集動
作が選択できるようになる。選択されたメニューのメニ
ュー・ラベルが表示される。メニュー・ラベルは第11L
図に示すように変る。 9. 第11M図に、多機能キー104が作動される前の表示が
示してある。実行のために選択された動作はFORMであ
る。 10. 第11N図は動作FORMを実行した後の表示を示す。完
全なLN(2.3+1.0)が画面の左に表示され、新しいカー
ソル14がLNの上に来る。これは代数編集カーソル(FORM
カーソル)である。メニューは再度変化して、選択され
た演算子、この場合+、に対してカーソルの操作をさせ
る4個のメニュー・ラベルを持つ表示になる。 FORMは数学の標準規則にしたがって代数式または方程
式の並べ替えができるようにする対話型の式エディダで
ある。FORMの数学操作はすべて恒等操作、つまり等価な
式への変換である。ある式Xをそれと等価な式Yへ変換
するとは、以下の説明からも明らかなように、X=Yが
恒等式になるように変換するということである。周知の
ように、X=Yが恒等式であるとは以下の条件が成立す
ることである: ・X、Yがともに定数である場合には、定数Xが定数Y
に等しい; ・XとYのいずれかが変数x0、x1、x2、・・・、xnを含
んでいる場合には、これらの変数に任意の値a0、a1、a
2、・・・、anを代入してもX=Yが成立する。 この恒等操作(等価変換操作)は、具体的には、式中
の部分式に表T4、T5、T6、T7、T8、T9、T10、あるいはT
11中の変換規則のうちの当該部分式の形式に適合するも
のを適用することによって行われる。たとえば式A+B
+に対して表T5(第1和メニュー)中のラベル<−>で
表される交換操作を適用することによって、B+Aとい
う形の等価な式への変換を行うことができる。 FORMを実行すると、通常のスタック表示が代数オブジ
ェクトの特別な表示で置換され、また表示の最下部のラ
ベルにFORM操作のメニューが表示される。特別な表示は
最初表示装置の行2(最上部から2番目)で始まり、対
象が1行で表示するには流すぎる場合には、行3に継続
する。オブジェクトが3表示行以上を必要とする場合に
は、FORMカーソルをオブジェクト内を動かして残りの部
分を見る必要がある。 FORMを出て他の計算機演算を続けるには、ONと書かれ
たキーを押す。 FORMカーソルは式表示内の個々のオブジェクトを強調
表示する。強調表示されたオブジェクトは黒い背景上の
白抜き文字として見える。カーソルは強調表示されてい
る選択されたオブジェクト、および選択されたオブジェ
クトともしあればその引数とから成る部分式である選択
された部分式の両者を識別する。 矢印←または→の下にあるメニュー・キーを押せば、
カーソルを式の中で左または右に動かすことができる。
カーソルが動く際には、それはオブジェクトからオブジ
ェクトへ直接動き、間にある括弧は飛越す。カーソルは
常に表示装置上の行2にある。カーソルを行2の右端を
過ぎて動かそうとすると、式は表示装置上で1行スクロ
ール・アップし、カーソルは行2の左端まで後戻りす
る。同様に、カーソルを行2の左端を過ぎて動かそうと
すると、式は1行スクロール・ダウンし、カーソルは行
2の右端まで動く。 すべての演算子の優位順位を明確にするために必要に
応じて括弧を付加挿入することにより通常のスタック代
数オブジェクト表示とは異った表示になる。この特徴は
カーソルによって示されるように、選択されたオブジェ
クトと対応する選択された部分式を識別するのに役立
つ。このことは、FORMメニューの操作はすべて選択され
た部分式で働くので、重要である。 FORMがアクティブである間、特別な一組の操作をメニ
ュー・キーとして利用することができる。最初のメニュ
ー(部分式選択メニュー)はすべての部分式に共通な6
個の操作を備えている。他の操作メニューはNEXTキーお
よびPREVキーにより利用できるようになる。これら他の
メニューの内容は選択された部分式にしたがって変る。
選択された部分式に適用し得る操作だけが示される。 最初の6個のメニュー・キーはENTERキーを押すこと
によりいつでも再び現われるようにすることができる。 11. ここで右向きの矢印の下にあるメニュー・キーを
2回作動する。これにより代数カーソル14がLNからまず
2.3、次に+の位置まで進む。この最後の位置を第11O図
に示してある。 12. 第11P図に示すNEXTと書かれたキー109を押して数
2.3と1をとりかえることができるメニュー・ラベルを
持つメニューを持って来る。NEXTキー109を作動するご
とにメニュー群内の異なるメニューから異なる組合せの
メニュー・ラベルを、すべてが表示されてしまうまで表
示する。すべてが表示されてしまうとメニュー表示は再
循環する。グループ内のメニューには式に関して許容で
きる数学操作と調和するものだけが含まれている。ユー
ザは式の所望の操作に適切なメニューを選択する。表示
されているメニューには、左から2番目のメニュー・ラ
ベル位置に、左右両方向を差す矢印を持つ表示がある。 13. 第11Q図に見るように、両端矢印のメニュー・ラベ
ルの直下のメニュー・キー104を作動すると、2つの数
の位置が入れかわる、すなわち交換される。 第12A図、第12B図および第12C図は本発明による代数
式の自動化したエラー皆無編集に関係する処理の流れ図
を示す。ユーザが入力した代数式を第11A図および第11B
図に示すように計算機で逆ポーランド形に変換するプロ
セスはデータ処理の技術では周知であり、従って本明細
書には示してない。逆ポーランド記法について式LN(2.
3+1.0)の処理に関して上に説明した。 第12A図の流れ図は入力ブロック1201で始まる。これ
は、ユーザが代数式を入力した後に、あるいはそうでな
ければ代数式を計算させてから、更にユーザが、第11A
図〜第11Q図に関して説明したように、本発明の実施例
を実現させる一連の操作を実行してから、作動する。 最初の処理ブロック1202(FORMのステップ9)で、選
択された部分式の指示子つまりカーソルは(第11N図か
ら明らかなように)編集されている式の最も左の演算子
(LN)に初期設定される。 次の処理ブロック1203では、現メニューのセレクタは
(第11N図から明らかなように)部分式選択メニューを
選択するように初期設定される。 次の処理ブロック1204で現メニュー・ラベルの指示子
と、被選択部分式が指示されている編集中の式がユーザ
に表示される。本発明の好ましい実施例において、選択
された部分式の最も外側の演算子(第11N図および第11A
図〜第11Q図のLN)は常に表示部の第2行に表示され、
式の残りの部分に対して反転された形示形式で表示され
る。そうでない場合、式のうちの表示装置の上部3行に
入る限りの部分が示される。本発明の好ましい実施例で
は、指示子の付いたメニュー・ラベルが表示部の最下行
に表示される。 処理ブロック1205はユーザがデータ処理装置に入力し
て処理コマンドを呼出すと活動を始めるループである。
好ましい実施例では、この処理は装置の右前面パネルに
すべて存在する多機能キー104あるいは特殊キー(第1
図の105、107、109、または111)の一つを押すことから
成る。 判定ブロック1206で、ユーザの入力が編集プログラム
を抜け出す要求(第1B図のキー111)として定義されて
いるものと合致するか否かの確認が行われる。合致した
場合には、プログラムは出口ブロック1207を通って出
る。そうでない場合には、結合子C2を経て第12B図の判
断ブロック1208に続く。 判断ブロック1208で、ユーザの入力が部分式選択メニ
ューに戻る要求(第1B図のキー105)として定義されて
いるものと合致するか否かの確認が行われる。合致して
いる場合には、プログラムは処理ブロック1209に進む。
ここでは現メニュー・セレクタが部分式セレクタ・メニ
ューを選択するようにセットさる。次にプログラムは結
合子C1を介して第12A図の処理ブロック1204に進む。 合致していない場合には、プログラムは判断ブロック
1210に進み、ユーザの入力が現メニューを次の適切なメ
ニューに変更する要求(第1B図のキー109)として定義
されているものと合致するか否かの確認が行われる。合
致している場合には、プログラムは処理ブロック1211に
進む。合致していない場合には、プログラムは判断ブロ
ック1212に進む。 処理ブロック1211で、プログラムは、表T1に示した、
次メニュー遷移表を利用して、現メニューの次の適切な
メニューと選択された部分式の形態から現メニュー・セ
レクタをセットする。次にプログラムは結合子C1を経て
第12A図の処理ブロック1204に進む。 判断ブロック1212で、ユーザの入力が現メニューを以
前の適切なメニューに変更する要求(第1図のキー10
7、続いてキー109)として定義されているものと合致す
るか否かの判断が行われる。合致している場合には、プ
ログラムは処理ブロック1213に進む。合致しない場合に
は、プログラムは結合子C3を経て第12C図の処理ブロッ
ク1214に進む。 処理ブロック1213で、プログラムは後述の前メニュー
遷移表T2を利用して、現メニューと選択された部分式の
形態から、先行する適切なメニューを定め、これにより
現メニュー・セレクタを設定する。次にプログラムは結
合子C1を経て第12A図の処理ブロック1204に進む。 第12C図の処理ブロック1214で、その指示子が表示さ
れており且つユーザの入力に対応している現メニューの
メニュー項目のデータ処理コマンドが実行される(第1
図のキー104)。次にプログラムは結合子C1を経由して
第12A図の処理ブロック1204に進む。 第13図は本発明の好ましい実施例に使用されるメニュ
ー項目のデータ処理コマンドのフローチャートを示して
おり、この処理は数学の規則に合致する仕方で部分式の
変換を行う。この一般形は部分式を変換する各メニュー
項目に適用できるが、細目は実現すべき正確な変換によ
って変る。処理シーケンスへはスタート・ブロック1301
を通して入る。これは第12C図の処理ブロック1214から
呼出される。判断ブロック1302では、選択された部分式
の構造がこの処理シーケンスで実現される特定の操作の
テンプレートに合致しているか否かの確認が行われる。
これらテンプレートについては表T3ないし表T12の説明
の細に更に論じられる。選択された部分式がテンプレー
トと合致しない場合には、プロセスはリターン1304を経
由して呼出し元のプログラムに戻る。選択された部分式
がテンプレートと合致する場合には、プログラムは処理
ブロック1303に進む。 処理ブロック1303は演算の性格にしたがって部分式の
変換を行う。これら変換については表T3ないし表T12の
説明の際に更に完全に説明する。 次にプログラムは処理ブロック1305に進み、選択され
た部分式を新しく変換された部分式に対応させる。次に
プログラムは処理ブロック1306に進む。 処理ブロック1306で現メニュー・セレクタが部分式選
択メニューに対応づけられ、処理ブロック1307では、現
メニューは、今や選択された部分式となっている新しく
変換された部分式に適切な次のメニューに設定しなおさ
れる。 処理ブロック1307が終了したらプログラムはリターン
1308を経由して呼出し元へ戻る。 第14図のフローチャートは「部分式選択メニュー」
(表T3)内のメニュー項目「カーソルを左へ」の動作を
示す。処理シーケンスへの入口はスタート・ブロック14
01を通してである。このブロックは現メニューが部分式
選択メニューであり且つユーザがこの動作を行うことへ
の要求を通知する入力を与えたとき第12C図の処理ブロ
ック1214から呼出される。プロセスは選択された部分式
が編集中の式の最も左の部分式であるか否かの判断を行
う判断ブロック1402に進む。それが最も左の部分式の場
合は、プロセスはリターン・ブロック1403を経て呼出し
元に戻る。最も左ではなかった場合には、プロセスは処
理ブロック1404に進む。処理ブロック1404で、選択され
た部分式の左隣の部分式が求められ、部分式選択指示子
が、この部分式と一致するようにセットされる。次にプ
ロセスはリターン・ブロック1405を経て呼出し部に戻
る。 第15図の流れ図は部分式選択メニュー(表T3)のメニ
ュー項目「カーソルを右へ」の動作を示す。この処理シ
ーケンスへはスタート・ブロック1501を通して入る。こ
のブロックは現メニューが部分式選択メニューであり且
つユーザがこの動作を行うことを要求する入力を通知し
たとき第12C図の処理ブロック1214から呼出される。プ
ロセスは判断ブロック1502に進み、選択された部分式が
編集中の式の最も右側の部分式であるか否かの判断が行
われる。これが最も右側にある場合には、プロセスはリ
ターン・ブロック1503を経て呼出し元に戻る。最も右側
ではない場合には、プロセスは処理ブロック1504に進
む。処理ブロック1504は、選択された部分式の右隣の部
分式を求め、部分式選択指示子がこの部分式に対応づけ
られる。次にプロセスはリターン・ブロック1505を経由
して呼出し元に戻る。 下の表T1およびT2はそれぞれ次メニュー遷移表および
前メニュー選択表を示している。これらはそれぞれ処理
ブロック1211および1213で使用される。ここに示した各
表「現メニュー」列(1)と「選択された部分式の形
態」行(2)を有している。現メニュー列の各エントリ
は本発明実施例の動作中、可能な現メニューの一つに対
応する。これらメニューについてのこれ以上の事項は表
T3ないし表T13と下記のこれらに関する説明に述べられ
ている。 選択部分式の形態の行の各エントリには、代数式の、
ひとつのクラスの、代数形での概略例示が与えられてい
る。各エントリで、単一の文字AとBは任意の式を表わ
している。他のエントリは次のとうりである。 A+B−二つの式の和 A−B−二つの式の差 A*B−二つの式の積 A/B−二つの式の商 INV(A)−式の逆数 −(A)−式の符号の反転 LOG(A)−式の10を底とする対数 LN(A)−式のeを底とする対数 EXP(A)−式のeを底とする逆対数 ALOG(A)−式の10を底とする逆対数 をB乗する その他−上のどのクラスにも入らない式 第12B図の処理ブロック1211と1213で、選択された部
分式がこれらのクラスのどれに該当するかに関する判断
が行われる。次に、この判断を現メニューとともに用い
ることにより、表の結果領域(3)に示される選択され
た部分式に適切な次のまたは前のメニューを求める結果
領域中の空白になっている部分は、実際には起らない遷
移に対応する。 下の表T3ないしT12は本発明の一実施例のメニュー、
メニュー項目ラベルおよびメニュー項目動作についての
より詳細な説明を示している。これらは本発明に固有な
すべての可能性の包括的な説明であることを意味するも
のではなく、単にこのような妥当な部分集合を示すに過
ぎない。 表T3ないしT12の各々はメニュー、またはその一部分
を項目別に記し、各メニュー項目の指示子(ラベル列)
のために表示される文字への近似を各メニュー項目の動
作についての追加情報とともにその詳細を記している。 表T3は部分式選択メニュー内のメニュー項目のうちの
三つを詳細している。すなわち項目「カーソルを左
へ」、項目「カーソルを右へ」および項目「レベル」で
ある。最初の二つの動作はそれぞれ第14図および第15図
に示してある。 残りの表T4ないし表T12はその項目が標準の数学規則
にしたがって選択された部分式を変換するメニューに対
応する。その項目に対するラベルに関する各メニュー細
目の各項目(ラベル列)について、変換に対する共通名
称(名前列)、(処理ブロック1302によるような)変換
を進めるために合致をとるべきテンプレー(部分式の形
態の列)、および変換された部分式の最終的な形(結果
の形態の列)が含まれている。 部分式の形態の列および結果の形態の列の双方におい
て、上の表T1および表T2の説明に関して詳記した規約の
他に、次の規約を採用した。 −単一の文字CおよびDも任意の式を表わす。 −一方の列または両方の列で複数の場所に繰り返えされ
る単一文字は同一の部分式を表わす。 部分式の書かれた形態は逆ポーランド記法とは逆に代
数的で、本開示を読みやすくしている。 部分式が部分式形態の列に詳述したテンプレートと合
致するか否かを確認する処理シーケンスを作る手順は当
技術では周知でありここではこれ以上詳述しないことに
する。 結果の形態の列で詳記した部分式を変換する処理シー
ケンスを作る手順は当技術では周知であり、ここではこ
れ以上詳述しないことにする。 〔発明の効果〕 以上詳細に説明したように、本発明によれば式を数学
的に等価なものに変換する操作を間違いなくかつすばや
く行なうことができる。
細には、改良された代数式処理能力を提供するデータ処
理装置に関する。 〔従来技術およびその問題点〕 科学計算機は典型的には手持ち型または卓上型の装置
であって、オペレータから入力データと動作命令とを受
取る、人手で作動できるキーボードと、結果をオペレー
タに伝える可視表示とを備えている。もっと近頃の開発
の成果は簡単な数よりも複雑なデータ構造を入力し、表
示し、編集することができる英数字表示の設備である。
特に、これは方程式や代数式を入力し、表示し、且つ編
集することができる。 これら科学計算機が次第に複雑化したことはデータ構
造が一層多様化する傾向と相俟ってこれらデータ構造の
編集プロセスを自動化する原動力となった。以前の計算
機は方程式や代数式を編集するのにいわゆるキャラクタ
・エディタを使用しており、オペレータは方程式または
式の表示形態中の個別の文字あるいは文字群を削除し、
挿入し、または重ね書きすることができる。 キャラクタ・エディタはオペレータの入力エラーを修
正するには有用且つ重要であるが、不適切な形態表現さ
れた、数字的には正しい式を修正する目的には甚だ不充
分である。一例として、 (alog(2N)+1)−alog(2N)および (alog(2N)−alog(2N))+1 を考える。ここでalogは普通の逆対数関数であり、Nは
計算機内の有効数字の桁数である。これらの式は形式的
には等価であるが、計算機で評価するときは異なる結果
が得られ、2番目の形だけが正しい結果を与える。した
がって、キャラクタ・エディタの主な欠点はオペレータ
がかなりな努力を払わなければ第1の式を第2の式に変
換することができず、且つ式中にエラーが入って来る可
能性があるということである。 この種の編集に関するキャラクタ・エディタの別の欠
点は式を形式的に等価な式に変換するプロセスにおいて
オペレータに対する指針が欠除しているということであ
る。 〔発明の目的〕 本発明の目的は上述した従来技術の問題点を解消し、
数式等の編集が便利なデータ処理装置を提供することを
目的とする。 〔発明の概要〕 本発明の一実施例によれば、動作シーケンスを改良す
るとともに代数式処理能力を改良して、入力された代数
式または計算された代数式を編集する際のオペレータと
機械との間のインターフェースを高度なものとしたデー
タ処理装置が与えられる。本装置はオペレータにどの数
学的に正しい代数処理が編集中の式の現在選択されてい
る部分式と調和しているかを示す可視フィードバックを
行う。本装置はオペレータの誤りの可能性が無くなるよ
うに代数処理を選択し、実行する能力を提供する。 本発明は数種の形態で実施することができる。本発明
を実施する一つの形態では、どんな部分式をも選択する
ことができ、こうして選択した部分式をその部分式の表
示形態を変更して表示するような動作シーケンスが行な
われる。 本発明を実施する第2の形態では、編集中の式中の現
在選択されている部分式と調和する代数処理の指標を備
えているメニュー・ラベルを表示する動作シーケンスが
行なわれる。 本発明を実施する第3の形態では、編集中の式の現在
選択されている部分式と調和する代数処理の指標を備え
ているメニュー・ラベルが表示されたことに応じて代数
処理を選択することができ、選択された処理はオペレー
タの誤りの可能性が無いように行われ、処理の結果が表
示され、以後の編集に利用できるような動作シーケンス
が行なわれる。 〔発明の実施例〕 第1A図および第1B図に示したデータ処理装置100は第
1部分101(左半分)と第2部分102(右半分)は備えて
いる。第1部分101は複数のキーを備え、これらのうち
には英数字記号を入力するキーが含まれている。 第2部分102は表示装置103を備えている。好ましい実
施例では、表示装置103は液晶のドット・アレイ表示装
置であって、それぞれ23字から成る4行を表示する。表
示装置103は告知(annunciator)用の行106をも備えて
おり、これは本装置の各種の動作モードを表示するのに
使用される。 第2部分102は図に示してあるような数字キーおよび
関数キーを含む複数のキーも備えている。RNTERと書か
れたキー105は英数字の文字入力を終結し、入力された
ものの処理を開始するのに使用される。本装置の動作中
にこのキーを押すと、部分式選択メニューに戻す要求信
号を発する(第12B図)。シフト・キー107は次に押され
たキーに、そのキーの上方に記入された別の定義を実行
させる作用をする。 第2部分102は1列に並んだ6個の多機能キー104も備
えている。これらのキーは変数の関数あるいは数値と関
連づけることができる。多機能キーの現在の定義は表示
装置の最下文字行に、各キーの直上にメニュー・ラベル
を表示することによって示される。 第1および第2部分101、102は関連する計算機機能群
(メニュー)を、夫々6個の要素からなる部分群に分け
て多機能キー104に割当てる各種のキーを備えている。
これらのキーにはユーザ・メニュー・キー108が含まれ
ている。このキーはユーザ変数を自動的に多機能キー10
4に割当てる。NEXTと書かれたキー109は多機能キーの割
当てを現メニュー中の次の6個の機能の群に進める。本
装置の動作中、このキーを押すと編集対象の式の選択さ
れた部分式に適切な次のメニューにメニューを進めると
いう要求信号を発する。このキー109の機能をシフトす
ると前の6個の機能が再び活性化される。すなわち、本
装置の動作中、シフト・キーを押し、続いてキー109を
押すと、編集される式の選択された部分式に適切な前の
メニューにメニューを変更する要求信号が発せられる。
各メニューが選択されると、そのメニュー・ラベルが表
示される。 第2部分102は赤外線発光ダイオード110も備えてい
る。これはデータを対応する受信装置、典型的にはプリ
ンタに伝えるのに使用される。 ONと書かれたキー111はユーザが計算機を動作させた
り止めたりすることができるようにするとともに計算機
が動作しているとき計算機の正常動作を中断することが
できるようにする特別な割込みキーである。本装置の動
作中、このキーを押すとエディット動作から出るように
要求する信号を発する。 第2図はデータ処理装置100の内部のチップ・レベル
の構造を示す。中央処理装置(CPU)201、2個の読出し
専用メモリ(ROM)203と204、および2個のディスプレ
イ・ドライバRAM複合体205と206がメイン・バス200と結
合して示してある。各ディスプレイ・ドライバは液晶の
表示装置103の、それぞれ半分207と208を制御する。キ
ーボード202はCPU201と結合して示してある。キーボー
ド202はキーの二つの部分101と102(第1A図、第1B図)
を備えることができるが、タッチ検知スクリーンのよう
な別の形態のデータ入力を表わすこともできる。 第3図は本装置のユーザ・インタフェースをサポート
するためROM203および204に含まれているオペレーティ
ング・システムによるRAM205および206の使い方を示す
マップである。このオペレーティング・システムの基本
は「データ処理装置」と題されて昭和62年5月28日に本
願出願人によって出題された特開昭62−133258号に記さ
れている。 上述の特許出願においては、一様構造のオブジェクト
(object)はオブジェクト・メモリ内でオブジェクト・
ポインタと自由に混合される。オブジェクトはメモリ内
のオブジェクト実行シーケンスのプロローグをアドレス
する。オブジェクト・ポインタは他のオブジェクトをア
ドレスする。オブジェクトは直接あるいは間接にアドレ
スされるかを問わず正しく評価される。ポインタはオブ
ジェクトあるいはオブジェクト・ポインタを選択的に指
示あるいはアドレスする。 オブジェクトがポインタにより直接アドレスされる
と、メモリ内のオブジェクトのアドレス先のアドレス先
がアドレスされ、これはオブジェクト実行シーケンスを
開始する。 オブジェクトが間接的にアドレスされる際には、ポイ
ンタはオブジェクト・ポインタをアドレスする。オブジ
ェクト・ポインタはオブジェクトをアドレスする。メモ
リ内のオブジェクトのアドレス先がアドレスされ、これ
はオブジェクト実行プロセスを開始させる。 更に詳細には、本装置に採用されているオブジェクト
実行プロセスは実行シーケンス中に自由にとり混ぜて含
まれているオブジェクトおよびオブジェクト・ポインタ
の双方を正しく自動的に評価するようになっている。オ
ブジェクトには一様構造が与えられているので、オブジ
ェクトはすべて、直接か間接にはかかわりなく実行され
る。異なる形式のオブジェクトもやはり一様構造であ
る。その各々は少くともプロローグ・アドレスと本体を
備えている。これらの二つの部分はメモリ内で隣接して
いる。プロローグ・アドレスはメモリ内の、オブジェク
トの実行を記述するプロローグをアドレスする。本体は
データである。オブジェクトのプロローグ・アドレス部
分が指されるすなわちアドレスされると、そのオブジェ
クト自体が指されるすなわち、アドレスされることにな
る。 オブジェクトは単独オブジェクトでもよいし、複合オ
ブジェクトでもよい。その本体が一つながりのオブジェ
クトおよび/またはオブジェクト・ポインタである場合
には、それは複合オブジェクトである。 オブジェクトの直接実行においては、ポインタは、イ
ンタープリタ・ポインタと呼ばれ、オブジェクトのプロ
ローグ・アドレスを指す。このプロローグ・アドレスは
メモリ内の、実行すべきオブジェクトを直接識別するオ
ブジェクト実行のプロローグをアドレスする。オブジェ
クトの間接実行においては、インタープリタ・ポインタ
はオブジェクト・ポインタを指す。このオブジェクト・
ポインタは実行すべきオブジェクトであるオブジェクト
のプロローグ・アドレスを指す、つまりアドレスする。
オブジェクト・ポインタはメモリ内のプロローグをアド
レスしないので、実行すべきオブジェクトを直接識別す
ることはない。プロローグ・アドレスはメモリ内のオブ
ジェクト実行のプロローグをアドレスする。 このようにしてオブジェクト間に各々がプロローグ・
アドレスと本体とを備える構造の一様性を与えることに
より、またメモリ内にオブジェクト実行のプロローグを
設けることにより、更に、インタープリタ・ポインタお
よびオブジェクト・ポインタがオブジェクトのプロロー
グ・アドレス部分を指すことによりそのオブジェクトを
選択的に識別することができることに加えて、インター
プリタ・ポインタがオブジェクト・ポインタを指すこと
ができるようなオブジェクト・ポインタおよびインター
プリタ・ポインタを使用することにより、直接または間
接オブジェクト実行に関するオブジェクトおよびオブジ
ェクト・ポインタの混在を最少限の処理ステップで許容
する簡単な技法が提供される。これによりプログラミン
グが減り、メモリが節約されて、処理のオーバーヘッド
がかなり減少する。 計算機の動作は表示スタック上のオブジェクトの評価
を中心として行なわれる。オブジェクトはデータ、名
前、または手続とすることができる。オブジェクトを評
価することはそのオブジェクトに関係する動作を行うこ
とを意味する。データ・オブジェクトは特別なことを行
わず(これらは最初のデータである)、名前オブジェク
トは他のオブジェクトを参照し、手続オブジェクトはそ
の定義によりオブジェクトおよび命令を処理する。 オブジェクトという語は、前述の特許出願および本明
細書で使用しているように、オペレーティング・システ
ムによりサポートされている、数学データおよび式、プ
ログラムなどを含む多数のデータ形式を表わしている。
オブジェクトはROM203および204、一時オブジェクト領
域302、またはユーザ変数領域310に存在することができ
る。 予約システム・メモリ領域301は残りのメモリ領域302
〜310を識別するメモリ・アドレスと、他の永久的に割
当てられたシステム・データを備えている。 一時オブジェクト領域302は本装置の使用中に作り出
された無名のオブジェクトを含んでいる。 リターン・スタック303は未完了の計算機動作を表わ
すオブジェクト連鎖を指すポインタを構成するアドレス
の後入れ先出しスタックである。このスタックはメモリ
の終り(高位アドレス)の方に向って大きくなる。 未使用メモリ304は現在使用していないメモリ領域で
ある。 データ・ポインタ・スタック305はオブジェクトを指
すポインタを構成するアドレスの後入れ先出しスタック
である。本発明のユーザ・インタフェースは、ポインタ
それ自信ではなく、スタック・ポインタにより指示され
たオブジェクトを人間が読み得る形で表示する。データ
・ポインタ・スタック305はメモリの始まり(低位アド
レス)の方に向って未使用メモリ内に成長していく。 コマンド行領域306はユーザが入力したコマンドおよ
びデータをテキスト文字の形態で蓄積するのに使用され
る動的に割当てられるメモリである。 一時環境領域307は主として中間結果およびパラメー
タ渡しのメモリとして使用される動的に割当てられるオ
ブジェクトのリンクト・リストである。 ループ・インデクス領域308はプログラム構成をルー
プする開始/停止インデクスをしまっておくのに使用さ
れる。 キー・マップ309はキーボードの各キーに現在対応付
けられている機能を定義する。 ユーザ変数領域310はユーザにより明示的に作り出さ
れた名前付きオブジェクト(変数)を含んでいる。 第4図は本発明の好ましい実施例によるROM203および
204の関連した構造を示す。特に、同図はシステム内の
代数演算子に対応するメモリ構造が格納されている代数
演算子領域402、表示されたメニューを表わすメモリ構
造が格納されているメニュー領域403、および共通に発
生するデータ定数に対応するメモリ構造が格納されてい
る定数領域404の存在を示している。 第5図は本発明の好ましい実施例によるROM203および
204のメニュー領域の構造を示す。特に、メニュー領域
はある固定された既知アドレスから始まる、メニュー・
データ構造の隣接連鎖(contiguous sequence)を備え
ている。メニュー・データ構造の構造に関する追加情報
を第6図ないし第8図に示してある。 第6図は本装置のメニューに対応するメモリ構造を示
す。特に、メニューはプロローグ・アドレス/形式定数
601で始まるが、これはメニュー構造の実行を開始する
実行可能なコードのアドレスを与えるとともにそれが先
頭を成すデータ構造の形式を定義するという二重の目的
に役立つ。プロローグ・アドレス/形式定数に続くの
は、最初のメニュー項目または最初のメニュー項目のア
ドレス602、その他のメニュー項目またはメニュー項目
のアドレス603、および最後のメニュー項目またはメニ
ュー項目のアドレス604である。最後のメニュー項目の
次に終了マーカー605がある。これはプロローグ・アド
レス/形式定数と対をなしており、またメニューの終り
を定義する。 第7図は本発明の好ましい実施例によるメニュー項目
の構造を示す。特に、メニュー項目はプロローグ・アド
レス/形式定数701で始まる。これはメニュー項目の実
行を開示する実行可能なコードのアドレスを発生すると
ともにそれが先頭を成すデータ構造の形式を定義すると
いう二重の目的に役立つ。プロローグ・アドレス/形式
定数に続くのはメニュー項目の本体の実行中に演算子が
メニュー・ラベルまたはメニュー・ラベル・アドレス70
3を実行から遮蔽する固定演算子アドレス702である。ユ
ーザに表示されるメニュー・ラベルはどのメニュー・オ
プションが現在アクティブで実行に利用できるかを示す
文字データの指示子を備えている。メニュー・ラベルま
たはメニュー・ラベル・アドレスの次にデータ処理コマ
ンド列704がある。これはこのメニュー項目の動作を定
義するのに役立つ。最後のデータ処理コマンドに続くの
は終了マーカ705である。これはプロローグ・アドレス
/形式定数と対をなしておりメニュー項目の終りを定義
する。 第8図は本発明の好ましい実施例にるメニュー・ラベ
ルのメモリ構造を示す。特にメニュー・ラベルはプロロ
ーグ・アドレス/形式定数801で始まる。これはメニュ
ー・ラベル構造の実行を開始する実行可能なコードのア
ドレスを与えるとともにそれが先頭を成すデータ構造の
形式を定義するという二重の目的を役立つ。プロローグ
・アドレス/形式定数に続いて長さ指示子802がある。
これはメニュー・ラベル構造の長さを決めるのに役立
つ。これに続いて文字データ803がある。これはこのメ
ニュー・ラベルが参照されているメニュー項目がアクテ
ィブであって実行に利用できるときユーザに表示すべき
文字を定義するのに役立つ。 第9図は本発明の好ましい実施例による代数演算子に
対応するメモリ構造を示す。特に、代数演算子はプロロ
ーグ・アドレス/形式定数901で始まる。これは代数演
算の実行を開示する実行可能なコードのアドレスを与え
るとともにそれが先頭を成すデータ構造の形式を定義す
るという二重の目的に役立つ。プロローグ・アドレス/
形式定数に続くのはその演算子が使用する引数の数を確
認し定義するのに役立つ固定された数の処理のうちの一
つのアドレス902である。このアドレスに続いて当該代
数演算子に特有でその演算を定義するのに役立つデータ
処理コマンド列903がある。最後に、終了マーカ904があ
る。これはプロローグ・アドレス/形式定数と対をな
し、当該代数演算子の終りを定義する。 第10図は本発明の好ましい実施例によるRAM205および
206の一方におけるここでの説明に関連する構造を示
す。特に、固定ロケーション1002に(矢印1009)で示し
たように)一時的に必要なデータ・オブジェクトのアド
レスを格納することができる一時環境領域1007の先頭の
現アドレスがある。第2の固定ロケーションには、デー
タ処理演算の暗黙の引数であるオブジェクトのアドレス
の暗黙裡にリンクされたリストから成る(矢印1008で示
したような)データ・ポインタ・スタック1006のアドレ
ス1003がある。第3の固定ロケーション1004にメニュー
領域内の現在のメニューとして定義されるメニューの序
数の表現が含まれている。一時オブジェクト領域1005は
データ処理演算により作り出されデータ・ポインタ・ス
タック上のあるいは一時環境領域内のアドレスにより参
照されるオブジェクトを含んでいる。 第11A図および第11B図は本発明の好ましい実施例の動
作中のデータ・ポインタ・スタックの状態の例を示す。
これらの例で、ユーザは式LN(2.3+1.0)を編集してい
るところである。ここで、LNはeを底とする定数(自然
対数)関数を示している。 式LN(2.3+1.0)は代数オブジェクトとして定義さ
れ、部分式(2.3+1.0)も同様に定義されている。代数
オブジェクトは数学的な形で入力されかつ表示される手
続(procedure)である。代数オブジェクトは数、変数
名、関数、および演算子を含むことができる。これらは
次のように定義される。 数:実数または複素数 変数名:任意の名前。現在その名前に対応する変数が
存在するか否かは問わない。このような名前が評価され
ると、それ自信を戻す。 関数:代数手続中で許容されているコマンド。関数は
正確に一つの結果を戻さなければならない。関数の一つ
または複数の引数が代数オブジェクトであれば、結果は
代数的である。大部分の関数は関数名の次に括弧内に入
った一つ以上の引数が付いたものとして現れる。たとえ
ばLN(X)。 演算子:一般にその引数を括弧で囲む必要のない関
数。これにはその名前がその引数の前に現われる前置
(prefix)演算子、たとえば単項負号や、その名前がそ
の二つの引数の間に現われるインフィクス演算子、たと
えば、+がある。 手続:手続は、評価されるときスタックから引数を取
らず丁度一つの引数がスタックに返し、かつ部分式の階
層に完全に細分することができる場合には、代数構文に
従う。部分式は数、名前、または関数およびその引数で
あってよい。階層とは各部分式がそれ自身ある関数の引
数であることが可能であることを意味する。たとえば、
式 LN(2.3+1.0) を考える。 この式は二つの数(2.3と1.0)を含んでいる。その各
々は単純な部分式と考えることができる。この式は二つ
の関数、+とLN、を含んでおり、この各々はその引数と
ともに部分式を定義している。+の引数は2.3と1.0であ
り、2.3+1.0はLNの引数である。階層はその演算子を備
えた式を通常の関数(ポーランド記法)LN(+2.3,1.
0))として書き直せば一層明らかになる。 式の中のオブジェクトあるいは部分式はその位置とレ
ベルで特徴づけられる。 オブジェクトの位置は式中で左から右へ数えることに
より決まる。たとえば、式LN(2.3+1.0)でLNの位置は
1であり、+の位置は2である。 部分式の位置は当該部分式を定義するオブジェクトの
位置である。同じ例で、LN(2.3+1.0)の位置は、位置
1にあるLNで定義されるので、1である。 代数式内のオブジェクトのレベルは、式が純粋に関数
形で書かれている場合には、当該オブジェクトを囲む括
弧の対の数である。たとえば、式LN(2.3+1.0)で、LN
のレベルは0であり、+のレベルは1であり、2.3と1.0
のレベルは2である。各代数式はレベル0のオブジェク
トを丁度ひとつ有している。 上記の式の括弧を除き、関数をその引数の後に置くよ
うにもう一度書きなおすことにより、その逆ポーランド
記法の形が得られる。すなわち、 2.3,1.0+LN これは代数構文を備えたプログラムを定義しており、対
応する代数オブジェクトと実際上等価である。 式LN(2.3+1.0)において、今、部分式2.3+1.0が更
に編集するため選択されている。式を入力し選択された
部分式の形と調和する操作処理メニューを要求する動作
コマンドは既に実行されていると仮定する。これらにつ
いては後に述べる。第11A図に示してあるのはこれらの
条件下のデータ・ポインタ・スタックの状態である。こ
こにおいて、データ・ポインタ・スタックのトップ1101
には整数4のアドレスが入っている。この整数4の表現
はROM203,204の定数領域に入っている。データ・ポイン
タ.スタックのこの最初の要素は編集中の式の要素、L
N、2.3、+、1.0、の全個数を示す。スタック内のその
次には、式の最外部の演算子、この場合は自然対数に対
応する演算子LN、のアドレス1102である。これはRAM内
のデータ・ポインタ・スタック中の、整数1で定義され
る、演算子の第1のアドレス位置を占めている。この先
には与えられた式における次位の外側演算子、この場合
の演算子は加算である、+のアドレス1103がある。これ
はRAM内のデータ・ポインタ・スタック中の整数2で定
義される演算子の第2のアドレス位置を占めている。各
演算子に対する引数の数は先に示した代数演算子の構造
を使用して演算子のアドレスから計算することができる
ことに注意すること。この場合の引数は2.3と1.0であ
る。加算演算子のアドレスに続くのは加算演算子に対す
る引数である。この場合左側の引数は数2.3を表現する
もののアドレス1104によって表わされる。この数は、特
に普通の数というわけではないから、RAM内の一時対象
領域に作り出されている。加算の右側の引数は数1.0を
表現するもののアドレス(1105)によって表わされる。
この数は共通に使用される数であるから、ROM内の定数
領域に置かれている。 この状況において、一時環境領域は、計算可能なロケ
ーションに、整数2を表現するもののアドレスを含んで
いる。この整数は選択された部分式2.3+1.0の最も外側
の演算子+のアドレスである第2の演算子のアドレスの
データ・ポインタ・スタック内のロケーションを示すの
で、結局この整数は選択された部分式を示す。この場
合、この整数は式内の第2の演算のアドレス、すなわ
ち、第2の演算子である加算演算子+のアドレスを示す
2である。 第11B図は、この場合加算演算の二つの引数2.3と1.0
とを交換することになる、ユーザが選択した操作である
交換操作後のデータ・ポインタ・スタックの状態を示
す。この操作の結果、加算演算の新しい左側の引数が数
1.0を表現するもののアドレス1104によって表わされ、
新しい右側の引数が数2.3を表現するもののアドレス110
5によって表わされている。この編集の結果得られる、
選択された部分式はしたがって1.0+2.3であり、得られ
る編集後の式はLN(1.0+2.3)である。 式LN(2.3+1.0)を本装置に入力し編集する特定のス
テップを第11C図から第11Q図までを参照して以下に説明
する。 1. ONと書かれたキー111を押す。表示装置は第11C図の
ように見える。表示装置上の4本の行は上から下へ降順
に両面の差に番号が付けられる。これは即時入力モード
である。 2. ′と書かれたキー112を押す。表示装置は第11D図の
ように見える。即時入力モードでは、これによって代数
入力モードが始まる、すなわち起動される。代数カーソ
ル14は表示画面の左下隅(行1)にある。このモードで
は、コマンド・キーを押すとそのコマンドが実行され
る。関数キーを押すとその関数名がコマンド行に与えら
れる。関数がその引数を、LN(2.3+1.0)のように、括
弧内に取る場合には、開き括弧も加えられる。 3. シフト・キー107とシフトされたLOGS113キーを押
す。表示装置は第11E図のように見える。個々のメニュ
ー・ラベル15は行1に表示される。代数カーソル14は行
2に上げられ、行1から4までが上にシフトされ、番号
の付いた行1と2が画面上に残る。 4. LNを押す。これはメニュー表示のラベルLNの直下の
メニュー・キー104である。表示装置は第11F図のように
なる。右側に括弧の付いた関数LNが行2に出現し、代数
カーソルが右にシフトされる。 5. 今度は対応する文字が記されたキー順に押すことに
より式2.3+1.0を追加する。これらのステップに対応す
る表示は第11G図、第11H図、第11I図のように見える。
メニュー・ラベルは不変のままである。 6. 次にシフト・キー107とシフトされたキー116を押
す。これにより式の終りに括弧が付加され(第11J
図)、これで量(2.3+1.0)が完結する。 7. 今度はENTERと書かれたキー105を押す。これによ
り、第11K図に示すように、式が表示装置上の右側とシ
フトされ、この式が表示スタックの最下部に入る。カー
ソル14は消える。 8. ALGEBRAと書かれたキー117をシフトして押す。この
動作ははじめシフトキー107を押し、次にシフトされたA
LGEBRAキー117を押すことによりなされる。これにより
メニューに代数演算が持込まれ、編集すべき式の編集動
作が選択できるようになる。選択されたメニューのメニ
ュー・ラベルが表示される。メニュー・ラベルは第11L
図に示すように変る。 9. 第11M図に、多機能キー104が作動される前の表示が
示してある。実行のために選択された動作はFORMであ
る。 10. 第11N図は動作FORMを実行した後の表示を示す。完
全なLN(2.3+1.0)が画面の左に表示され、新しいカー
ソル14がLNの上に来る。これは代数編集カーソル(FORM
カーソル)である。メニューは再度変化して、選択され
た演算子、この場合+、に対してカーソルの操作をさせ
る4個のメニュー・ラベルを持つ表示になる。 FORMは数学の標準規則にしたがって代数式または方程
式の並べ替えができるようにする対話型の式エディダで
ある。FORMの数学操作はすべて恒等操作、つまり等価な
式への変換である。ある式Xをそれと等価な式Yへ変換
するとは、以下の説明からも明らかなように、X=Yが
恒等式になるように変換するということである。周知の
ように、X=Yが恒等式であるとは以下の条件が成立す
ることである: ・X、Yがともに定数である場合には、定数Xが定数Y
に等しい; ・XとYのいずれかが変数x0、x1、x2、・・・、xnを含
んでいる場合には、これらの変数に任意の値a0、a1、a
2、・・・、anを代入してもX=Yが成立する。 この恒等操作(等価変換操作)は、具体的には、式中
の部分式に表T4、T5、T6、T7、T8、T9、T10、あるいはT
11中の変換規則のうちの当該部分式の形式に適合するも
のを適用することによって行われる。たとえば式A+B
+に対して表T5(第1和メニュー)中のラベル<−>で
表される交換操作を適用することによって、B+Aとい
う形の等価な式への変換を行うことができる。 FORMを実行すると、通常のスタック表示が代数オブジ
ェクトの特別な表示で置換され、また表示の最下部のラ
ベルにFORM操作のメニューが表示される。特別な表示は
最初表示装置の行2(最上部から2番目)で始まり、対
象が1行で表示するには流すぎる場合には、行3に継続
する。オブジェクトが3表示行以上を必要とする場合に
は、FORMカーソルをオブジェクト内を動かして残りの部
分を見る必要がある。 FORMを出て他の計算機演算を続けるには、ONと書かれ
たキーを押す。 FORMカーソルは式表示内の個々のオブジェクトを強調
表示する。強調表示されたオブジェクトは黒い背景上の
白抜き文字として見える。カーソルは強調表示されてい
る選択されたオブジェクト、および選択されたオブジェ
クトともしあればその引数とから成る部分式である選択
された部分式の両者を識別する。 矢印←または→の下にあるメニュー・キーを押せば、
カーソルを式の中で左または右に動かすことができる。
カーソルが動く際には、それはオブジェクトからオブジ
ェクトへ直接動き、間にある括弧は飛越す。カーソルは
常に表示装置上の行2にある。カーソルを行2の右端を
過ぎて動かそうとすると、式は表示装置上で1行スクロ
ール・アップし、カーソルは行2の左端まで後戻りす
る。同様に、カーソルを行2の左端を過ぎて動かそうと
すると、式は1行スクロール・ダウンし、カーソルは行
2の右端まで動く。 すべての演算子の優位順位を明確にするために必要に
応じて括弧を付加挿入することにより通常のスタック代
数オブジェクト表示とは異った表示になる。この特徴は
カーソルによって示されるように、選択されたオブジェ
クトと対応する選択された部分式を識別するのに役立
つ。このことは、FORMメニューの操作はすべて選択され
た部分式で働くので、重要である。 FORMがアクティブである間、特別な一組の操作をメニ
ュー・キーとして利用することができる。最初のメニュ
ー(部分式選択メニュー)はすべての部分式に共通な6
個の操作を備えている。他の操作メニューはNEXTキーお
よびPREVキーにより利用できるようになる。これら他の
メニューの内容は選択された部分式にしたがって変る。
選択された部分式に適用し得る操作だけが示される。 最初の6個のメニュー・キーはENTERキーを押すこと
によりいつでも再び現われるようにすることができる。 11. ここで右向きの矢印の下にあるメニュー・キーを
2回作動する。これにより代数カーソル14がLNからまず
2.3、次に+の位置まで進む。この最後の位置を第11O図
に示してある。 12. 第11P図に示すNEXTと書かれたキー109を押して数
2.3と1をとりかえることができるメニュー・ラベルを
持つメニューを持って来る。NEXTキー109を作動するご
とにメニュー群内の異なるメニューから異なる組合せの
メニュー・ラベルを、すべてが表示されてしまうまで表
示する。すべてが表示されてしまうとメニュー表示は再
循環する。グループ内のメニューには式に関して許容で
きる数学操作と調和するものだけが含まれている。ユー
ザは式の所望の操作に適切なメニューを選択する。表示
されているメニューには、左から2番目のメニュー・ラ
ベル位置に、左右両方向を差す矢印を持つ表示がある。 13. 第11Q図に見るように、両端矢印のメニュー・ラベ
ルの直下のメニュー・キー104を作動すると、2つの数
の位置が入れかわる、すなわち交換される。 第12A図、第12B図および第12C図は本発明による代数
式の自動化したエラー皆無編集に関係する処理の流れ図
を示す。ユーザが入力した代数式を第11A図および第11B
図に示すように計算機で逆ポーランド形に変換するプロ
セスはデータ処理の技術では周知であり、従って本明細
書には示してない。逆ポーランド記法について式LN(2.
3+1.0)の処理に関して上に説明した。 第12A図の流れ図は入力ブロック1201で始まる。これ
は、ユーザが代数式を入力した後に、あるいはそうでな
ければ代数式を計算させてから、更にユーザが、第11A
図〜第11Q図に関して説明したように、本発明の実施例
を実現させる一連の操作を実行してから、作動する。 最初の処理ブロック1202(FORMのステップ9)で、選
択された部分式の指示子つまりカーソルは(第11N図か
ら明らかなように)編集されている式の最も左の演算子
(LN)に初期設定される。 次の処理ブロック1203では、現メニューのセレクタは
(第11N図から明らかなように)部分式選択メニューを
選択するように初期設定される。 次の処理ブロック1204で現メニュー・ラベルの指示子
と、被選択部分式が指示されている編集中の式がユーザ
に表示される。本発明の好ましい実施例において、選択
された部分式の最も外側の演算子(第11N図および第11A
図〜第11Q図のLN)は常に表示部の第2行に表示され、
式の残りの部分に対して反転された形示形式で表示され
る。そうでない場合、式のうちの表示装置の上部3行に
入る限りの部分が示される。本発明の好ましい実施例で
は、指示子の付いたメニュー・ラベルが表示部の最下行
に表示される。 処理ブロック1205はユーザがデータ処理装置に入力し
て処理コマンドを呼出すと活動を始めるループである。
好ましい実施例では、この処理は装置の右前面パネルに
すべて存在する多機能キー104あるいは特殊キー(第1
図の105、107、109、または111)の一つを押すことから
成る。 判定ブロック1206で、ユーザの入力が編集プログラム
を抜け出す要求(第1B図のキー111)として定義されて
いるものと合致するか否かの確認が行われる。合致した
場合には、プログラムは出口ブロック1207を通って出
る。そうでない場合には、結合子C2を経て第12B図の判
断ブロック1208に続く。 判断ブロック1208で、ユーザの入力が部分式選択メニ
ューに戻る要求(第1B図のキー105)として定義されて
いるものと合致するか否かの確認が行われる。合致して
いる場合には、プログラムは処理ブロック1209に進む。
ここでは現メニュー・セレクタが部分式セレクタ・メニ
ューを選択するようにセットさる。次にプログラムは結
合子C1を介して第12A図の処理ブロック1204に進む。 合致していない場合には、プログラムは判断ブロック
1210に進み、ユーザの入力が現メニューを次の適切なメ
ニューに変更する要求(第1B図のキー109)として定義
されているものと合致するか否かの確認が行われる。合
致している場合には、プログラムは処理ブロック1211に
進む。合致していない場合には、プログラムは判断ブロ
ック1212に進む。 処理ブロック1211で、プログラムは、表T1に示した、
次メニュー遷移表を利用して、現メニューの次の適切な
メニューと選択された部分式の形態から現メニュー・セ
レクタをセットする。次にプログラムは結合子C1を経て
第12A図の処理ブロック1204に進む。 判断ブロック1212で、ユーザの入力が現メニューを以
前の適切なメニューに変更する要求(第1図のキー10
7、続いてキー109)として定義されているものと合致す
るか否かの判断が行われる。合致している場合には、プ
ログラムは処理ブロック1213に進む。合致しない場合に
は、プログラムは結合子C3を経て第12C図の処理ブロッ
ク1214に進む。 処理ブロック1213で、プログラムは後述の前メニュー
遷移表T2を利用して、現メニューと選択された部分式の
形態から、先行する適切なメニューを定め、これにより
現メニュー・セレクタを設定する。次にプログラムは結
合子C1を経て第12A図の処理ブロック1204に進む。 第12C図の処理ブロック1214で、その指示子が表示さ
れており且つユーザの入力に対応している現メニューの
メニュー項目のデータ処理コマンドが実行される(第1
図のキー104)。次にプログラムは結合子C1を経由して
第12A図の処理ブロック1204に進む。 第13図は本発明の好ましい実施例に使用されるメニュ
ー項目のデータ処理コマンドのフローチャートを示して
おり、この処理は数学の規則に合致する仕方で部分式の
変換を行う。この一般形は部分式を変換する各メニュー
項目に適用できるが、細目は実現すべき正確な変換によ
って変る。処理シーケンスへはスタート・ブロック1301
を通して入る。これは第12C図の処理ブロック1214から
呼出される。判断ブロック1302では、選択された部分式
の構造がこの処理シーケンスで実現される特定の操作の
テンプレートに合致しているか否かの確認が行われる。
これらテンプレートについては表T3ないし表T12の説明
の細に更に論じられる。選択された部分式がテンプレー
トと合致しない場合には、プロセスはリターン1304を経
由して呼出し元のプログラムに戻る。選択された部分式
がテンプレートと合致する場合には、プログラムは処理
ブロック1303に進む。 処理ブロック1303は演算の性格にしたがって部分式の
変換を行う。これら変換については表T3ないし表T12の
説明の際に更に完全に説明する。 次にプログラムは処理ブロック1305に進み、選択され
た部分式を新しく変換された部分式に対応させる。次に
プログラムは処理ブロック1306に進む。 処理ブロック1306で現メニュー・セレクタが部分式選
択メニューに対応づけられ、処理ブロック1307では、現
メニューは、今や選択された部分式となっている新しく
変換された部分式に適切な次のメニューに設定しなおさ
れる。 処理ブロック1307が終了したらプログラムはリターン
1308を経由して呼出し元へ戻る。 第14図のフローチャートは「部分式選択メニュー」
(表T3)内のメニュー項目「カーソルを左へ」の動作を
示す。処理シーケンスへの入口はスタート・ブロック14
01を通してである。このブロックは現メニューが部分式
選択メニューであり且つユーザがこの動作を行うことへ
の要求を通知する入力を与えたとき第12C図の処理ブロ
ック1214から呼出される。プロセスは選択された部分式
が編集中の式の最も左の部分式であるか否かの判断を行
う判断ブロック1402に進む。それが最も左の部分式の場
合は、プロセスはリターン・ブロック1403を経て呼出し
元に戻る。最も左ではなかった場合には、プロセスは処
理ブロック1404に進む。処理ブロック1404で、選択され
た部分式の左隣の部分式が求められ、部分式選択指示子
が、この部分式と一致するようにセットされる。次にプ
ロセスはリターン・ブロック1405を経て呼出し部に戻
る。 第15図の流れ図は部分式選択メニュー(表T3)のメニ
ュー項目「カーソルを右へ」の動作を示す。この処理シ
ーケンスへはスタート・ブロック1501を通して入る。こ
のブロックは現メニューが部分式選択メニューであり且
つユーザがこの動作を行うことを要求する入力を通知し
たとき第12C図の処理ブロック1214から呼出される。プ
ロセスは判断ブロック1502に進み、選択された部分式が
編集中の式の最も右側の部分式であるか否かの判断が行
われる。これが最も右側にある場合には、プロセスはリ
ターン・ブロック1503を経て呼出し元に戻る。最も右側
ではない場合には、プロセスは処理ブロック1504に進
む。処理ブロック1504は、選択された部分式の右隣の部
分式を求め、部分式選択指示子がこの部分式に対応づけ
られる。次にプロセスはリターン・ブロック1505を経由
して呼出し元に戻る。 下の表T1およびT2はそれぞれ次メニュー遷移表および
前メニュー選択表を示している。これらはそれぞれ処理
ブロック1211および1213で使用される。ここに示した各
表「現メニュー」列(1)と「選択された部分式の形
態」行(2)を有している。現メニュー列の各エントリ
は本発明実施例の動作中、可能な現メニューの一つに対
応する。これらメニューについてのこれ以上の事項は表
T3ないし表T13と下記のこれらに関する説明に述べられ
ている。 選択部分式の形態の行の各エントリには、代数式の、
ひとつのクラスの、代数形での概略例示が与えられてい
る。各エントリで、単一の文字AとBは任意の式を表わ
している。他のエントリは次のとうりである。 A+B−二つの式の和 A−B−二つの式の差 A*B−二つの式の積 A/B−二つの式の商 INV(A)−式の逆数 −(A)−式の符号の反転 LOG(A)−式の10を底とする対数 LN(A)−式のeを底とする対数 EXP(A)−式のeを底とする逆対数 ALOG(A)−式の10を底とする逆対数 をB乗する その他−上のどのクラスにも入らない式 第12B図の処理ブロック1211と1213で、選択された部
分式がこれらのクラスのどれに該当するかに関する判断
が行われる。次に、この判断を現メニューとともに用い
ることにより、表の結果領域(3)に示される選択され
た部分式に適切な次のまたは前のメニューを求める結果
領域中の空白になっている部分は、実際には起らない遷
移に対応する。 下の表T3ないしT12は本発明の一実施例のメニュー、
メニュー項目ラベルおよびメニュー項目動作についての
より詳細な説明を示している。これらは本発明に固有な
すべての可能性の包括的な説明であることを意味するも
のではなく、単にこのような妥当な部分集合を示すに過
ぎない。 表T3ないしT12の各々はメニュー、またはその一部分
を項目別に記し、各メニュー項目の指示子(ラベル列)
のために表示される文字への近似を各メニュー項目の動
作についての追加情報とともにその詳細を記している。 表T3は部分式選択メニュー内のメニュー項目のうちの
三つを詳細している。すなわち項目「カーソルを左
へ」、項目「カーソルを右へ」および項目「レベル」で
ある。最初の二つの動作はそれぞれ第14図および第15図
に示してある。 残りの表T4ないし表T12はその項目が標準の数学規則
にしたがって選択された部分式を変換するメニューに対
応する。その項目に対するラベルに関する各メニュー細
目の各項目(ラベル列)について、変換に対する共通名
称(名前列)、(処理ブロック1302によるような)変換
を進めるために合致をとるべきテンプレー(部分式の形
態の列)、および変換された部分式の最終的な形(結果
の形態の列)が含まれている。 部分式の形態の列および結果の形態の列の双方におい
て、上の表T1および表T2の説明に関して詳記した規約の
他に、次の規約を採用した。 −単一の文字CおよびDも任意の式を表わす。 −一方の列または両方の列で複数の場所に繰り返えされ
る単一文字は同一の部分式を表わす。 部分式の書かれた形態は逆ポーランド記法とは逆に代
数的で、本開示を読みやすくしている。 部分式が部分式形態の列に詳述したテンプレートと合
致するか否かを確認する処理シーケンスを作る手順は当
技術では周知でありここではこれ以上詳述しないことに
する。 結果の形態の列で詳記した部分式を変換する処理シー
ケンスを作る手順は当技術では周知であり、ここではこ
れ以上詳述しないことにする。 〔発明の効果〕 以上詳細に説明したように、本発明によれば式を数学
的に等価なものに変換する操作を間違いなくかつすばや
く行なうことができる。
【図面の簡単な説明】
第1A図および第1B図は本発明の一実施例の外観を示す
図、第2図は本発明の一実施例の概略ブロック図、第3
図は本発明の一実施例におけるRAMのメモリ・マップを
示す図、第4図は本発明の一実施例におけるROMのメモ
リ・マップを示す図、第5図は本発明の一実施例におけ
るROM中のメニュー領域の構造を示す図、第6図は第5
図のメニュー領域中のメニューの構造を説明する図、第
7図は第6図中のメニュー項目の構造を説明する図、第
8図は第7図中のメニュー・ラベルの構造を説明する
図、第9図は本発明の一実施例における代数演算子に対
応するメモリ構造を説明する図、第10図は本発明の一実
施例におけるRAMの構造を説明する図、第11A図および第
11B図は本発明の一実施例におけるデータ・ポインタ・
スタックの状態の例を示す図、第11C図ないし第11Q図は
本発明の一実施例における操作例を説明する図、第12A
図ないし第12C図は本発明の一実施例における代数式の
編集を説明するためのフローチャート、第13図は本発明
の一実施例における部分式の変換を説明するためのフロ
ーチャート、第14図および第15図は本発明の一実施例に
おける代数式の編集に用いられるカーソル操作を説明す
るためのフローチャートである。 14:代数カーソル、15:メニュー・ラベル、100:データ処
理装置、 103、207、208:表示装置、 104:多機能キー、107:シフト・キー、 200:メイン・バス、201:CPU、 202:キーボード、203、204:ROM、 205、206:ディスプレイ・ドライバRAM複合体、 301:予約システム・メモリ領域、 302:一時オブジェクト領域、 303:リターン・スタック、 304:未使用メモリ、 305:データ・ポインタ・スタック、 306:コマンド行領域、 307:一時環境領域、 308:ループ・インデクス領域、 309:キーマップ、 310:ユーザ変数領域、 402:代数演算子領域、 403:メニュー領域、 404:定数領域。
図、第2図は本発明の一実施例の概略ブロック図、第3
図は本発明の一実施例におけるRAMのメモリ・マップを
示す図、第4図は本発明の一実施例におけるROMのメモ
リ・マップを示す図、第5図は本発明の一実施例におけ
るROM中のメニュー領域の構造を示す図、第6図は第5
図のメニュー領域中のメニューの構造を説明する図、第
7図は第6図中のメニュー項目の構造を説明する図、第
8図は第7図中のメニュー・ラベルの構造を説明する
図、第9図は本発明の一実施例における代数演算子に対
応するメモリ構造を説明する図、第10図は本発明の一実
施例におけるRAMの構造を説明する図、第11A図および第
11B図は本発明の一実施例におけるデータ・ポインタ・
スタックの状態の例を示す図、第11C図ないし第11Q図は
本発明の一実施例における操作例を説明する図、第12A
図ないし第12C図は本発明の一実施例における代数式の
編集を説明するためのフローチャート、第13図は本発明
の一実施例における部分式の変換を説明するためのフロ
ーチャート、第14図および第15図は本発明の一実施例に
おける代数式の編集に用いられるカーソル操作を説明す
るためのフローチャートである。 14:代数カーソル、15:メニュー・ラベル、100:データ処
理装置、 103、207、208:表示装置、 104:多機能キー、107:シフト・キー、 200:メイン・バス、201:CPU、 202:キーボード、203、204:ROM、 205、206:ディスプレイ・ドライバRAM複合体、 301:予約システム・メモリ領域、 302:一時オブジェクト領域、 303:リターン・スタック、 304:未使用メモリ、 305:データ・ポインタ・スタック、 306:コマンド行領域、 307:一時環境領域、 308:ループ・インデクス領域、 309:キーマップ、 310:ユーザ変数領域、 402:代数演算子領域、 403:メニュー領域、 404:定数領域。
─────────────────────────────────────────────────────
フロントページの続き
(56)参考文献 特開 昭54−148345(JP,A)
特開 昭58−43050(JP,A)
特開 昭58−86656(JP,A)
Using Meta−level
Inference for Sele
ctive Application
of Multiple Rewrit
e Rule Sets in Alg
ebraic Manipulatio
n,Artificial Intel
ligence,p189−211
(58)調査した分野(Int.Cl.7,DB名)
G06F 15/02
JICSTファイル(JOIS)
Claims (1)
- (57)【特許請求の範囲】 1.以下の(a)ないし(d)を設けたデータ処理装
置: (a)数式を表示する表示手段; (b)前記表示されている数式中の部分式を選択するキ
ー手段; (c)部分式を他の制約条件を前提とすることなしに当
該部分式と等価である部分式に変換する等価変換操作の
候補のメニューを使用者に対して表示するメニュー手
段; (d)使用者が前記メニュー中から所望の項目を選択し
たことに応答して当該項目に対応づけられた等価変換操
作を前記選択された部分式に適用し、適用結果を前記表
示手段によって表示する等価変換手段。 2.前記メニュー手段が前記等価変換操作の候補を使用
者に対して表示するに当たっては、等価変換操作の集合
のうちから前記選択された部分式の形態にしたがって定
められた等価変換操作の部分集合を前記候補として表示
することを特徴とする特許請求の範囲第1項記載のデー
タ処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/923,921 US4852057A (en) | 1986-10-27 | 1986-10-27 | Algebraic expression manipulation method and implementation for an electronic data processing apparatus |
| US923921 | 1997-09-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63109562A JPS63109562A (ja) | 1988-05-14 |
| JP3142276B2 true JP3142276B2 (ja) | 2001-03-07 |
Family
ID=25449473
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62271610A Expired - Lifetime JP3142276B2 (ja) | 1986-10-27 | 1987-10-27 | データ処理装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4852057A (ja) |
| EP (1) | EP0266145B1 (ja) |
| JP (1) | JP3142276B2 (ja) |
| DE (1) | DE3789601T2 (ja) |
| HK (1) | HK23995A (ja) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5245559A (en) * | 1983-01-21 | 1993-09-14 | The Laitram Corporation | Portable computer with large screen display |
| US5289394A (en) * | 1983-05-11 | 1994-02-22 | The Laitram Corporation | Pocket computer for word processing |
| US5111426A (en) * | 1989-03-23 | 1992-05-05 | Bergstresser Sr Arthur R | Instructional device and method thereof |
| US5189633A (en) * | 1990-01-12 | 1993-02-23 | Bonadio Allan R | Apparatus and method for interactively manipulating mathematical equations |
| US5067102A (en) * | 1990-01-31 | 1991-11-19 | Hewlett-Packard Company | Method and apparatus for displaying and editing mathematical expressions in textbook format |
| JP2815261B2 (ja) * | 1992-01-29 | 1998-10-27 | シャープ株式会社 | 複素数計算機能付き電子機器 |
| US5586060A (en) * | 1993-06-25 | 1996-12-17 | Sharp Kabushiki Kaisha | Compact electronic equipment having a statistical function |
| US5469538A (en) * | 1994-03-02 | 1995-11-21 | Mathsoft, Inc. | Mathematical document editor and method performing live symbolic calculations for use with an electronic book |
| US5526475A (en) * | 1994-03-02 | 1996-06-11 | Mathsoft, Inc. | Method for live symbolic calculations in a mathematical document editor |
| US5479344A (en) * | 1994-05-26 | 1995-12-26 | Impact Technologies Group, Inc. | Insurance computation display |
| JPH10289211A (ja) * | 1997-04-14 | 1998-10-27 | Sharp Corp | 小型電子機器 |
| US7035885B2 (en) * | 2000-03-09 | 2006-04-25 | Kulak John A | Machinist calculating apparatus |
| US6956560B2 (en) * | 2001-08-24 | 2005-10-18 | Texas Instruments Incorporated | Selection of mathematical objects from the history screen on a handheld device |
| US20030041078A1 (en) * | 2001-08-24 | 2003-02-27 | Child J. Douglas | Interactive object transformation based expert system for symbolic mathematics on a handheld device |
| US6874005B2 (en) * | 2001-12-28 | 2005-03-29 | Texas Instruments Incorporated | Subexpression selection of expression represented in contiguous tokenized polish representation |
| US7475100B2 (en) * | 2003-02-26 | 2009-01-06 | Kinpo Electronics, Inc. | Calculating device capable of displaying constants and method thereof |
| US7421461B2 (en) * | 2004-01-16 | 2008-09-02 | Prokop Christopher A | Pipe reference and calculating device |
| US7966499B2 (en) * | 2004-01-28 | 2011-06-21 | Irdeto Canada Corporation | System and method for obscuring bit-wise and two's complement integer computations in software |
| US8190406B2 (en) * | 2008-11-26 | 2012-05-29 | Microsoft Corporation | Hybrid solver for data-driven analytics |
| CN113268960B (zh) * | 2021-05-26 | 2024-04-19 | 北京北大方正电子有限公司 | 公式处理方法和装置 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3518629A (en) * | 1964-02-06 | 1970-06-30 | Computron Corp | Recirculating memory timing |
| US3839630A (en) * | 1971-12-27 | 1974-10-01 | Hewlett Packard Co | Programmable calculator employing algebraic language |
| JPS54148345A (en) * | 1978-05-13 | 1979-11-20 | Sharp Corp | Electronic computer |
| JPS57109031A (en) * | 1980-12-26 | 1982-07-07 | Sharp Corp | Input equipment |
| JPS5843050A (ja) * | 1981-09-08 | 1983-03-12 | Casio Comput Co Ltd | 電子公式辞典 |
| JPS5886656A (ja) * | 1981-11-18 | 1983-05-24 | Sharp Corp | 電子式計算機 |
| US4698784A (en) * | 1984-01-06 | 1987-10-06 | Hewlett-Packard Company | Syntactic device for chain calculations |
| JPS60193066A (ja) * | 1984-03-13 | 1985-10-01 | Sharp Corp | 電子式計算機 |
-
1986
- 1986-10-27 US US06/923,921 patent/US4852057A/en not_active Expired - Lifetime
-
1987
- 1987-10-26 EP EP87309419A patent/EP0266145B1/en not_active Expired - Lifetime
- 1987-10-26 DE DE3789601T patent/DE3789601T2/de not_active Expired - Fee Related
- 1987-10-27 JP JP62271610A patent/JP3142276B2/ja not_active Expired - Lifetime
-
1995
- 1995-02-23 HK HK23995A patent/HK23995A/en not_active IP Right Cessation
Non-Patent Citations (1)
| Title |
|---|
| Using Meta−level Inference for Selective Application of Multiple Rewrite Rule Sets in Algebraic Manipulation,Artificial Intelligence,p189−211 |
Also Published As
| Publication number | Publication date |
|---|---|
| US4852057A (en) | 1989-07-25 |
| EP0266145A2 (en) | 1988-05-04 |
| DE3789601D1 (de) | 1994-05-19 |
| JPS63109562A (ja) | 1988-05-14 |
| DE3789601T2 (de) | 1994-11-03 |
| HK23995A (en) | 1995-03-03 |
| EP0266145A3 (en) | 1990-04-18 |
| EP0266145B1 (en) | 1994-04-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3142276B2 (ja) | データ処理装置 | |
| EP0317479B1 (en) | Flexible on-line information system and method for data processors | |
| US5704029A (en) | System and method for completing an electronic form | |
| US5187789A (en) | Graphical display of compiler-generated intermediate database representation | |
| JP5761687B2 (ja) | 数式出力コンピュータ、数式出力方法、数式出力プログラム、および数式出力プログラムを記録したコンピュータ読取可能な記録媒体 | |
| JP2518645B2 (ja) | 計算装置 | |
| KR950012071B1 (ko) | 정보처리 시스템 | |
| US6760039B2 (en) | Program for graphic priority editing | |
| US6833842B2 (en) | Quantitative decision support program | |
| US4209784A (en) | Processor controlled editor terminal system and method | |
| JP2716135B2 (ja) | 計算装置 | |
| EP0266144B1 (en) | A calculator having a user-accessible object stack for the uniform application of mathematical functions and logical operations to a multiplicity of object types | |
| WO1992003775A1 (en) | Chemical calculator | |
| US5450600A (en) | Integrated command recognition apparatus and method for selecting an optimal command among numerous commands | |
| JPH08329004A (ja) | アプリケーション・プログラム使用の端末操作性向上方法 | |
| EP0315172B1 (en) | Automatic program generation method with a visual data structure display | |
| JPH0252299B2 (ja) | ||
| JPH1049324A (ja) | 帳票処理装置 | |
| Van Egmond et al. | INFORM: an interactive syntax-directed formulae editor | |
| Jesshope et al. | An intelligent Pascal editor for a graphical oriented workstation | |
| JP2625121B2 (ja) | 計算装置の表示方法 | |
| JPS60100226A (ja) | 木構造チヤ−ト・テキスト処理装置 | |
| Richardson | Graphical specification of computation | |
| JPH09114756A (ja) | 通信装置 | |
| Schlesinger | Visual Basic. Net: the programming language |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |