JPH0283730A - 可変長動的コモンの実現方式 - Google Patents

可変長動的コモンの実現方式

Info

Publication number
JPH0283730A
JPH0283730A JP23508888A JP23508888A JPH0283730A JP H0283730 A JPH0283730 A JP H0283730A JP 23508888 A JP23508888 A JP 23508888A JP 23508888 A JP23508888 A JP 23508888A JP H0283730 A JPH0283730 A JP H0283730A
Authority
JP
Japan
Prior art keywords
common
dynamic
size
variable
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP23508888A
Other languages
English (en)
Inventor
Hideko Maeda
秀子 前田
Shigemi Yamada
山田 重己
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP23508888A priority Critical patent/JPH0283730A/ja
Publication of JPH0283730A publication Critical patent/JPH0283730A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、FORTRAN、C0BOL、PL/■等の
高級言語で記述され、大量のデータを取扱うプログラム
により、データを処理する方式に係り、特に、各々のプ
ログラムの実行時における使用可能メモリの状況によっ
て変数域の大きさを変更したい場合に好適な、データ処
理方式における可変長動的コモンの実現方式に関する。
〔従来の技術〕
一般に、高級言語プログラムの変数域の大きさは、ソー
スプログラムの記述によって決まる。但し、プログラム
間で共用するコモンを使用している場合には、静的に結
合された同一名のコモンのうち、最大長のコモンの大き
さでメモリ領域(主メモリ)が確保される。ここで、「
コモン」とは、複数のプログラムを統合したシステムで
、それら複数のプログラムに共通する情報を格納するメ
モリエリヤをいう。これらの記述の例は、例えば、IB
M?二177LzrVS  FORTRAN  Ver
sion 2  Programming  Guid
e(SC264222)J、PP146〜148、PP
438〜439に記載されている。
第8図は、リンケージ・エディタ(連結編集)による従
来のコモン(静的コモン)の解決法(実現法)の−例を
示している。
従来のFORTRANプログラムのC0MM0Nは1、
それぞれのオブジェクト中にC0Mセクションとして出
力され、リンケージエディタによって解決される。この
ようなコモンを静的コモンと呼び、その−例を第8図に
示す。第8図において、プログラムへのソースIOAと
プログラムBのソースIOBはそれぞれコモンC1を使
用しており、それぞれのオブジェクト11A、11Bに
は、コンパイラ(図示せず)によって、C1という名前
のC0Mセクションが出力されている。この2つのプロ
グラムをリンケージエディタ(連結編集)12で結合す
ると、同一名のコモンは同じ領域になるというリンケー
ジエディタの機能により、コモンC1のエリアが1つだ
けのロードモジュール13が作成され、それぞれのプロ
グラムAまたはBも共通の01のエリアを参照するよう
になる。
なお、図中、A  C3ECT(A  Control
S ection)およびB  C3ECT(B  C
ontrolSection)は、プログラムAおよび
プログラムBに専用のエリアである。
〔発明が解決しようとする課題〕
上記従来の静的コモンの解決法において、高級言語プロ
グラムの変数域の大きさは、ソースプログラムの記述に
より決まる。FORTRANのCoMMoN文で代表さ
れるプログラム間で共用されるコモンの大きさだけは、
静的結合する同一名のコモンのサイズの最大のものの大
きさをもって確保されるが、それも、リンケージ・エデ
イツト時に決まってしまう。
このため、その後の実行時になって、使用可能なメモリ
が充分に存在してもそれを使用することができず、メモ
リを有効に利用することができなかった。
たとえば、1日毎に、要求されるコモンのサイズが異な
るよ・うなプログラムを用いる場合でも、そのような所
要サイズの変更に迅速に対処できなかった。
一方、最近、動的コモンと呼ばれる解決法が提案された
。動的コモンの場合は、−上記のようにオブジェクト中
にC0Mセクションを出力するのではなく、代りに、動
的コモン情報と呼ぶテーブルを出力する。動的コモン情
報は、動的コモン名、。
コモンのサイズ、および、オブジェクト中のコモンを参
照するアドレスに関する情報を持っている。
一般に、FORTRANプログラノ、は、その開始時に
、実行時ルーチンをコールしてその開始処理を行なう。
このとき、そのプログラムが動的コモンを使用と7でお
れば、動的コモン情報によりメモリーにに動的コモンの
エリアを確保し、オブジェクト中の、コモンを参照する
アドレス定数を解決する(メモリ上の実際のアドレスを
得る)。
第9図に、このような動的コモンの一例を示す。
主プログラムMATN(20)は、サブプログラムA(
20A)とサブプロゲラ1.B(20B)とをコールし
て、処理を行なうようになっている。
サブプログラム20Aとサブプログラム20Bは、それ
ぞれコモンC1を使用しており、それぞれのオブジェク
ト (図では、図示しないリンケージエディタで連結し
て作成されたロードモジュール21として示す。)には
、C0Mセクションの代りに動的コモン情報22が出力
されている。なお、プロゲラ11ソーム20Aおよび2
0Bで、R(1,000)は、ソースAまたはBが必要
とするコモンC1のサイズ、ロードモジュール21は、
MAIN  Cセクション210、ACセクション21
A、BCセクション21Bを含み、MAIN  Cセク
ション210のv (A) 、  v (B)は、ツレ
ツレACセクション21AとBCセクション21Bをコ
ールする部分である。図中、太い矢印はコールを示す。
まず、サブプログラムAがコールされると、開始処理の
実行時ルーチン23がコールされる(20A、、  2
1A、  211A)。実行時ルーチン23は、プログ
ラムA中の動的コモン情報22を取り出し、動的コモン
管理テーブル24にまだ登録されていないコモンC1の
エリアを、ソースプログラムで定義した大きさ(固定長
)で確保しく動的コモン25)、プログラム中のコモン
C1を参照するアドレス定数を解決する。確保した動的
コモンの情報25は、動的コモン管理テーブル24に登
録される。
次に、サブプログラムBがコールされると(20B、2
1B、211B) 、サブプログラムAの場合と同様に
、動的コモン情@22が取り出されるが、コモンC1は
、既に動的コモン管理テーブル24に登録済みであるの
で、エリアの確保は行なわず、既に確保済みのエリアの
アドレスによって、プログラム中のコモンC1を参照す
るアドレス定数が解決される。
上記提案された動的コモンの解決法では、動的コモンの
大きさは、ソースプログラム上のCoMMoN文の定義
によって予め決まっているので、従来の静的コモンの場
合と同様に、コモンのサイズは固定長というべきもので
あり、その実行時にメモリ領域に空きがあっても、それ
を有効に利用することができないという問題があった。
従って、本発明の目的は、上記従来の静的コモンおよび
動的コモンの解決法の問題点を解消し、コモンエリアの
大きさを、実行時におけるユーザの指定値により決定す
ることによって、実行時メモリを有効に利用し、プログ
ラム全体の性能を向上することにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明は、可変長の動的コモ
ンを実現できる方式を提供する。すなわち、本発明は、
可変長の動的コモンを実現するため、コンパイル時にコ
モン名および可変長とすべきメモリ領域サイズを表わす
変数を定義したコモンを動的コモンとして宣言する手段
と、プログラムの実行に際し、任意の(すなわち、ユー
ザ指定の)大きさで前記動的コモンのメモリ領域サイズ
を決定する手段とを具備させる。
更に詳しく述べると、具体例において、ユーザは、コン
パイル時、領域長を実行時に決定するコモンを可変長の
動的コモン(V (DCOM))として宣言し、実行時
にエリアの確保とアドレス解決を行うためのオブジェク
トを出力させる。次に、プログラムの実行時に、コモン
の名前とサイズを指定する。(なお、この指定方法は、
可変長動的コモンを使用するプログラムの開始処理以前
であれば、実行時オプションでもシステムサブルーチン
コールでもよい)。コンパイラは、ユーザの指定値によ
ってエリアを確保し、動的コモンの確保済エリアを登録
するための動的コモン管理テーブルに、確保情動的コモ
ンとして、名前、アドレス、および、サイズを登録する
。また、一般に、動的コモンを使用するプログラムでは
、その開始処理(実行)において、動的コモンのエリア
確保とアドレス解決を行うが、そのコモン名が動的コモ
ン管理テーブル中に登録されていれば、既に確保済とし
てテーブル中のアドレスを使用する。本発明の可変長動
的コモンの場合は、DCOMサブルーチン等によって、
既にユーザ指定値でエリアが確保され、テーブルに登録
されているのでそのアドレスを使用することになる。
〔作用〕
上記構成に基づく作用を説明する。
まず、ユーザは、高級言語プログラムにおける可変長に
したい変数を定義したコモンを、可変長動的コモンと宣
言してコンパイルする。次に、プログラム実行の際に、
ユーザは、可変長動的コモンの名前と大きさ(領域サイ
ズ)をコンパイラに知らせる。コンパイラは、ユーザの
指定値によってエリアを確保し、確保済み動的コモンを
登録するための動的コモン管理テーブルに、確保済み動
的コモンとして、コモンの名前、アドレス、および、サ
イズを登録する。
ここで、高級言語プログラムにおける変数域の大きさの
変更は、その変数をコモンの1部として宣言し、そのコ
モンの大きさを、プログラム実行時にユーザ指定値で決
定することによって行うことができる。
一般に、動的コモンを使用するプログラムでは、その開
始処理において、動的コモンのエリア確保とアドレス解
決を行ない、このとき、そのコモン名が動的コモン管理
テーブル中に登録済であれば確保済としてテーブル中の
アドレスを使用するが、本発明による可変長動的コモン
の場合には、ユーザ指定の任意の大きさでメモリエリア
が確保され、動的コモン管理テーブルに登録されている
ので、このエリアを使用することができる。
なお、一般に実行性能を重視する高級言語プログラムで
は、配列参照時の配列要素の」二限チエツクは抑止可能
(上限チエツクを止めることで、上限を越えてもエラー
を出さないようにすることが可能)となっているため、
この抑止機能を利用することにより、確保した領域を利
用することができる。この場合、プログラム中での可変
長動的コモン中の変数域の参照は、コモミノ中の最後の
変数を“配列”として定義し、この配列の上限を越えて
参照することによって行うことができる。
以上の動作によって、高級言語プログラムでも、実行時
の使用可能メモリの大きさ(空きエリアの大きさ)によ
って変数域の大きさを変更し、メ母りを有効活用するこ
とが可能となる。
〔実施例〕
冊 以下に、本発明のFORTRANを用いた場合の一実施
例を第1図ないし第7図によって説明する。
(可変長動的コモンの解決法) 第1図は、本発明の一実施例による可変長動的コモンの
解決(実現)方式の構成図である。
第1図において、30は主プログラムMAINソース、
30AはサブプログラムAソース、30Bはサブプログ
ラムロソース、31はロードモジュール、32は動的コ
モン情報C1,33はFORTRAN実行時ルーチ実行
間ルーチン、34は動的コモン管理テーブル、35は動
的コモンC1である。以上は、第9図の20.20A、
20B21.22.23,24..25に対応している
また、ロードモジュール31には、MAIN  C3E
CT310.、A  C3ECT31Δ、BC3ECT
31Bに加え、本実施例の特徴として000Mサービス
サブルーチン311を有している。
なお、第9図と同様に、コンパイラや、オブジェクト、
リンケージエディタ等については、図示および説明を省
略する9、第1図でも矢示は第9図と同様な意味で用い
ている。
本実施例が第8図の従来の静的コモンや第9図の固定長
動的コモンと著しく相違する点は、従来の静的コモンや
固定長動的コモンの大きさがソースプログラム上のCo
MMoN文の定義によって決まるのに対し、本実施例に
よる可変長動的コモンの大きさは、実行時の使用可能メ
モリ量を考慮してユーザの指定によって任意に決めるこ
とができる点にある。
以下に、第1図の動作を説明する。
第1図において、主プログラムMAIN(30)は、サ
ブプログラムA(30A)とサブプログラムB(30B
)を呼び出してその処理を行うものであるが、本実施例
では、その呼び出しの前に、コモン名およびコモン領域
の確保方法をパラメータとして、可変長動的コモンを宣
言し、この可変長動的コモン宣言サブルーチン(DCO
Mと呼ぶ)を呼び出す(30,310117)V (D
COM)311)。本実施例では、コモン名が“CI”
確保したいエリアの大きさを表わす変数すが一例として
“0” (詳細は第2図で後述)の場合で、コモン領域
として使用可能なメモリを全て割り当てることを要求し
ている。
DCOMザービスサブルーチン311は、使用可能なメ
モリ領域を全て確保し、これをコモンC1の領域35と
して、動的コモン管理テーブル34に登録する(3]1
.311S)。
次に、サブプログラムA(30A)がコールされて(3
1A、311A) 、開始処理の実行時ルーチン33に
より動的コモン情報32を取り出すと、該当コモンc1
は、既にDCOMザービスサブルーチン311により動
的管理テーブル34に登録済みであるので、ここではエ
リアの確保は行なわず、確保済みのアドレスによりプロ
グラム中のコモンCIを参照するアドレス定数が解決さ
れる。これにより、サブプロゲラlx Aでは、コモン
CIとして、ソースプログラムで定義したサイズではな
く、000Mサービスサブルーチン311で確保したサ
イズの領域が使用可能となる。
次に、サブプログラムBが実行されるが、この場合も、
サブプログラムAと同様に行なわれる。
(動的コモンの宣言と可変長動的コモン宣言サブルーチ
ン) ここで、可変長動的コモンの宣言の仕方について、付言
すると、前述のように、ユーザは、可変長にしたい変数
をコモン中に定義し、コンパイルオプションを指定して
、可変調動的コモンの宣言をするが、このコンパイルオ
プションの指定の方法には、次のものがある。
DCOM・・・・・・・・・すべてのコモンを動的コモ
ンとして使用する。
DCOM (名前、・・・・・・)・・・・・・名前で
指定したコモンだけを動的コモンとして使 用する。
本実施例は、後者の方法による指定の場合である。
また、上記のように、可変長動的コモン宣言サブルーチ
ンでは、FORTRANの実行時サブルーチンとして、
可変長動的コモンの名前と大きさを宣言するサブルーチ
ン(DCOM)を設ける。
第2図は、可変長動的コモン宣言ルーチンの引用方法を
示す。同図により、サブルーチンDCOMの引用方法を
説明する。
第2図で、第1引数aは、文字型の定数または変数で、
宣言したい可変長動的コモンの名前を指定する。第2引
数すは、整数型の定数または変数で、aで示されるコモ
ンに対する領域の大きさと割り当て方法とを指定する。
bの値により、次の3つの指定方法を可能とする。
(11b>O(正の値b)を指定する場合この場合、b
の値の大きさの固定サイズのメモリ領域を確保し、これ
をコモンの領域に割り当てる。
(21b=0(ゼロ)を指定する場合 この場合、使用可能な最大サイズを割り当てる。
+31b<O(負の値b)を指定する場合この場合、使
用可能なすべての領域(最大サイズ)を確保し、この最
大サイズから、ユーザ指定値すを差し引いた残りのサイ
ズをコモン領域に割り当てる(ユーザ指定値すは、空き
領域として他の目的で使う。) また、第3引数Cとして、整数型の変数を指定し、サブ
ルーチンの実行結果をリターン情報として設定してもら
う。サブルーチンは、要求通りコモンの領域が割り当て
可能であった場合には、コモンに割り当てた領域長を正
の値(C〉)で設定し、コモンの領域が要求通り割り当
てできなかった場合には、コモンに割り当て可能な最大
長を負の値または零(C50)で、この変数Cに設定す
る。
第7図に、可変長動的コモン宣言サブルーチンDCOM
の使用例を示す。第7図(a)は主プログラム、第7図
(b)は可変長動的コモンを使用するサブプログラムで
ある。主プログラム中で、71は可変長動的コモンの宣
言、72は可変長動的コモンを使用するプログラムの呼
び出しである。
サブプログラム中で、73はコモンの宣言で、/A/は
コモンの名前、ARYI  (1000)は配列1の要
素数が1000(1要素当り4バイト)であることを示
す。したがって、74に示すように、実際に使用するA
RYI (配列1)の要素数は、5IZE/4である。
本使用例では、第1引数がコモン名の文字列“A”、第
2引数すがO1第3引数Cが変数5IZEである(但し
、ここでは、定義づけを示す。)。従って、このCAL
L文では、名称Aのコモンに対して、使用可能なメモリ
を全て割り当て、その領域長を変数5IZEに正の値で
設定することになる。
次に、動的コモンの管理方法を第3図を用いて説明する
。FORTRANは実行時の状態管理のため、す・ユー
ザプルな(各プログラムが同一個所をアクセスできる)
テーブルモジュール(RTABと呼ぶ)40を提供して
おり、その中に動的コモン管理テーブルアドレス401
として初期値0のポインタを持っている。最初に動的コ
モンを確保すると動的コモン管理テーブルエントリ34
1が1つ作成され、コモンの名前、アドレス、サイズが
コモン情報として登録される。そしてRTAB中のポイ
ンタにこのテーブルアドレスを設定する。動的コモンを
確保する毎に動的コモン管理テーブルエントリ342,
343が追加され、チエインがはられる。最終エントり
のチエイン情報は0である。351,352.353・
・・・・・は、動的に確保されたコモンエリアである。
次に、このサブルーチンの動きを、第4図により説明す
る。
まず、FORTRANが提供しているり・ユーザプルな
テーブルモジュール(RTAB)(第3図)をロードし
、その中に設定されている動的コモン管理テーブルアド
レスを取り出す(501)。
動的コモン管理テーブルには、確保済みの動的コモンに
対する名前、アドレス、サイズが登録されている。この
動的コモン管理テーブルをコモン名でサーチし、登録済
みか否かをチエツクする(502)。
登録済みであれば、サイズをチエツクしく503゜50
4、)、要求サイズが登録サイズ以下であるときは正の
、要求サイズが登録サイズを越えるときは負の、テーブ
ル中のサイズによるリターン情報を返す(505,50
6,507)。未登録であれば(503)、ユーザ指定
に従って、要求がb〉0の固定長の場合は(508)、
この要求のOSマクロを発行して要求サイズのエリアを
確保する(509>。確保できれば(510) 、確保
済み動的コモンとして、動的コモン管理テーブルに登録
し、リターン情報として確保したサイズを返す(511
,512,513)。確保できなかった場合は(510
)登録は行なわず、最大長エリア要求のOSマクロを発
行している確保可能な最大サイズを求め、リターン情報
としてその値を負の値で返す(518〜520)。この
とき、確保したエリアはすぐ解放する。ユーザ指定に従
って、要求が固定サイズでない場合(508)、まず、
最大長でエリアを確保しく514) 、要求がb−〇、
すなわちユーザ指定値を引かない場合は、確保したサイ
ズをリターン情報として返す(515゜511〜513
)。要求がb〈0、すなわちユーザ指定値を引く場合は
、確保したサイズからユーザ指定値を差引いた値をリタ
ーン情報として返しく516) 、残りのユーザ指定値
のサイズのエリアは解放し、他の目的のために使用可能
とする(517)。
(動的コモンを使用するプログラム) さて、第5図と第6図により、動的コモンを使用するプ
ログラムについて、更に詳細に説明する。
前述のように、一般に、動的コモンを使用するプログラ
ムでは、固定長でも可変長でも、コモンのエリアをプロ
グラム中に確保せず、代りに、動的コモン情報として名
前、サイズ、およびプログラム中のコモン参照アドレス
情報を出力する。そして、プログラムの開始処理でエリ
アの確保とアドレスの解決(メモリ上の実際のアドレス
を得ること)を行う。
第5図に、動的コモン情報とアドレス解決の例を示す。
動的コモン情報32は、コモン名″C0M1″サイズS
の他に、アドレス情報3211.2・・・・・・nとし
てオブジェクト61中のそのコモン62を参照するアド
レス定数611,612.・・・・・・の位置と、その
定数で参照するコモン62中の位置を持っている。動的
コモンに対するエリアが確保されコモンアドレスが決定
すると、動的コモン情報32中のアドレス情報をとり出
し、オブジェクト61中のアドレス定数の値としてコモ
ン中の参照アドレスを設定する。第5図の場合、A (
CoMl)の値としてコモンC0M1の先頭アドレスL
、+=0が設定され、A (RL)の値としてコモンC
OMIの先頭アドレス+L2の値が設定される。
第5図の動作では、可変長動的コモンも、通常の動的コ
モンと同様に処理される。
第6図に、動的コモンを使用するプログラムの開始処理
を示す。まず、す・ユーザプルなテーブルモジュールを
ロードして、動的コモン管理テーブルのアドレスをとり
出す(701)。次に、プログラム中の動的コモン情報
を取り出しく702)、コモン名をキーに動的コモン管
理テーブルをサーチする(703)。そのコモン名が登
録済であれば(704)、そのエリアは既に確保済なの
でテーブル中のアドレスによって、プログラム中のコモ
ンのアドレスを解決する。このとき、要求サイズが登録
されている確保サイズより大きければエラーとする(7
05,706)。未登録であれば、要求サイズのエリア
を確保しく710,711)、動的コモン管理テーブル
に名前、アドレス、および、サイズを登録する(712
)。そして、確保したアドレスでプログラム中のコモン
のアドレスを解決する(707)。以上の処理をプログ
ラム中の全ての動的コモンに対して行う(703゜70
9)。
第6図の動作で、可変長動的コモンの場合は、可変長動
的コモンの宣言時にDCOMサービルサブルーチンがコ
ールされて、エリアが確保され、動的コモン管理テーブ
ルに登録済とされているものである。
なお、開始処理終了後のプログラムの動きは、従来のコ
モンと全く同じである。
(使用例) 第7図に、可変長動的コモンの使用例を示す。
同図(a)の主プログラムMAINで、DCOMサブル
ーチン71をコールして、コモンAが可変長動的コモン
であることを宣言している。第2引数b=oは、可変長
動的コモン宣言サブルーチンの規則により、使用可能な
最大長のエリアを要求しているので、使用可能な最大長
のエリアが確保され、リターン情報として、確保された
サイズが変数5IZHに設定される。
次に、可変長動的コモンを使用する副プログラム5UB
Iを、コモンサイズ5IZEを引数としてコールする。
可変長動的コモンを使用する副プログラム5UBlでは
、メモリによって大きさを変更したい変数ARY1を可
変長動的コモンA中の最後の配列として定義し、宣言し
た要素数には関係なく、確保したエリアサイズで決まる
要素数まで使用する。
本実施例によれば、可変長動的コモンを使用するプログ
ラムの実行前に、可変長動的コモン宣言サブルーチンを
コールするだしJで、実行中の使用メモリを自由に変更
し資源の有効活用と性能向上を図ることができるという
効果がある。
〔発明の効果〕
本発明によれば、高級言語で作成するプログラムでも、
可変長動的コモンを使用することにより、実行時に使用
可能なメモリ量によって変数域の大きさを変更してメモ
リを有効に利用し、性能向上を図ることができる等、優
れた効果を奏する。
【図面の簡単な説明】
第1図は、本発明の一実施例の可変長動的コモンの解決
方式の構成図、第2図は可変長動的コモン宣言ルーチン
の引用方法を示す図、第3図はり・ユーザプルなテーブ
ルモジュールと動的コモン管理テーブルとの関係を示す
図、第4図は可変長動的コモン宣言ルーチンの動きを示
すフローチャート、第5図は動的コモン情報とアドレス
解決との関係を示す図、第6図は動的コモンに対するプ
ログラム開始処理を示すフローチャート、第7図は可変
長動的コモンの使用例を示す図、第8図はリンケージエ
ディタを用いた従来の静的コモンの解決方式の構成図、
第9図は従来の動的コモンの解決方式の構成図である。 20.30・・・・・・・・・主プログラム、20A、
30A・・・・・・・・・サブプログラムA、20B、
30B・・・・・・・・・サブプログラムB、21.3
1・・・・・・・・・ロードモジュール、210,31
0・・・・・・・・・メインCセクション、21A、3
1A・・・・・・・・・ACセクション、21B、31
B・・・・・・・・・BCセクション、2232・・・
・・・・・・動的コモン情報、23.33・・・・・・
・・・FORTRAN実行時ルーチン、24.34・・
・・・・・・・動的コモン管理テーブル、25.35・
・・・・・・・・動的コモン。

