JP4129981B2 - コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 - Google Patents
コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 Download PDFInfo
- Publication number
- JP4129981B2 JP4129981B2 JP2004109650A JP2004109650A JP4129981B2 JP 4129981 B2 JP4129981 B2 JP 4129981B2 JP 2004109650 A JP2004109650 A JP 2004109650A JP 2004109650 A JP2004109650 A JP 2004109650A JP 4129981 B2 JP4129981 B2 JP 4129981B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- variable
- conversion instruction
- stored
- code system
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Description
インターネットURL「http://cvs.apache.org/viewcvs.cgi/xml-xerces/java/src/org/apache/xerces/impl/io/UTF8Reader.java?rev=1.7&content-type=text/vnd.viewcvs-markup」 S. Makino, K. Tamura, T. Imamura, and Y. Nakamura. Implementation and Performance of WS-Security, IBM Research Report RT0546, 2003. J. Knoop, O. Ruthing, and B. Steffen. Optimal code motion: theory & practice. ACM TOPLAS,18(3): 300-324, 1996. R. Bodik, R. Gupta, and M.L Soffa. Complete removal of redundant expressions. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, pages 1-14, 1998.
1.その実行パスにおいて変換命令が実行される場合
2.その実行パスにおいて、その文字変数に対してUTF16の文字の記憶領域を確保すると共に文字コード体系をUTF16に設定するコンストラクタが実行される場合
3.その実行パスにおいて、UTF16の文字を戻り値として文字変数に格納するメソッドが実行される場合
例えば、メソッド情報格納部120は、UTF16の文字を戻り値とするメソッドの識別情報を格納し、変換命令除去部110は、各実行パスにおいて、メソッド情報格納部120に格納された識別情報に対応するメソッドの戻り値が文字変数に格納されるか否かを判断してもよい。
Boolean isUTF8(String str); コード体系情報210を読み出すAPI。
Byte [] getRawBytes(String str); 第1文字格納領域225又は第2文字格納領域235を読み出すAPI。
Int getRawLength(String str); データ長情報240を読み出すAPI。
String create(byte []date, int start, int length)
このメソッドは、第1引数として取得した文字データのうち、第2引数及び第3引数で指定される部分を取り出して、UTF8の文字を有するオブジェクトとして生成する。
org.xml.sax.Parser.parse(..)
org.xml.sax.XMLReader.parse(..)
javax.xml.parsers.SAXParser.parse(..)
DOMアプリケーションプログラム中における以下のメソッド、又はこれらのメソッドから更に呼び出されるメソッド。(サブクラスを含む)
Javax.xml.parsers.DocumentBuilder.parse(..)
Org.apache.xml.serialize.XMLserializer.serialize(..)
Javax.xml.parsers.DocumentBuilderFactory.newInstance(..)
Pull Parserアプリケーションプログラム中における以下のメソッド、又はこれらのメソッドから更に呼び出されるメソッド。(サブクラスを含む)
Org.xmlpull.v1.XmlPullParser.next()
Org.xmlpull.v1.XmlPullParser.nextToken()
Org.xmlpull.v1.XmlPullParser.nextTag()
Org.xmlpull.v1.XmlPullParser.nextText()
N-COMP(bb):基本ブロックbbにフォーマットチェック処理が存在し、そのフォーマットチェック処理をその基本ブロックbbの入口に配置しても安全か否か(即ち、対象プログラムの意味が変わらないか否か)
X-COMP(bb):基本ブロックbbにフォーマットチェック処理が存在し、そのフォーマットチェック処理をその基本ブロックの出口に配置しても安全か否か(即ち、対象プログラムの意味が変わらないか否か)
これに対して、本実施例におけるコンパイラ10は、条件分岐の数を減らして変換命令の実行効率を高めることができる。以降、本実施例におけるコンパイラ10が生成する変換命令の一例を説明する。
(項目1)最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラであって、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令を生成する変換命令生成部と、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、当該変換命令を除去する変換命令除去部とを備えるコンパイラ。
(項目2) 前記変換命令生成部は、XML文書における文字の文字コード体系であるUTF8から、Javaプログラムとして記述された前記複数の処理が文字列を操作する場合に使用する文字コード体系であるUTF16に変換する命令を前記変換命令として生成する項目1記載のコンパイラ。
(項目4) 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字コード体系を設定するコンストラクタにより生成され、前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記文字変数のコンストラクタが当該文字変数を前記第2の文字コード体系に設定する場合に、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する項目1記載のコンパイラ。
(項目6) 前記第2の文字コード体系の文字を戻り値とするメソッドの識別情報を格納するメソッド情報格納部と、前記コンストラクタにより前記第2の文字コード体系に設定された文字変数に格納された文字と、前記変換命令により既に前記第2の文字コード体系に変換された文字と、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値との何れかを、更に戻り値とするメソッドの識別情報を、前記メソッド情報格納部に格納するメソッド再帰判断部とを更に備え、前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値が前記文字変数に格納される場合に、当該実行パスにおいて前記第2の文字コード体系の文字が前記文字変数に格納されると判断する項目5記載のコンパイラ。
(項目8) 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラであって、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々として、前記文字変数に格納される文字が前記第2の文字コード体系である場合に当該処理を実行し、当該文字が前記第1の文字コード体系である場合に例外を発生させる例外付命令列を生成する文字操作処理生成部と、前記例外が発生した場合に実行され、前記文字変数に格納される文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納し、前記例外を発生させた当該処理に復帰させる例外ハンドラを生成する例外ハンドラ生成部とを備えるコンパイラ。
(項目10) 前記文字変数は、当該文字変数が前記第1の文字コード体系及び前記第2の文字コード体系の何れであるかを示すコード体系情報と、第1の文字コード体系の文字を格納する第1文字格納領域と、第2の文字コード体系の文字を格納する第2文字格納領域とを管理し、前記文字操作処理生成部は、第1の文字コード体系の文字が前記文字変数に格納された場合に、前記第2文字格納領域のアドレスを示すポインタを無効なアドレスに設定することにより前記例外付命令列に例外を発生させる命令列と、前記第2の文字コード体系の文字が前記文字変数に格納された場合に前記第2文字格納領域のアドレスを有効なアドレスに設定する命令列と、前記例外付命令列として前記第2文字格納領域を読み出す命令列とを生成する項目8記載のコンパイラ。
(項目12) 前記文字コードのデータサイズは、前記文字コードの値の範囲に応じて異なり、前記取得処理生成部は、前記文字コードを含む予め定められたサイズの単位データを取得する命令列を生成し、前記変換検出処理生成部は、前記文字コードのデータサイズ毎に、前記単位データに当該データサイズの複数の文字コードが連続して配列される場合に実行すべき変換処理と並行して、前記単位データに当該データサイズの複数の文字コードが連続して配列されているか否かを検出する検出処理を実行する命令列を生成する項目11記載のコンパイラ。
項目12記載のコンパイラ。
(項目14) 前記変換検出処理生成部は、前記複数の変換処理の各々として、当該変換処理の処理結果を当該変換処理に対応して予め定められた記憶領域に格納する命令列を生成し、前記選択処理生成部は、前記検出処理により検出された前記文字コードの値の範囲に基づいて、当該文字コードを変換した処理結果を格納する記憶領域のアドレスを生成し、生成した当該アドレスから処理結果を読み出す命令列を生成する項目11記載のコンパイラ。
(項目16) 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラとしてコンピュータを機能させるコンパイラプログラムであって、前記コンピュータを、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令を生成する変換命令生成部と、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、当該変換命令を除去する変換命令除去部として機能させるコンパイラプログラム。
(項目18) 最適化対象の対象プログラムにおいて文字変数に格納される文字を第1の文字コード体系から第2の文字コード体系に変換する変換処理を最適化するコンパイラとして、コンピュータを機能させるコンパイラプログラムであって、前記コンピュータを、変換対象の文字の文字コードを取得する処理の命令列を生成する取得処理生成部と、前記文字コードの値の範囲に応じて何れかを選択して実行すべき複数の前記変換処理の各々と、前記文字コードの値の範囲を検出する検出処理とを並行して実行する命令列を生成する変換検出処理生成部と、前記複数の変換処理のうち何れかの変換処理の処理結果を、前記検出処理の検出結果に基づいて選択して出力する命令列を生成する選択処理生成部として機能させるコンパイラプログラム。
(項目20) 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラを、コンピュータにより制御する制御方法であって、前記コンピュータにより、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令を生成する変換命令生成段階と、前記変換命令生成段階において生成された各変換命令について、当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、当該変換命令を除去する変換命令除去段階とを備える制御方法。
(項目21) 最適化対象の対象プログラムにおいて文字変数に格納される文字を第1の文字コード体系から第2の文字コード体系に変換する変換処理を最適化するコンパイラを、コンピュータにより制御する制御方法であって、前記コンピュータにより、変換対象の文字の文字コードを取得する処理の命令列を生成する取得処理生成段階と、前記文字コードの値の範囲に応じて何れかを選択して実行すべき複数の前記変換処理の各々と、前記文字コードの値の範囲を検出する検出処理とを並行して実行する命令列を生成する変換検出処理生成段階と、前記複数の変換処理のうち何れかの変換処理の処理結果を、前記検出処理の検出結果に基づいて選択して出力する命令列を生成する選択処理生成段階とを備える制御方法。
20 文字変数
50 命令群
70 コンパイラ
80 中央処理装置
100 文字コード体系判定部
105 変換命令生成部
110 変換命令除去部
120 メソッド情報格納部
130 メソッド再帰判断部
140 文字操作処理生成部
145 例外ハンドラ生成部
150 出力処理命令生成部
210 コード体系情報
220 第1ポインタ
225 第1文字格納領域
230 第2ポインタ
235 第2文字格納領域
240 データ長情報
500 コンピュータ
700 取得処理生成部
710 変換検出処理生成部
720 選択処理生成部
Claims (21)
- 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラ装置であって、
前記対象プログラム中における、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って実行される位置に、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令をCPUの動作により生成する変換命令生成部と、
前記変換命令生成部により生成された各変換命令について、前記対象プログラム中における当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、前記CPUの動作により、前記対象プログラムから当該変換命令を除去する変換命令除去部と
を備えるコンパイラ装置。 - 前記変換命令生成部は、CPUの動作により、XML文書における文字の文字コード体系であるUTF8から、Java(登録商標)プログラムとして記述された前記複数の処理が文字列を操作する場合に使用する文字コード体系であるUTF16に変換する命令を前記変換命令として生成する
請求項1に記載のコンパイラ装置。 - 前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、前記対象プログラム中における、当該変換命令に先立って実行される何れかの実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納されない場合に、前記CPUの動作により、当該実行パスに新たな変換命令を生成し、元の変換命令を除去する
請求項1に記載のコンパイラ装置。 - 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記文字変数のコンストラクタが当該文字変数を前記第2の文字コード体系に設定する場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項1に記載のコンパイラ装置。 - 前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記第2の文字コード体系の文字を戻り値として前記文字変数に格納するメソッドが実行される場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項1に記載のコンパイラ装置。 - 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記第2の文字コード体系の文字を戻り値とするメソッドの識別情報を格納するメソッド情報格納部と、
前記コンストラクタにより前記第2の文字コード体系に設定された文字変数に格納された文字と、前記変換命令により既に前記第2の文字コード体系に変換された文字と、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値との何れかを、更に戻り値とするメソッドの識別情報を、前記CPUの動作により、前記メソッド情報格納部に格納するメソッド再帰判断部と
を更に備え、
前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値が前記文字変数に格納される場合に、前記CPUの動作により、当該実行パスにおいて前記第2の文字コード体系の文字が前記文字変数に格納されると判断する
請求項5に記載のコンパイラ装置。 - 前記文字変数に格納される文字を出力する処理として、前記文字変数に格納された文字が前記第1の文字コード体系である場合に当該文字を出力し、前記文字変数に格納された文字が前記第2の文字コード体系である場合に当該文字を前記第1の文字コード体系に戻して出力する命令列を、前記CPUの動作により生成する出力処理命令列生成部
を更に備える請求項1に記載のコンパイラ装置。 - 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラ装置としてコンピュータを機能させるコンパイラプログラムであって、
前記コンピュータを、
前記対象プログラム中における、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って実行される位置に、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令をCPUの動作により生成する変換命令生成部と、
前記変換命令生成部により生成された各変換命令について、前記対象プログラム中における当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、前記CPUの動作により、前記対象プログラムから当該変換命令を除去する変換命令除去部と
して機能させるコンパイラプログラム。 - 前記変換命令生成部は、前記CPUの動作により、XML文書における文字の文字コード体系であるUTF8から、Java(登録商標)プログラムとして記述された前記複数の処理が文字列を操作する場合に使用する文字コード体系であるUTF16に変換する命令を前記変換命令として生成する
請求項8に記載のコンパイラプログラム。 - 前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、前記対象プログラム中における、当該変換命令に先立って実行される何れかの実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納されない場合に、前記CPUの動作により、当該実行パスに新たな変換命令を生成し、元の変換命令を除去する 請求項8に記載のコンパイラプログラム。
- 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記文字変数のコンストラクタが当該文字変数を前記第2の文字コード体系に設定する場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項8に記載のコンパイラプログラム。 - 前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記第2の文字コード体系の文字を戻り値として前記文字変数に格納するメソッドが実行される場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項8に記載のコンパイラプログラム。 - 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記コンピュータは、前記第2の文字コード体系の文字を戻り値とするメソッドの識別情報を格納するメソッド情報格納部を備え、
当該コンパイラプログラムは、前記コンピュータを、
前記コンストラクタにより前記第2の文字コード体系に設定された文字変数に格納された文字と、前記変換命令により既に前記第2の文字コード体系に変換された文字と、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値との何れかを、更に戻り値とするメソッドの識別情報を、前記CPUの動作により、前記メソッド情報格納部に格納するメソッド再帰判断部と
して更に機能させ、
前記変換命令除去部は、前記変換命令生成部により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値が前記文字変数に格納される場合に、前記CPUの動作により、当該実行パスにおいて前記第2の文字コード体系の文字が前記文字変数に格納されると判断する
請求項12に記載のコンパイラプログラム。 - 当該コンパイラプログラムは、前記コンピュータを、
前記文字変数に格納される文字を出力する処理として、前記文字変数に格納された文字が前記第1の文字コード体系である場合に当該文字を出力し、前記文字変数に格納された文字が前記第2の文字コード体系である場合に当該文字を前記第1の文字コード体系に戻して出力する命令列を、前記CPUの動作により生成する出力処理命令列生成部
として更に機能させる請求項8に記載のコンパイラプログラム。 - 最適化対象の対象プログラムにおいて文字変数に格納される文字の文字コード体系の変換を最適化するコンパイラ装置を、コンピュータにより実現する方法であって、
前記対象プログラム中における、第1の文字コード体系により書き込まれた文字変数の文字を読み出して第2の文字コード体系において当該文字を使用する複数の処理の各々に先立って実行される位置に、当該文字を前記第1の文字コード体系から前記第2の文字コード体系に変換して当該文字変数に格納する変換命令を、前記コンピュータのCPUの動作により生成する変換命令生成段階と、
前記変換命令生成段階において生成された各変換命令について、前記対象プログラム中における当該変換命令に先立って実行される全ての実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納される場合に、前記コンピュータのCPUの動作により、前記対象プログラムから当該変換命令を除去する変換命令除去段階と
を備える方法。 - 前記変換命令生成段階は、CPUの動作により、XML文書における文字の文字コード体系であるUTF8から、Java(登録商標)プログラムとして記述された前記複数の処理が文字列を操作する場合に使用する文字コード体系であるUTF16に変換する命令を前記変換命令として生成する
請求項15に記載の方法。 - 前記変換命令除去段階は、前記変換命令生成段階により生成された各変換命令について、前記対象プログラム中における、当該変換命令に先立って実行される何れかの実行パスにおいて、前記文字変数に前記第2の文字コード体系の文字が格納されない場合に、前記CPUの動作により、当該実行パスに新たな変換命令を生成し、元の変換命令を除去する
請求項15に記載の方法。 - 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記変換命令除去段階は、前記変換命令生成段階により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記文字変数のコンストラクタが当該文字変数を前記第2の文字コード体系に設定する場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項15に記載の方法。 - 前記変換命令除去段階は、前記変換命令生成段階により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記第2の文字コード体系の文字を戻り値として前記文字変数に格納するメソッドが実行される場合に、前記CPUの動作により、当該実行パスにおいて前記文字変数に前記第2の文字コード体系の文字が格納されると判断する
請求項15に記載の方法。 - 前記文字変数は、文字を格納する記憶領域を確保すると共に、当該文字変数における文字コード体系を設定するコンストラクタにより生成され、
前記第2の文字コード体系の文字を戻り値とするメソッドの識別情報を前記コンピュータのメソッド情報格納部に格納するメソッド情報格納段階と、
前記コンストラクタにより前記第2の文字コード体系に設定された文字変数に格納された文字と、前記変換命令により既に前記第2の文字コード体系に変換された文字と、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値との何れかを、更に戻り値とするメソッドの識別情報を、前記CPUの動作により、前記メソッド情報格納部に格納するメソッド再帰判断段階と
を更に備え、
前記変換命令除去段階は、前記変換命令生成段階により生成された各変換命令について、当該変換命令に先立って実行される各実行パスにおいて、前記メソッド情報格納部に格納された識別情報に対応するメソッドの戻り値が前記文字変数に格納される場合に、前記CPUの動作により、当該実行パスにおいて前記第2の文字コード体系の文字が前記文字変数に格納されると判断する
請求項19に記載の方法。 - 前記文字変数に格納される文字を出力する処理として、前記文字変数に格納された文字が前記第1の文字コード体系である場合に当該文字を出力し、前記文字変数に格納された文字が前記第2の文字コード体系である場合に当該文字を前記第1の文字コード体系に戻して出力する命令列を、前記CPUの動作により生成する出力処理命令列生成段階
を更に備える請求項15に記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004109650A JP4129981B2 (ja) | 2004-04-02 | 2004-04-02 | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
US11/096,548 US7577936B2 (en) | 2004-04-02 | 2005-04-01 | Optimization of conversion of a character coding system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004109650A JP4129981B2 (ja) | 2004-04-02 | 2004-04-02 | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005293386A JP2005293386A (ja) | 2005-10-20 |
JP4129981B2 true JP4129981B2 (ja) | 2008-08-06 |
Family
ID=35095761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004109650A Expired - Fee Related JP4129981B2 (ja) | 2004-04-02 | 2004-04-02 | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7577936B2 (ja) |
JP (1) | JP4129981B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7394411B1 (en) | 2007-01-09 | 2008-07-01 | International Business Machines Corporation | Fast implementation of decoding function for variable length encoding |
US8633936B2 (en) * | 2008-04-21 | 2014-01-21 | Qualcomm Incorporated | Programmable streaming processor with mixed precision instruction execution |
JP5164112B2 (ja) * | 2008-10-28 | 2013-03-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソースコード変換方法、サーバシステム、およびサーバプログラム |
WO2010125960A1 (ja) * | 2009-04-28 | 2010-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチスレッド上で動作するプログラムのプログラム・コードをロック衝突が少ないプログラム・コードに変換するための方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム |
JP2010277440A (ja) * | 2009-05-29 | 2010-12-09 | Internatl Business Mach Corp <Ibm> | プログラム実行時における文字列の処理を最適化する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
JP5059174B2 (ja) * | 2010-08-10 | 2012-10-24 | 株式会社東芝 | プログラム変換装置、およびそのプログラム |
JP6245028B2 (ja) | 2014-03-27 | 2017-12-13 | 富士通株式会社 | 実行制御方法、実行制御プログラムおよび実行制御装置 |
US10733199B2 (en) | 2014-11-05 | 2020-08-04 | International Business Machines Corporation | Optimizing data conversion using pattern frequency |
JP6397343B2 (ja) * | 2015-01-28 | 2018-09-26 | 株式会社日立社会情報サービス | 情報処理装置、および、情報処理方法 |
US10620956B2 (en) | 2017-03-03 | 2020-04-14 | International Business Machines Corporation | Search string processing via inline decode-based micro-operations expansion |
US10564965B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
US10255068B2 (en) | 2017-03-03 | 2019-04-09 | International Business Machines Corporation | Dynamically selecting a memory boundary to be used in performing operations |
US10564967B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Move string processing via inline decode-based micro-operations expansion |
US10613862B2 (en) | 2017-03-03 | 2020-04-07 | International Business Machines Corporation | String sequence operations with arbitrary terminators |
US10789069B2 (en) | 2017-03-03 | 2020-09-29 | International Business Machines Corporation | Dynamically selecting version of instruction to be executed |
US10324716B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086584A1 (en) * | 2001-07-09 | 2005-04-21 | Microsoft Corporation | XSL transform |
-
2004
- 2004-04-02 JP JP2004109650A patent/JP4129981B2/ja not_active Expired - Fee Related
-
2005
- 2005-04-01 US US11/096,548 patent/US7577936B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7577936B2 (en) | 2009-08-18 |
US20050231397A1 (en) | 2005-10-20 |
JP2005293386A (ja) | 2005-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7577936B2 (en) | Optimization of conversion of a character coding system | |
US5303356A (en) | System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag | |
US5504932A (en) | System for executing scalar instructions in parallel based on control bits appended by compounding decoder | |
US7508985B2 (en) | Pattern-matching system | |
JP2002149416A (ja) | プログラムの最適化方法及びこれを用いたコンパイラ | |
KR100947137B1 (ko) | 양 엔디안 가능 컴파일러를 구현하기 위한 방법 및 장치 | |
JP3900485B2 (ja) | 最適化装置、コンパイラプログラム、最適化方法、及び記録媒体 | |
US7958133B2 (en) | Application conversion of source data | |
JPS6288033A (ja) | ソフトウエアプログラムを生成するための装置及びその方法 | |
JP2008059279A (ja) | 文字列出力処理を最適化する技術 | |
JPH08314728A (ja) | ソースプログラムをオブジェクトプログラムに変換する方法および装置 | |
US8839218B2 (en) | Diagnosing alias violations in memory access commands in source code | |
US8332833B2 (en) | Procedure control descriptor-based code specialization for context sensitive memory disambiguation | |
JP2015201119A (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
US6460067B1 (en) | Using time stamps to improve efficiency in marking fields within objects | |
US7979853B2 (en) | Compiler device, method, program and recording medium | |
JP5536593B2 (ja) | 最適化装置、最適化方法およびコンパイラ・プログラム | |
KR100308512B1 (ko) | 편집 기능을 위한 전문 밀리코드 지시 | |
KR100317769B1 (ko) | 압축 기억된 십진수 나눗셈에 대한 전문 밀리코드 명령 | |
JP2004259007A (ja) | コンパイラ装置、コンパイラプログラム、及び記録媒体 | |
KR19990082748A (ko) | 번역및테스트를위한전문밀리코드명령 | |
JP2000122875A (ja) | 例外処理方法およびシステム | |
EP0545927B1 (en) | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction | |
Fülöp et al. | Code comprehension for read-copy-update synchronization contexts in C code | |
KR19990082750A (ko) | 전문업데이트및브랜치명령을이용하는밀리코드플래그 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20071210 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20080108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080513 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080519 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |