JPS61272831A - ハツシユテ−ブルサイズ適合化方式 - Google Patents
ハツシユテ−ブルサイズ適合化方式Info
- Publication number
- JPS61272831A JPS61272831A JP60114784A JP11478485A JPS61272831A JP S61272831 A JPS61272831 A JP S61272831A JP 60114784 A JP60114784 A JP 60114784A JP 11478485 A JP11478485 A JP 11478485A JP S61272831 A JPS61272831 A JP S61272831A
- Authority
- JP
- Japan
- Prior art keywords
- hash table
- declaration
- source program
- name
- lines
- 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
Links
- 238000000034 method Methods 0.000 title claims description 9
- 230000006978 adaptation Effects 0.000 title claims description 7
- 230000012447 hatching Effects 0.000 title 1
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 2
- 101100545272 Caenorhabditis elegans zif-1 gene Proteins 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、コンパイラの名標におけるハツシュテーブル
サイズの適合化方式に関する。
サイズの適合化方式に関する。
(従来の技術)
従来、コンパイラにおいてハツシュテーブルは、固定的
なサイズによって確保されていた。
なサイズによって確保されていた。
したがって、−走行数以上の規模のソースプログラムの
コンパイルではソースプログラムに書かれた名標に対し
てシノニムアイテムが増加する。
コンパイルではソースプログラムに書かれた名標に対し
てシノニムアイテムが増加する。
ここで、シノニムアイテムは名標のノ%ツシュ値が他の
名標と同じ値をもつときに、名標を一意的に検索できる
ように作成されるアイテムである。
名標と同じ値をもつときに、名標を一意的に検索できる
ように作成されるアイテムである。
第5図は従来方式によるハツシュテーブルサイズ適合化
方式において、最大ハツシュ値を5に固定していた場合
にソースプログラムYのコンパイルで宣言名標F、G、
H,I、J、に、Lの最小7個のシノニムアイテムが発
生するもようを示す説明図である。すなわち、第5図に
おいてはシノニムアイテムが増加するため、参照名標と
一致する宣言名標を照合する処理量が増加してしまう。
方式において、最大ハツシュ値を5に固定していた場合
にソースプログラムYのコンパイルで宣言名標F、G、
H,I、J、に、Lの最小7個のシノニムアイテムが発
生するもようを示す説明図である。すなわち、第5図に
おいてはシノニムアイテムが増加するため、参照名標と
一致する宣言名標を照合する処理量が増加してしまう。
(発明が解決しようとする問題点)
上述した従来のハツシュテーブルサイズ適合化方式は、
上記のように一定行数以上の規模のノースプログラムの
コンパイルではソースプログラムに書かれた名標に対し
てシノニムアイテムが増加するため、参照名標と宣言名
標との間での照合の効率が低下するという欠点がある。
上記のように一定行数以上の規模のノースプログラムの
コンパイルではソースプログラムに書かれた名標に対し
てシノニムアイテムが増加するため、参照名標と宣言名
標との間での照合の効率が低下するという欠点がある。
本発明の目的は、ソースプログラムの行数が多くなると
名標の個数も増加するということに着目してソースプロ
グラムを読込み、トークン列に変換する手段でソースプ
ログラム行数をカウントし、ソースプログラムの全行を
読込んだ後、合計のソースプログラム行数を保存してお
き、保存されている合計ノースプログラム行数の値から
ハツシュ値のばらつきを考慮したハツシュテーブルサイ
ズを決定することにより上記欠点を除去し、シノニムア
イテムの増加を防ぐことができるように構成したハツシ
ュテーブルサイズ適合化方式を提供することにある。
名標の個数も増加するということに着目してソースプロ
グラムを読込み、トークン列に変換する手段でソースプ
ログラム行数をカウントし、ソースプログラムの全行を
読込んだ後、合計のソースプログラム行数を保存してお
き、保存されている合計ノースプログラム行数の値から
ハツシュ値のばらつきを考慮したハツシュテーブルサイ
ズを決定することにより上記欠点を除去し、シノニムア
イテムの増加を防ぐことができるように構成したハツシ
ュテーブルサイズ適合化方式を提供することにある。
(問題点を解決すべき手段)
本発明によるハツシュテーブルサイズ適合化方式は、次
の第1〜第5の手段によシ構成したものである。
の第1〜第5の手段によシ構成したものである。
第1の手段は、ソースプログラムを読込んでトークン列
に変換するためのものであシ、第2の手段はソースプロ
グラム行数をカウントするためのものであシ、第3の手
段はトークン列の構文を解析して参照名標と宣言名標と
を識別するためのものであり、第4の手段は宣言名標を
ハツシュテーブルへ登録するためのものであシ、第5の
手段は参照名標と宣言名標とをハツシュテーブルを介し
て照合するためのものである。
に変換するためのものであシ、第2の手段はソースプロ
グラム行数をカウントするためのものであシ、第3の手
段はトークン列の構文を解析して参照名標と宣言名標と
を識別するためのものであり、第4の手段は宣言名標を
ハツシュテーブルへ登録するためのものであシ、第5の
手段は参照名標と宣言名標とをハツシュテーブルを介し
て照合するためのものである。
(実施例)
次に、本発明について図面を参照して説明する。
第1図は、参照名標と宣言名標とを照合する過程を示す
説明図である。第1図において、1はソースプログラム
読込み/トークン列変換手段、およびソース行数カウン
ト手段、2は構文解析手段、3は宣言手段、4は参照名
標と宣言名標とを照合する手段、6はトークン列、6は
宣言名標、1は参照名標、8は合計ソースプログラム行
数、9はハツシュテーブル、10はシノニムアイテム、
11はソースプログラムである。
説明図である。第1図において、1はソースプログラム
読込み/トークン列変換手段、およびソース行数カウン
ト手段、2は構文解析手段、3は宣言手段、4は参照名
標と宣言名標とを照合する手段、6はトークン列、6は
宣言名標、1は参照名標、8は合計ソースプログラム行
数、9はハツシュテーブル、10はシノニムアイテム、
11はソースプログラムである。
第1図において、まずソースプログラム読込み/トーク
ン列変換手段ならびにソース行数カウント手段1で合計
ソースプログラム行数8を求める。
ン列変換手段ならびにソース行数カウント手段1で合計
ソースプログラム行数8を求める。
さらに、構文解析手段2で宣言名標6と参照名標7とを
識別し、宣言手段3で合計ソースプログラム行数8から
ハツシュテーブル9のサイズを求めてハツシュテーブル
9を確保し、宣言名標6をハツシュテーブル9へ登録ス
る。ハツシュテーブル9の内部のアイテムが既に登録済
みであれば、このアイテムとチェインするシノニムアイ
テム10として登録する。次に、参照名標7と宣言名標
6との照合では参照名標7のハツシュ値を計算し、ハツ
シュテーブル9の該当ハツシュ値に対応するアイテムを
参照し、参照名標1と一致する宣言名標6であるか否か
を調べる。上記両名標が一致すれば、求める宣言名標6
である。不一致ならば該当アイテムとチェインするシノ
ニムアイテム10について調べる。
識別し、宣言手段3で合計ソースプログラム行数8から
ハツシュテーブル9のサイズを求めてハツシュテーブル
9を確保し、宣言名標6をハツシュテーブル9へ登録ス
る。ハツシュテーブル9の内部のアイテムが既に登録済
みであれば、このアイテムとチェインするシノニムアイ
テム10として登録する。次に、参照名標7と宣言名標
6との照合では参照名標7のハツシュ値を計算し、ハツ
シュテーブル9の該当ハツシュ値に対応するアイテムを
参照し、参照名標1と一致する宣言名標6であるか否か
を調べる。上記両名標が一致すれば、求める宣言名標6
である。不一致ならば該当アイテムとチェインするシノ
ニムアイテム10について調べる。
第2図は、宣言手段3で合計ソースプログラム行数8か
ら最大ハツシュ値を求め、次に最大ハツシュ値からハツ
シュテーブル9のサイズを求めて、ハツシュテーブル9
のサイズでハツシュテーブル領域を確保する動作を示す
説明図である。最大ノ・ツシュ値の算出では、仮にプロ
グラムの内部に定義される宣言名標6を行数に対してほ
ぼ7割と仮定する。
ら最大ハツシュ値を求め、次に最大ハツシュ値からハツ
シュテーブル9のサイズを求めて、ハツシュテーブル9
のサイズでハツシュテーブル領域を確保する動作を示す
説明図である。最大ノ・ツシュ値の算出では、仮にプロ
グラムの内部に定義される宣言名標6を行数に対してほ
ぼ7割と仮定する。
ここで、A、B、・・・Lを宣言名標6とし、宣言名標
A−Fの6個が書かれたn行のソースプログラムXと宣
言名標A−Lの12個が誉かれたn+m行のソースプロ
グラムYとを仮定する。
A−Fの6個が書かれたn行のソースプログラムXと宣
言名標A−Lの12個が誉かれたn+m行のソースプロ
グラムYとを仮定する。
第3図および第4図では、仮定したソースプログラムX
とソースプログラムYとをコンパイルしたとき、宣言名
標6がハツシュテーブル9に登録された状態を示す説明
図である。
とソースプログラムYとをコンパイルしたとき、宣言名
標6がハツシュテーブル9に登録された状態を示す説明
図である。
第3図は、ソースプログラムXのコンパイルにおいて合
計ソースプログラム行数8(n)から最大ハツシュ[−
6K設定してハツシュテーブル9を確保し、宣言名標6
を)−ツシュテーブル9へ登録した場合に宣言名標6(
F)の最小1個のシノニムアイテム10が発生するもよ
うを示す説明図である。
計ソースプログラム行数8(n)から最大ハツシュ[−
6K設定してハツシュテーブル9を確保し、宣言名標6
を)−ツシュテーブル9へ登録した場合に宣言名標6(
F)の最小1個のシノニムアイテム10が発生するもよ
うを示す説明図である。
第4図は、ソースプログラムYのコンノζイルにおいて
合計ノースプログラム行数g(n+m)から最大ハツシ
ュ値を10に設定してハツシュテーブル9を確保し、宣
言名標6をハツシュテーブル9へ登録した場合に宣言名
標6(K、L)の最小2個のシノニムアイテム10が発
生するもようを示す説明図である。
合計ノースプログラム行数g(n+m)から最大ハツシ
ュ値を10に設定してハツシュテーブル9を確保し、宣
言名標6をハツシュテーブル9へ登録した場合に宣言名
標6(K、L)の最小2個のシノニムアイテム10が発
生するもようを示す説明図である。
(発明の効果)
以上説明したように本発明は、ソースプログラム行数を
もとにしてハツシュ値のばらつきを考慮したハツシュテ
ーブルサイズを設定することKよシ、シノニムアイテム
の増加を防ぐことができ、ソースプログラム行数が一定
量以上になっても参照名標と宣言名標との照合を効率よ
く行うことができるという効果がある。
もとにしてハツシュ値のばらつきを考慮したハツシュテ
ーブルサイズを設定することKよシ、シノニムアイテム
の増加を防ぐことができ、ソースプログラム行数が一定
量以上になっても参照名標と宣言名標との照合を効率よ
く行うことができるという効果がある。
第1図は、本発明によるハツシュテーブルサイズ適合化
方式を実現する一実施例を示すブロック図である。 第2図は、本発明におけるハツシュテーブル領域の確保
動作を示す説明図である。 第3図は、本発明におけるソースプログラムXのハツシ
ュテーブルとシノニムアイテムトラ示す説明図である。 第4図は、本発明におけるソースプログラムYのハツシ
ュテーブルとシノニムアイテムとを示す説明図である。 第5図は、従来技術によるソースプログラムYノハツシ
ュテーブルとシノニムアイテムとを示す説明図である。 1・・・ノースプログラム読込み/トークン列変換手段
およびソース行数カウント手 段 2・・・構文解析手段 3・・・宣言手段 4・・・参照名標と宣言名標とを照合する手段5・e・
トークン列 6・・・宣言名標 7・・・参照名標 8・・・合計ソースプログラム行数 9・・・ハツシュテーブル 10・・シノニムアイテム 11・・ノースプログラム
方式を実現する一実施例を示すブロック図である。 第2図は、本発明におけるハツシュテーブル領域の確保
動作を示す説明図である。 第3図は、本発明におけるソースプログラムXのハツシ
ュテーブルとシノニムアイテムトラ示す説明図である。 第4図は、本発明におけるソースプログラムYのハツシ
ュテーブルとシノニムアイテムとを示す説明図である。 第5図は、従来技術によるソースプログラムYノハツシ
ュテーブルとシノニムアイテムとを示す説明図である。 1・・・ノースプログラム読込み/トークン列変換手段
およびソース行数カウント手 段 2・・・構文解析手段 3・・・宣言手段 4・・・参照名標と宣言名標とを照合する手段5・e・
トークン列 6・・・宣言名標 7・・・参照名標 8・・・合計ソースプログラム行数 9・・・ハツシュテーブル 10・・シノニムアイテム 11・・ノースプログラム
Claims (1)
- ソースプログラムを読込んでトークン列に変換するため
の第1の手段と、ソースプログラム行数をカウントする
ための第2の手段と、前記トークン列の構文を解析して
参照名標と宣言名標とを識別するための第3の手段と、
前記宣言名標をハッシュテーブルへ登録するための第4
の手段と、前記参照名標と前記宣言名標とをハッシュテ
ーブルを介して照合するための第5の手段とを具備し、
前記ソースプログラム行数にもとづいてハッシュテーブ
ルサイズを最適に決定することができるように構成した
ことを特徴とするハッシュテーブルサイズ適合化方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60114784A JPS61272831A (ja) | 1985-05-28 | 1985-05-28 | ハツシユテ−ブルサイズ適合化方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60114784A JPS61272831A (ja) | 1985-05-28 | 1985-05-28 | ハツシユテ−ブルサイズ適合化方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS61272831A true JPS61272831A (ja) | 1986-12-03 |
Family
ID=14646594
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60114784A Pending JPS61272831A (ja) | 1985-05-28 | 1985-05-28 | ハツシユテ−ブルサイズ適合化方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61272831A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63271533A (ja) * | 1987-04-28 | 1988-11-09 | Nec Corp | 翻訳システムにおける名標の参照解決方式 |
| JPH01267736A (ja) * | 1988-04-19 | 1989-10-25 | Nec Corp | 言語処理プログラムの定数展開処理方式 |
| US7318219B2 (en) | 2003-11-28 | 2008-01-08 | International Business Machines Corporation | System and method for performance monitoring |
-
1985
- 1985-05-28 JP JP60114784A patent/JPS61272831A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63271533A (ja) * | 1987-04-28 | 1988-11-09 | Nec Corp | 翻訳システムにおける名標の参照解決方式 |
| JPH01267736A (ja) * | 1988-04-19 | 1989-10-25 | Nec Corp | 言語処理プログラムの定数展開処理方式 |
| US7318219B2 (en) | 2003-11-28 | 2008-01-08 | International Business Machines Corporation | System and method for performance monitoring |
| US7890934B2 (en) | 2003-11-28 | 2011-02-15 | International Business Machines Corporation | System and method for performance monitoring |
| US8181160B2 (en) | 2003-11-28 | 2012-05-15 | International Business Machines Corporation | System and method for performance monitoring |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109902105B (zh) | 用于微服务架构的数据查询系统、方法、设备及存储介质 | |
| CA2500422A1 (en) | Annotated automaton encoding of xml schema for high performance schema validation | |
| CN110765750B (zh) | 报表数据录入方法及终端设备 | |
| CN110704063A (zh) | 编译和执行智能合约的方法及装置 | |
| WO2019242125A1 (zh) | 企业上下游关系的获取方法、装置、终端设备及介质 | |
| US7596783B2 (en) | Methods and apparatus to implement annotation based thunking | |
| CN115098589A (zh) | 一种基于物联网的工业能耗数据监控方法及装置 | |
| CN115640578A (zh) | 应用程序的漏洞可达性分析方法、装置、设备及介质 | |
| CN115048111B (zh) | 基于元数据的代码生成方法、装置、设备及介质 | |
| CN112686759A (zh) | 对账监测方法、装置、设备及介质 | |
| CN117972399B (zh) | 用于二进制sca的特征提取方法、装置、设备及介质 | |
| DE60120690D1 (de) | System zur Analyse von Tabellenkalkulationsdaten | |
| CN116795656B (zh) | 埋点出错的预警提示方法、装置、设备及存储介质 | |
| WO2020248784A1 (zh) | 一种在计算机上实现母语编程的方法 | |
| CN117075961A (zh) | 字节码文件的生成和执行方法、装置、编译设备和虚拟机 | |
| CN114253548A (zh) | 一种xml文档处理方法、装置、电子设备及存储介质 | |
| CN112667874A (zh) | 网页的数据抽取方法、装置、电子设备及存储介质 | |
| CN110007900A (zh) | 工具类调用方法、系统、计算机设备和存储介质 | |
| Raman et al. | The classads language | |
| CN119358537A (zh) | 标定数据文件解析方法、装置、电子设备及存储介质 | |
| CN119359116A (zh) | 能源系统的指标计算方法、介质及设备 | |
| JPH04362738A (ja) | 変数管理方法 | |
| JPH05119960A (ja) | バイトオーダ依存コーデイング検出方法 | |
| CN120144515A (zh) | 一种自适应不同类型时钟芯片的方法及装置 | |
| CN119336806A (zh) | 基于智能计算中心算力的数据集血缘关系确定方法及装置 |