Claims (1)

  1. 【特許請求の範囲】 1、高級言語で作成した複数のプログラムに共有のコモ
    ンを用いてプログラムを実行しデータを処理するシステ
    ムにおいて、コンパイル時に、コモン名および可変長と
    すべきメモリ領域サイズを表わす変数を定義したコモン
    を動的コモンとして宣言する手段と、プログラムの実行
    時に、ユーザ指定の大きさで前記動的コモンのメモリ領
    域サイズを決定する手段とを備えたことを特徴とする可
    変長動的コモンの実現方式。 2、ユーザの指定値に応じて動的コモンのメモリ領域を
    確保する手段と、動的コモンの確保済み領域を登録する
    ための動的コモン管理テーブルとを備えたことを特徴と
    する請求項1記載の可変長動的コモンの実現方式。
JP23508888A 1988-09-21 1988-09-21 可変長動的コモンの実現方式 Pending JPH0283730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23508888A JPH0283730A (ja) 1988-09-21 1988-09-21 可変長動的コモンの実現方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23508888A JPH0283730A (ja) 1988-09-21 1988-09-21 可変長動的コモンの実現方式

Publications (1)

Publication Number Publication Date
JPH0283730A true JPH0283730A (ja) 1990-03-23

Family

ID=16980888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23508888A Pending JPH0283730A (ja) 1988-09-21 1988-09-21 可変長動的コモンの実現方式

Country Status (1)

Country Link
JP (1) JPH0283730A (ja)

Similar Documents

Publication Publication Date Title
US6237044B1 (en) Method for object-oriented programming using dynamic interfaces
US7313797B2 (en) Uniprocessor operating system design facilitating fast context switching
US7225438B2 (en) Lazy compilation of template-generated classes in dynamic compilation execution environments
JP5897816B2 (ja) 依存性グラフのパラメータのスコーピング
US5999987A (en) Concurrent processing in object oriented parallel and near parallel
US5666533A (en) Program execution management using process enclaves which define the scope of high-level language semantics and threads improving cooperation between processes written in multiple languages
JP2006504160A (ja) グラフに基づく計算の起動および制御
JPH02188833A (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
US20040268301A1 (en) Adding new compiler methods to an integrated development environment
JPH05204656A (ja) スレッド固有データ保持方法
JP2000347874A (ja) レジスタ割当器を用いた呼出規則プロローグ・エピローグコード構築方法及び装置
US5487158A (en) Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
US7558935B1 (en) Method and system for optimizing memory allocation
US7058656B2 (en) System and method of using extensions in a data structure without interfering with applications unaware of the extensions
US7584452B1 (en) System and method for controlling the visibility and use of data in a programming environment
CN117193882A (zh) 一种基于微内核操作系统的elf加载方法
US6314561B1 (en) Intelligent cache management mechanism
US20030079210A1 (en) Integrated register allocator in a compiler
US6275985B1 (en) Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support
US20070143436A1 (en) Method, apparatus and program storage device for providing light weight system calls to improve user mode performance
US5826087A (en) Method and apparatus for cross calling programs of different lexical scoping methodology
US6748503B1 (en) System and method facilitating unmanaged code participation in garbage collection
JPH0283730A (ja) 可変長動的コモンの実現方式
Humphrey et al. Kernel-level threads for dynamic, hard real-time environments
Almajali et al. Coupling availability and efficiency for aspect oriented runtime weaving systems