図面 (/)

技術 演算子の優先順位のグラフィカル表現

出願人 マイクロソフトコーポレーション
発明者 ロヴィット,アンドリュー
出願日 2013年1月21日 (8年0ヶ月経過) 出願番号 2014-554754
公開日 2015年4月2日 (5年10ヶ月経過) 公開番号 2015-510181
状態 特許登録済
技術分野 デジタル計算機のユーザインターフェイス ストアードプログラム
主要キーワード 入力セレクター 終端節点 対電線 ウェブ装置 ソフトウェアインターフェイス ゴースト化 数値形式 プログラムスタック
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年4月2日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

ソースコードの一部に対する演算子優先順位グラフカル表現が、ソースコード・ビューワーまたは編集エンジン内で生成されかつ表示される。グラフィカル表現は、同一のウインドウまたは別のウインドウ内に多数の異なる形式でソースコードと同時に視覚的に表示され得る。グラフィカル表現の様々な表示形式は、線表現、ツリー表現、数値による順序付け、色で強調されたテキスト、色で強調された演算子などの形を取ることができる。演算子の優先順位のグラフィカル表現は、演算がソースコードの実行時に実行される順序を理解するためにユーザーがソースコードを見ることを支援する。

概要

背景

[0001]コンピュータープログラムは、演算子優先順位に従って式内の演算を実行する。演算子の優先順位は、式内のいずれの演算子が他の演算子に優先するかを指定する規則集合である。例えば、数式2+3×4は、加算演算子が乗算演算子に優先すると評価され得る場合、それによって値20を生じる(すなわち、(2+3)×4=20)。あるいは、同一の数式が、乗算演算子が加算演算子に優先すると評価される場合、それによって値24を生じる(すなわち、2+(3×4)=24)。演算子の優先順位を指定することがなければ矛盾した結果が生成される可能性がある。

[0002]演算子の優先順位は、多くの場合、コンピュータープログラム(例えば、アプリケーションスクリプト、など)が書かれているプログラミング言語文法により指定される。各プログラミング言語は、異なる演算子の優先順位を使用して式を評価することができる。異なる演算子の優先順位は、ユーザー不慣れなプログラミング言語で書かれたソースコードを見たり編集したりする場合にユーザーに問題を引き起こす恐れがある。さらに、特定のプログラミング言語の文法の微妙な差異は複雑であり、それによって演算子の優先順位付けを確認することを困難とする恐れがある。

概要

ソースコードの一部に対する演算子の優先順位のグラフカル表現が、ソースコード・ビューワーまたは編集エンジン内で生成されかつ表示される。グラフィカル表現は、同一のウインドウまたは別のウインドウ内に多数の異なる形式でソースコードと同時に視覚的に表示され得る。グラフィカル表現の様々な表示形式は、線表現、ツリー表現、数値による順序付け、色で強調されたテキスト、色で強調された演算子などの形を取ることができる。演算子の優先順位のグラフィカル表現は、演算がソースコードの実行時に実行される順序を理解するためにユーザーがソースコードを見ることを支援する。

目的

[0037]システム200では、サーバー202は、サーバー202が提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータープログラムから、ソースコードの1つまたは複数の行を含む第1のコード部分を選択するステップと、前記第1のコード部分の実行のために、前記ソースコードに関連した言語モデルに基づき、演算子優先順位を決定するステップと、演算子の前記優先順位に対するグラフカル表現を提供するステップと、前記グラフィカル表現に従った演算子の前記優先順位を表示するステップとを含む、コンピューター実装の方法。

請求項2

請求項1に記載のコンピューター実装の方法であって、演算子の前記優先順位を線表現形式で表示するためのグラフィカル表現を指定するステップをさらに含むコンピューター実装の方法。

請求項3

請求項1に記載のコンピューター実装の方法であって、演算子の前記優先順位をツリー表現形式で表示するためのグラフィカル表現を指定するステップをさらに含むコンピューター実装の方法。

請求項4

請求項1に記載のコンピューター実装の方法であって、演算子の前記優先順位を色付テキスト表現形式で表示するためのグラフィカル表現を指定するステップをさらに含むコンピューター実装の方法。

請求項5

請求項1に記載のコンピューター実装の方法であって、演算子の前記優先順位を数値による順序表現形式で表示するためのグラフィカル表現を指定するステップをさらに含むコンピューター実装の方法。

請求項6

請求項1に記載のコンピューター実装の方法であって、演算子の前記優先順位を並列表現形式で表示するためのグラフィカル表現を指定するステップをさらに含むコンピューター実装の方法。

請求項7

少なくとも1つのプロセッサーおよび第1のメモリを有する少なくとも1つのサーバーであって、前記第1のメモリが1つまたは複数の構文木を含む構文木レポジトリを含む、少なくとも1つのサーバーと、少なくとも1つの処理装置および第2のメモリを有する1つまたは複数のクライアント装置とを備え、前記第2のメモリが、命令であって、処理装置上で実行される場合に、前記サーバーから得られた構文木から、ソースコードの選択された部分に対する演算子の優先順位のグラフィカル表現を生成し、演算子の前記優先順位がソースコードの前記選択された部分内での動作の実行に対する逐次的な順序を表し、ソースコードの視覚的に表示された選択された部分と共に演算子の前記優先順位の前記グラフィカル表現を表示する命令を含む、コンピューター実装のシステム

請求項8

請求項7に記載のコンピューター実装のシステムであって、前記サーバーがさらに、クライアント装置によりアクセスされ得るソースコードを格納するためのソースコード・レポジトリを含む、コンピューター実装のシステム。

請求項9

請求項8に記載のコンピューター実装のシステムであって、前記サーバーが、命令であって、前記第1のプロセッサー上で実行される場合に、前記サーバーに送信されるソースコードに対する構文木を生成する命令を有する、コンピューター実装のシステム。

請求項10

請求項9に記載のコンピューター実装のシステムであって、前記サーバーが、命令であって、前記第1のプロセッサー上で実行される場合に、クライアント装置からの要求に応じて前記クライアント装置に構文木を送信する命令を有する、コンピューター実装のシステム。

背景技術

0001

[0001]コンピュータープログラムは、演算子優先順位に従って式内の演算を実行する。演算子の優先順位は、式内のいずれの演算子が他の演算子に優先するかを指定する規則集合である。例えば、数式2+3×4は、加算演算子が乗算演算子に優先すると評価され得る場合、それによって値20を生じる(すなわち、(2+3)×4=20)。あるいは、同一の数式が、乗算演算子が加算演算子に優先すると評価される場合、それによって値24を生じる(すなわち、2+(3×4)=24)。演算子の優先順位を指定することがなければ矛盾した結果が生成される可能性がある。

0002

[0002]演算子の優先順位は、多くの場合、コンピュータープログラム(例えば、アプリケーションスクリプト、など)が書かれているプログラミング言語文法により指定される。各プログラミング言語は、異なる演算子の優先順位を使用して式を評価することができる。異なる演算子の優先順位は、ユーザー不慣れなプログラミング言語で書かれたソースコードを見たり編集したりする場合にユーザーに問題を引き起こす恐れがある。さらに、特定のプログラミング言語の文法の微妙な差異は複雑であり、それによって演算子の優先順位付けを確認することを困難とする恐れがある。

発明が解決しようとする課題

0003

[0003]本概要は、以下の発明を実施するための形態でさらに説明される概念から選択したものを簡単化した形で紹介するために提供される。本概要は、特許請求する主題の主たる特徴または本質的特徴を同定することを意図するものでも、また特許請求する主題の範囲を限定するために使用されることを意図したものでもない。

0004

[0004]ソースコードは、演算が実行される態様を指定する言語モデルまたは文法を有するプログラミング言語で書かれる。特に、演算子の優先順位は、プログラミング言語中で使用される他の演算子に対する演算子の優先順位を指定する。演算子の優先順位のグラフカル表現は、演算が実行される順序をユーザーが理解することを可能とするためにソースコードと共に表示される。このことは、ソースコードの開発および保守の際に有益である。

課題を解決するための手段

0005

[0005]グラフィカル表現は、複数の異なった形式視覚的に表示され得る。グラフィカル表現の様々な表示形式は、線表現、ツリー表現、数値による順序付け、色で強調されたテキスト、色で強調された演算子、などの形を取ることができる。グラフィカル表現は、結果に影響を与えることなく任意の順序で実行され得る演算を表示することができる。グラフィカル表現の部分は、特定の文字つぶされかつ/またはゴースト化され得る。

0006

[0006]これらのおよび他の特徴および利点は、以下の詳細な説明を読むことおよび添付の図面を見直すことから明らかになろう。前述の一般的な説明と以下の詳細な説明は共に単に説明のためのものでありかつ特許請求される態様を制限するものではないことを理解すべきである。

図面の簡単な説明

0007

[0007]演算子の優先順位のグラフィカル表現を生成しかつ表示するための第1の例示的システムを示す図である。
[0008]演算子の優先順位のグラフィカル表現を生成しかつ表示するための第2の例示的システムを示す図である。
[0009]図3A〜3Fは、演算の逐次的実行のために書式設定された演算子の優先順位のグラフィカル表現のある実施形態を示す図である。
[0010]図4A〜4Jは、演算の並列および逐次的実行のために書式設定された演算子の優先順位のグラフィカル表現のある実施形態を示す図である。
[0011]式内の演算子のみが演算子の優先順位のグラフィカル表現内に表示されている式のグラフィカル表現を示す図である。
[0012]演算子の優先順位のグラフィカル表現の部分が選択的にゴースト化されかつつぶされていることを示す図である。
[0013]ディスプレイ上の演算子の優先順位のグラフィカル表現の配置のある実施形態を示す図である。
ディスプレイ上の演算子の優先順位のグラフィカル表現の配置のある実施形態を示す図である。
ディスプレイ上の演算子の優先順位のグラフィカル表現の配置のある実施形態を示す図である。
[0014]動的に生成される演算子の優先順位のグラフィカル表現を示す図である。
[0015]表示されるソースコードの一部のグラフィカル表現を生成するための例示的方法を示す流れ図である。
[0016]動作環境を示すブロック図である。
[0017]第1の例示的コンピューティングデバイスを示すブロック図である。
[0018]第2の例示的コンピューティングデバイスを示すブロック図である。
[0019]例示的サーバーを示すブロック図である。

実施例

0008

[0020]様々な実施形態は、ソースコードの選択された部分の演算子の優先順位のグラフィカル表現の生成および表示に関連するものである。演算子の優先順位のグラフィカル表現は、ユーザー(すなわち、開発者プログラマーなど)がソースコードの選択された部分の実行の流れをより十分に理解することを支援するために視覚的に表示され得る。グラフィカル表現は、ソースコードと同時に同一のウインドウ内にまたは別のウインドウ内に複数の異なる形式で視覚的に表示され得る。グラフィカル表現の様々な表示形式は、線表現、ツリー表現、数値による順序付け、色で強調されたテキスト、色で強調された演算子、などの形を取ることができる。演算子の優先順位のグラフィカル表現は、演算がソースコードの実行の際に行われる順序を理解するためにユーザーがソースコードを見ることを支援する。この知識は、所期の目的に対してソースコードをデバッグし、テストし、かつ/または編集するためにユーザーにより使用され得る。

0009

[0021]ここで、演算子の優先順位のグラフィカル表現を利用する第1の例示的システムの考察に注意を向ける。図1を参照すると、演算子の優先順位のグラフィカル表現を生成しかつ表示するための例示的システム100のブロック図が示されている。図1に示されるシステム100は、特定の接続形態において限定された数の要素を有しているが、システム100が、所与実装に対して望まれる別の接続形態においてより多くの要素またはより少ない要素を含み得ることが理解されるであろう。

0010

[0022]システム100は、限定されないが、モバイル装置携帯情報端末モバイルコンピューティングデバイススマートフォン携帯電話携帯コンピューター、サーバー、サーバーアレイまたはサーバーファームウェブサーバーネットワークサーバーインターネットサーバーワークステーションミニコンピューター、メインフレームコンピュータースーパーコンピューター、ネットワーク装置ウェブ装置分散型計算機システムマルチプロセッサーシステムまたはこれらの組み合わせなどの、プログラム可能命令を実行する能力がある任意の形式の電子装置であり得る、コンピューティングデバイス102を含むことができる。

0011

[0023]コンピューティングデバイス102は、ソースコード108を表示する能力があるソースコード・ビューワー104および編集エンジン106を含むことができる。ソースコード・ビューワー104は、ユーザー(例えば、プログラマー、開発者など)がソースコード108を見ることを可能とするソフトウェアアプリケーションであり得る。編集エンジン106は、ソースコードを見る、編集する、かつ/または生成するためにプログラマーにより使用されるソフトウェアアプリケーションであり得る。ソースコード108は、処理装置により実行される時、定められた仕事に従った方法および/または動作を処理装置に行わせる、一連のコンピュータープログラム命令であり得る。ソースコード108は、任意の適切な高級、低級、オブジェクトオリエンテッド、ビジュアルコンパイルされた、かつ/またはインタープリットされたプログラミング言語を使用して実装され得る、ソフトウェアアプリケーション、プログラムコードプログラムプロシージャモジュールコードセグメントプログラムスタックミドルウェアファームウェアメソッドルーチンウェブページ、実行可能コード、スクリプトファイル、などであり得る。

0012

[0024]ユーザーは、演算子の優先順位をユーザーが見たいと望むソースコード108の部分を選択することができると共に、コードはソースコード・ビューワー104または編集エンジン106内で見ることができる。入力セレクター110は、演算子の優先順位に関心があるソースコードの部分をユーザーが特定することに利用され得る。入力セレクター110は、カーソル位置112および/または蛍光ペン114であり得る。カーソル位置112は、カーソルが置かれている位置であり、関心があるソースコードの一部を特定する。蛍光ペン114は、ソースコードの網掛けされた部分であり、関心のあるソースコードを特定することができる。入力セレクター110は、ユーザーが関心のあるソースコードを特定するために使用することができる任意の機構であり得ることに留意すべきである。

0013

[0025]入力アナライザー116は、ユーザーまたはプログラムが演算子の優先順位解析のために選択したソースコードの一部を受信する。入力アナライザー116はまた、言語モデルおよびユーザーのオプションに基づき解析に必要な文全体を見つけ出すことができる。入力アナライザー116は、ソースコードの静的に選択された部分をソースコード・ビューワー104から受信する。ソースコードの静的に選択された部分は、静的なソースコードリストから特定される。ソースコードの静的に選択された部分は、カーソル位置、強調されたテキストなどにより指定され得る。入力アナライザー116は、指定されているソースコードの量が、言語モデルまたはユーザーのオプションで指定される、完全な式または文ではないことを認識することができる。この場合には、入力アナライザー116は、式または文を完全なものとするために追加のテキストまたは文字をソースコードの選択された部分に組み込むことができる。

0014

[0026]入力アナライザー116はまた、ソースコードの動的に選択された部分を動的モジュールセレクター107から受信することができる。ソースコードの動的に選択された部分は、ユーザーはソースコードを生成し、ソースコードをテストし、かつ/またはソースコードを編集している間に、実時間で特定される。

0015

[0027]動的モジュールセレクター107は、ソースコードのどの部分に対応する演算子の優先順位をユーザーが表示したいかを決定する。いくつかの事例では、ユーザーは、強調されたテキストによりソースコードの一部を特定することができる。別の事例では、動的モジュールセレクター107は、カーソル位置112などの入力セレクター110からソースコードの一部を決定しなければならない。例えば、カーソル位置112が、ソースコードの行の中央に置かれている場合、動的モジュールセレクター107は、完結した式が得られるようにソースコードの一部に行内のどの文字が含まれるかを決定する。

0016

[0028]さらに、動的モジュールセレクター107は、ユーザーが演算子の優先順位解析のために選択しているソースコードの部分を推測しなければならないかもしれない。編集エンジンなどによる、文脈の実時間編集においては、ユーザーが演算子の優先順位解析のためにソースコードの一部を選択していたとしても、ユーザーは、ソースコードのタイピングまたは編集を行うことを終了していない可能性がある。選択され得るソースコードの一部は、言語モデルまたはユーザーのオプションに従った完結した式または文ではない。この状況では、動的モジュールセレクター107は、追加の文字を含めるために、ユーザーがタイピングを続け、かつ論理的コード区切りをタイプすることなどを待つべきか否かを決定するために、ユーザーの動作を推測しなければならない。

0017

[0029]例えば、動的モジュールセレクター107の役割を示すために、ソースコードの以下の部分を考えることとする。

0018

0019

[0030]行(5)において、カーソル「|」が、文字「a」の後ろ、「++」の前の行内の中央に位置している。動的モジュールセレクター107は、このカーソル位置の後ろに追加のテキストがあることを認識し、かつ完結した式が含まれるように行(5)上のテキストの残りをソースコードの選択された部分内に含めることになろう。従って、動的モジュールセレクター107は、ソースコードの選択された部分が「int f=*a++;」であると決定することになる。入力アナライザー116が、上記のコード例で指摘された、ソースコードの静的に選択された部分に追加のテキストおよび文字を捕捉するための同一の能力を有することに留意すべきである。

0020

[0031]ソースコードの選択された部分は、選択されたコード部分の構文構造を表すデータ構造を生成するために構文解析部118により利用され得る。構文解析部118は、選択されたコード部分の構文構造を決定するために、ソースコードが書かれているプログラミング言語の文法などの、言語モデル122を利用する。言語モデル122または文法は、トークンの集合をプログラミング言語の構文構造に変換するために使用される規則の集合を含む。式を評価するために使用される演算子の優先順位は、文法において固有である。

0021

[0032]構文解析部118は、選択されたコード部分の構文構造を表す構文木を生成することができる。構文木は、変数を表す葉ノードおよび式内の変数に適用される演算子を表す分岐点を含むことができる。あるいは、構文解析部118は、限定されないが、ハッシュテーブルベクトルなどの、選択されたコード部分の構文構造を表すための他のデータ構造を利用することもできる。

0022

[0033]構文解析部118は、グラフィカル表現に使用される演算子の優先順位をカスタマイズするために使用される1つまたは複数の構文解析部オプション120を受信することができる。例えば、ユーザーは、関数名の評価がソースコードの選択された部分に対する演算子の優先順位で考慮されるべきではないことを構文解析部オプション120により指定することができる。同様に、ユーザーは、ソースコードの選択された部分が50文字未満の文字を含むコードの行を含むべきではないことを構文解析部オプション120により指定することができる。その他のユーザー選択もまた、構文解析部オプション120により指定され得る。

0023

[0034]グラフィカル表現モジュール124は、演算子の優先順位のグラフィカル表現を生成するために構文木を利用する。グラフィカル表現モジュール124は、ユーザーが望むグラフィカル表現の形式を指定するグラフィカル表現オプション126を受信することができる。例えば、グラフィカル表現オプション126は、線表現形式、ツリー表現形式、数値による順序付け形式、色付けテキスト形式フォント型テキスト形式、などを含むことができる。さらに、グラフィカル表現オプション126は、優先順位を意味するために使用される形式の態様を指定することができる。例えば、線表現形式は、各演算上に階層的順序で置かれる線分を有する。演算の優先順位は、最下位線分が最初に演算されることを意味し、かつ最下位線分の上の各線分が最下行の上に示された順序で実行される、下から上への順序で各線分を配置することにより指定され得る。同様に、上から下への順序では、最上部の線分が、最初に演算されることを意味すると指定され得て、かつ最上部の線分の下の各線分が、最上部の線分の下に示される順序で実行される。

0024

[0035]グラフィックエンジン128は、ユーザーのためにディスプレイ130上にグラフィカル表現を表示するために利用され得る。グラフィックエンジン128は、ディスプレイ130上のウインドウ内へ、演算子の優先順位のグラフィカル表現などのオブジェクトの描画を管理するソフトウェアアプリケーションであり得る。ディスプレイ130は、コンピューティングデバイス102のスクリーンまたは視覚的ディスプレイ装置である。

0025

[0036]図2は、演算子の優先順位のグラフィカル表現を生成しかつ表示するための第2の例示的システム200のブロック図を示す。図2に示されるシステム200は、特定の接続形態において限定された数の要素を有しているが、システム200が、所与の実装に対して望まれる別の接続形態においてより多くの要素またはより少ない要素を含み得ることが理解されるであろう。

0026

[0037]システム200では、サーバー202は、サーバー202が提供するソースコード・ビューワー104によりユーザーが見ることができる大量のソースコードを格納するために利用され得る。ユーザーは、サーバーのソースコード・ビューワー104によりソースコードを見るためにユーザーのコンピューティングデバイス201からウェブブラウザ206を利用することができる。ソースコードがサーバー202内に格納されている場合、構文解析部118は、サーバーの構文木レポジトリ210内に格納されているソースコードの構文木または他の構文表現を生成するために使用され得る。ユーザーが、ソースコードの一部に対する演算子の優先順位を見たいと望む場合、ウェブブラウザ206は、サーバー202から対応する構文木を要求することができる。サーバー202は、グラフィカル表現モジュール124がユーザーのグラフィカル表現オプション126に従ってディスプレイ130上に演算子の優先順位を生成するために使用することができる、構文木をユーザーのコンピューティングデバイス102に提供することができる。

0027

[0038]図2を参照すると、システム200は、ネットワーク204を介してサーバー202に通信可能に結合されているコンピューティングデバイス201を含むことができる。
コンピューティングデバイス201およびサーバー202は、限定することなく、モバイル装置、携帯情報端末、モバイルコンピューティングデバイス、スマートフォン、携帯電話、携帯コンピューター、サーバー、サーバーアレイまたはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピューター、メインフレームコンピューター、スーパーコンピューター、ネットワーク装置、ウェブ装置、分散型計算機システム、マルチプロセッサーシステム、またはこれらの組み合わせなどの、プログラム可能な命令を実行する能力のある任意の形式の電子装置であり得る。ネットワーク204は、コンピューティングデバイス201とサーバー202間の電子的通信を容易にする任意の形式の通信基盤であり得て、かつ図10に示される通信フレームワークに関連して以下にさらに詳細に説明される。

0028

[0039]コンピューティングデバイス201は、ウェブブラウザ206、グラフィカル表現モジュール124、グラフィカル表現オプション126、グラフィックエンジン128およびディスプレイを含むことができる。ウェブブラウザ206は、サーバー202上でソースコード・ビューワー104により提供されるソースコードを見るために使用され得る。ユーザーは、ウェブブラウザ206を通じてソースコードの特定の部分に対する演算子の優先順位を要求することができる。ソースコードの構文木または構文表現は、サーバー202から得られ得る。グラフィカル表現モジュール124は、構文木を受信し、かつグラフィックエンジン128によりディスプレイ130上に表示される対応した演算子の優先順位を生成することができる。

0029

[0040]サーバー202は、ソースコード・ビューワー104、入力アナライザー116、構文解析部118、構文解析部オプション120、言語モデル122、ソースコード・レポジトリ208、および構文木レポジトリ210を含むことができる。ソースコードが、ソースコード・レポジトリ208に格納するためにサーバー202にアップロードされる毎に、構文解析部118は、ソースコードに対する構文木を生成するために起動され得る。構文解析部オプション120は、ソースの任意の部分が修正されている場合、あるいはソースコードが格納され、見られ、または編集される所定の時点で、構文解析部118が構文木を再生成することができることを指定することができる。本実施形態は、この態様に限定されない。

0030

[0041]構文木は、構文木レポジトリ210に格納され得る。ソースコード・ビューワー104は、構文木レポジトリ210から引き出され得るソースコードの特定の部分に関連した構文木に対する要求を受信することができる。入力アナライザー116、構文解析部118、構文解析部オプション120および言語モデル122は、図1に関連して上記に説明した同様の態様で動作する。

0031

[0042]図1および図2に示されたシステム100、200は、特定の構成内に限定された数の要素を有するが、システム100、200が、別の構成においてより多くの要素またはより少ない要素を含むことができることが理解されるべきである。例えば、動的モジュールセレクター107、入力アナライザー116、構文解析部118、および/またはグラフィカル表現モジュール124は、ソースコード・ビューワー104、編集エンジン106、統合開発環境オペレーティングシステムクラウドサービスコンパイラー、クラウドサービス用キャッシュ電子メールクライアント、オペレーティングシステム、および/またはこれらの組み合わせに組み込まれ得る。さらに、ユーザーは、図2に示されるサーバー202上で提供されるソースコードにアクセスするために、コンピューティングデバイス102上で、ウェブエディターウェブサービスクライアント、などを利用することができる。

0032

[0043]他の実施形態では、図2に示されるシステム200の要素は、別の構成で配置され得る。例えば、サーバー202は、ウェブブラウザ206またはクライアント装置102上に存在する他のアプリケーションを通じてアクセスされ得る編集エンジン106を提供することができる。別の例では、ソースコードは、サーバー202に格納され、かつコンピューティングデバイス201上に存在するソースコード・ビューワー、編集エンジン、ウェブエディターなどを通じて見ることができる。コンピューティングデバイスからソースコードにアクセスする編集エンジンの場合には、動的モジュールセレクター107は、コンピューティングデバイス201またはサーバー202いずれかに存在し得る。他の実施形態では、ソースコードは、コンピューティングデバイス201内に格納され得て、かつソースコードに関連付けられた構文木は、サーバー202上に格納され得る。コンピューティングデバイス201は、ソースコードの開発および保守の際の様々な時点において、サーバー上の構文解析部が関連した構文木を生成するために、ソースコードをサーバー202に送信することができる。本実施形態において、サーバー202は、必要とされる場合に、コンピューティングデバイス201の使用のために構文木を生成し、格納し、かつ提供するように使用される。

0033

[0044]様々な実施形態では、本明細書に記載されたシステム100、200は、複数の要素、プログラム、プロシージャ、モジュールを有するコンピューター実装のシステムを含み得る。本明細書で使用されるように、これらの用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、またはソフトウェアいずれかを含む、コンピューター関連のエンティティを指すことを意図している。例えば、要素は、プロセッサーハードディスクドライブ、(光および/または磁気記憶媒体の)複数の記憶装置ドライブ上で実行されるプロセス、オブジェクト、実行可能ファイル実行スレッド、プログラム、および/またはコンピューターとして実装され得る。実例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスは共に、要素であり得る。1つまたは複数の要素は、プロセスおよび/または実行スレッド内に存在し、かつ要素は、所与の実装で望まれる場合、1台のコンピューター上に局在される、かつ/または2つ以上のコンピューター間に分散され得る。本実施形態は、この態様に限定されない。

0034

[0045]システム100、200の様々な要素は、様々な線または矢印によって示される様々な形式の通信媒体を介して通信可能に結合され得る。本要素は、互いの間で動作を調整することができる。調整は、一方向または双方向の情報交換を必要とし得る。例えば、本要素は、通信媒体を介して伝達される信号の形で情報を伝達することができる。情報は、様々な信号線割り当てられた信号として実装され得る。このような割り当てにおいて、各メッセージは、信号である。しかしながら、別の実施形態では、代替としてデータメッセージを用いることができる。このようなデータメッセージは、様々な接続で送信され得る。例示的接続は、パラレルインターフェイスシリアルインターフェイス、およびバスインターフェイスを含む。

0035

[0046]ここで、グラフィカル表現の様々な実施形態の別の説明に注意を向ける。図3Aを参照すると、Cプログラミング言語で書かれた、A||B+C||Dと記載している式300を含む、ソースコードのある行が示されている。この式には、4つの変数、すなわちA、B、CおよびDがある。この式には、2つの演算子、すなわち算術加算演算子「+」および論理OR演算子「||」がある。

0036

[0047]図3Bは、式300に対応した構文木302の例示的表示を示している。構文木302は、式300内の4つの変数を含む葉ノードを含んでおり、かつ分岐点は、式300内の演算子を含んでいる。演算子の優先順位は、終端節点から開始して根ノードへと構文木302を最下部から最上部まで通過することにより構文木302内に示される。この態様では、構文木302は、式300に対する演算子の優先順位が、B+Cを最初に計算し、次いでA||(B+C)を計算し、最後にD||(A||(B+C))を計算することを示している。

0037

[0048]この式に対する演算子の優先順位のグラフィカル表現は、図3C図3Fに示される任意の形式で表現され得る。例えば、図3Cを参照すると、表示ボックス304は、式300に対する演算子の優先順位を示す線表現形式を示す。線表現形式は、階層的順序で表示される一連の線分から構成される。式に最も近い、最下部の線分は、線分下側の演算が最初に実行され、この線分より上位にある線分に関連した各演算が連続して続くことを意味する。特に、線分306は、式B+Cが最初に実行されることを示し、線分308は、AとB+Cの論理OR演算(すなわち、A||(B+C))が2番目に実行され、かつ線分310は、Dと式A||(B+C)の論理OR演算(すなわち、((A||(B+C))||D)が最後に実行されることを示す。

0038

[0049]図3Dは、演算子の優先順位がまた、表示ボックス312内に描かれたツリー表現形式314内に表示され得ることを示す。ツリー表現形式314は、式内の演算に対する実行順序の階層を描いている。表示ボックス312に示されるように、演算B+Cが最初に実行され、変数Aとの論理OR演算(すなわち、A||(B+C))が続き、変数Bとの論理OR演算(すなわち、((A||(B+C))||D))が続く。

0039

[0050]図3Eは、演算子の優先順位が、表示ボックス316内に示される数値順序形式で表示され得ることを示す。数値順序形式は、演算子が実行される順序を表す数字を各演算子上に描く。表示ボックス316に示されるように、「+」演算子の上に置かれた数字「1」で示される演算B+Cが最初に実行される。変数Aの隣の論理OR演算子「||」上に置かれた数字「2」により示される、変数Aとの論理OR演算(すなわち、A||(B+C))が2番目に実行される。変数Dの隣の論理OR演算子「||」上に数字「3」を配置することにより示される、変数Dとの論理OR演算(すなわち、((A||(B+C))||D))は、3番目に実行される。

0040

[0051]図3Fは、異なる演算子の優先順位を描くために演算子の優先順位が異なる色のテキストまたは異なるフォントスタイルのテキストを使用して表示され得ることを示す。
例えば、赤色は、第1の演算を表し、青色は、実行されるべき第2の演算を表し、緑色は、第3の演算を表す、などと表し得る。あるいは、異なるフォントスタイルが異なる演算子の優先順位を表すために使用され得る。例えば、Times New Romanフォントは、最初の演算を示すために使用され、Lucinda Handwritingフォントは、2番目の演算を示すために使用される、などであり得る。

0041

[0052]例えば、Arialフォントが、実行されるべき最初の演算を示すために使用され、Century Schoolbookフォントが、実行されるべき2番目の演算を示すために使用され、かつBlackadder Scriptフォントが、実行されるべき3番目の演算を示すために使用されることを仮定する。表示ボックス324内で演算子の優先順位を示すためにこれらのフォントスタイルを使用すると、326の演算B+Cは、最初に実行されることが示され、変数Aとの論理OR演算(すなわち、A||(B+C))328は、2番目に実行されることが示され、かつ変数Dとの論理OR演算(すなわち、((A||(B+C))||D))330は、変数Bと共に3番目に実行されることが示される。

0042

[0053]異なる色が、上記に説明したフォントの代わりに式の優先順位を示すために使用され得ることに留意されるべきである。例えば、式「B+C」に対するテキストは、演算B+Cが最初に実行されることを示す赤色で表示され得る。式「A||」に対するテキストは、AとB+Cの論理OR演算が2番目に実行されることを示す青色で表示され得る。式「||D」に対するテキストは、この演算が最後に実行されることを示す緑色で表示され得る。さらに、全てのテキスト、線分、数字などの色付けは、ユーザーにより指定された特定のパターン、網掛けの色またはユーザーがグラフィカル表現オプション126内で指定した他のパターンに従うことができる。

0043

[0054]図4A図4Jは、演算が並列に実行され得る、C++プログラミング言語で書かれた式を描く演算子の優先順位のグラフィカル表現の様々な実施形態を示す。図4Aは、式(PTR−>A)および(Y.V<67)に適用される論理OR演算が1であるか0であるかを決定するブール式400を示す。演算子の優先順位は、並列に実行され得て、それによって、図4C図4Fに示されるように、並列演算として演算子の優先順位のグラフィカル表現を描くことを可能とする。図4G図4Jは、同一のブール式400を示し、演算子の優先順位は、同一の演算を逐次的に実行することを表す様々なグラフィカル表現で描かれている。

0044

[0055]図4Bは、式400に対応した構文木402を示す。構文木402は、図4Aに示される式400に対する演算子の優先順位を含む。この例では、式400に対する演算子の優先順位は、ブール式(Y.V<67)の計算が、ブール式(PTR−>A)が評価されている間に同時に実行されることを示す構文木402により示される。次いで、2つの値の論理OR演算が、計算される。

0045

[0056]図4Cは、PTR−>AおよびY.V<67が、論理的に同時に最初に計算されて、論理OR演算が続くことを示す、式400に対する線表現形式を示す。図4Dは、式400に対するツリー表現形式を示し、また図4Eは、式400に対する数値形式を示す。図4Fは、異なるフォントスタイルを使用する演算子の優先順位を示す。しかしながら、色付きテキストもまた、演算子の優先順位を示すために図4Fに示される異なるフォントスタイルの代わりに使用され得る。例えば、赤色は、「PTR−>A」および「Y.V<67」を表示するために使用されて、これらの演算が最初に実行されることを示し得る。青色は、論理OR演算「||」を表示するために使用されて、論理OR演算が最後に実行されることを示し得る。

0046

[0057]図4Gは、PTR−>AおよびY.V<67が表示ボックス412内に逐次的態様で計算されることを示す、式400に対する線表現形式を示す。図4Hは、式400を逐次的に実行するためのツリー表現形式を表示ボックス414内に示す。図4Iは、式400を逐次的に実行するための数値形式を表示ボックス416内に示す。図4Jは、異なるフォントスタイルを使用する演算子の優先順位を表示ボックス418内に示す。しかしながら、色付きテキストもまた、演算子の優先順位を示すために図4Jに示される異なるフォントスタイルの代わりに使用され得る。例えば、赤色は、「PTR−>A」を表示するために使用され、この演算子の優先順位が最初に実行されることを示すことができ、また緑色は、式「Y.V<67」が2番目に実行されることを示すために使用され得る。青色は、論理OR演算「||」を表示するために使用されて、論理OR演算が最後に実行されることを示し得る。

0047

[0058]図5は、式内の演算子のみが、演算子の優先順位を表すために強調されている、ある式に対する演算子の優先順位のグラフィカル表現を示している。図3C図3Fおよび図4C図4Jに示されるグラフィカル表現では、式全体のグラフィカル表現を仮定していた。図5では、演算子のみが、表示ボックス502内にグラフィカル表現で示されるように、演算子の優先順位を示すためにグラフィカルに表示されている。図5に示されるように、式500は、IF(RET=DOSOMETHING())と記載している。この式内の演算子は、DOSOMETHING()関数呼び出しおよびIF文評価である。DOSOMETHING()関数呼び出しは、関数呼び出し504が最初に実行されることを示す色またはパターンで強調され、またIF文は、IF文506が2番目に評価されることを示す色またはパターンで強調されている。

0048

[0059]図6は、演算子の優先順位のグラフィカル表現の一部を選択的に見せることの例示的図を示す。選択的に見せる能力は、特定の式をより綿密に、またはユーザーの好みにより見せる必要がある場合にユーザーにより利用され得る。この例示的図では、式600は、ブール式PTR−>A||(Y.V<67)である。表示ボックス602は、式600に対応した演算子の優先順位に対する線表現形式を示す。表示ボックス604は、式(Y.V<67)をゴースト化し、かつ式をたわいないグラフィック要素で置き換えることをユーザーが選択したことを示す。この例では、言葉「select」が元々の式(Y.V<67)を置き換え、文字「・」が元々の式に対する線表現上に置かれた。表示ボックス604は、式PTR−>Aが表示の対象外とされたことを示す。ユーザーは、マウスの右ボタン操作でグラフィカル表現内の式のゴースト化を始動することができ、かつマウスの左ボタン操作で式を対象外とすることを始動することができる。

0049

[0060]図7A図7Cは、演算子の優先順位のグラフィカル表現がソースコードと同一のビュー内に置かれる例示的図を示す。図7Aは、9行のソースコードを有する例示的ソースコードリスト702を示す。式(E+F>B*C*D)は、ユーザーがこの式に対する演算子の優先順位を知りたいと望んでいることを示すために下線が引かれている。式(E+F>B*C*D)がまた、色付きのテキストで強調され、表示され、またはこの式を特定するために任意の他の形式の態様で表示され得ることに留意すべきである。

0050

[0061]図7Bは、式に対する演算子の優先順位を表示するために線表現形式が選択されていることを示す。演算子の優先順位は、表示ボックス704により示されるように行4および行5内の既存のコードを上書きすることにより関心のある式の直上に表示される。表示ボックス704は、不透明、部分的に透明、または完全に透明であり得る。図7Cは、関心のある式に対する線表現形式708が選択された式の直上の空白行に挿入された(706)ことを示す。

0051

[0062]図8は、演算子の優先順位のグラフィカル表現が、ソースコードリストを表示しているウインドウに隣接している別のウインドウ内に表示される例示的図を示す。図8に示されるように、表示800は、ソースコードのリストを表示する第1のウインドウ802、および第1のウインドウ802内に示されるソースコードの選択された部分に対する演算子の優先順位のグラフィカル表現を表示する第2のウインドウ804から成る。カーソル「│」は、行5内の文字「A」と文字「+」間に位置付けられている。行5内のソースコードが選択され、ウインドウ804内に線表現形式で演算子の優先順位として表示されている。

0052

[0063]本実施形態についての動作はさらに、様々な例示的方法を参照して説明され得る。特に明記されない限り、代表している方法が、提示された順序で、または任意の特定の順序で実行されなければならないという必要がないことを理解されるべきである。さらに、本方法に関連して説明された様々な取り組みは、逐次または並列の様式で、または逐次および並列の動作の組み合わせで実行され得る。本方法は、所与の設計および処理能力制約群に対して望まれる、説明された実施形態または別の実施形態の1つまたは複数のハードウェア要素および/またはソフトウェア要素を使用して実装され得る。例えば、本方法は、論理デバイス(例えば、汎用または特定目的コンピューター)による実行のための論理(例えば、コンピュータープログラム命令)として実装され得る。

0053

[0064]図9は、演算子の優先順位を生成するための例示的方法の流れ図を示す。方法900が、本明細書に記載された1つまたは複数の実施形態により実行される動作の一部または全てを表し得ること、および本方法が、図9に説明されているものより多くの動作または少ない動作を含むことができることに留意すべきである。

0054

[0065]図9を参照すると、ユーザーは、解析のためにソースコードの一部を選択する(ブロック902)。ソースコードは、ユーザーによる操作によりソースコード・ビューワー104、編集エンジン106、またはウェブブラウザ206を通じて静的に選択され得る。ユーザーは、ソースコードの一部を強調または特定するために、カーソル、マウスのクリック、またはキー入力などの、入力セレクター110を利用する。ソースコードは、編集エンジン106または他のソフトウェアアプリケーションを通じて動的に選択され得る。この場合、動的モジュールセレクター107は、ユーザーが実時間でソースコードを編集する場合に、ユーザーの入力動作を追跡して、ユーザーが解析することを意図するソースコードの部分を決定するために利用され得る。ユーザーは、ユーザーが解析しようと意図するソースコードの一部を特定するために入力セレクター110を利用することができる。しかしながら、動的モジュールセレクター107は、動作を完結させるためまたはより有意義な解析結果を得るために、ソースコードの選択された部分に追加の文字またはテキストを含めることができる。

0055

[0066]複数のオプションが、演算子の優先順位のグラフィカル表現に関連して指定され得る(ブロック904)。ユーザーは、構文解析部オプション120およびグラフィカル表現オプション126を指定することができる。構文解析部オプション120は、ユーザーが見ることに興味がなく、構文解析部118が構文木を用意する場合に無視することができる、特定のソースコード文字、トークンまたは文を表示することができる。グラフィカル表現オプション126は、線表現、ツリー表現、色付きテキストなどのグラフィカル表現の形式を指定することができる。

0056

[0067]構文解析部118は、ソースコードの選択された部分、構文解析部オプション120および言語モデル122を受信し、かつ構文木などのソースコードの選択された部分を表す構文構造を生成する(ステップ906)。1つまたは複数の実施形態において、構文解析部118は、ソースコードがサーバー202に格納される時、ソースコードが、全てまたは部分的に、あるいは構文解析部オプション120内に設定された設定に従って修正される時、などの指定された時点に構文木を生成することができる(ステップ906)。

0057

[0068]グラフィカル表現モジュール124は、構文木およびグラフィカル表現オプション126を受信し、ソースコードの選択された部分に対する演算子の優先順位を決定し(ブロック908)、かつグラフィックエンジン128が意図した態様で演算子の優先順位を表示するために使用するグラフィック要素および/または命令を含むデータ構造を生成する(ブロック910および912)。

0058

[0069]図10を参照して、ここで例示的動作環境940の考察に注目を向ける。動作環境940は、例示的なものであり、かつ実施形態の機能に関して何らかの限定を提案することを意図するものではないことに留意すべきである。実施形態は、通信フレームワーク944を介して1台または複数台のサーバー(複数可)946と通信する1台または複数台のクライアント(複数可)942を含む動作環境940に適用され得る。動作環境940は、ネットワーク環境、分散された環境、マルチプロセッサー環境内に、あるいは遠隔またはローカルの記憶装置にアクセスする単独のコンピューティングデバイスとして構成され得る。

0059

[0070]クライアント942は、ハードウェア装置ソフトウェアモジュールとして、またはこれらの組み合わせとして具現化され得る。このようなハードウェア装置の例は、コンピューター(例えば、サーバー、パソコンラップトップ、など)、携帯電話、携帯情報端末、または任意の形式のコンピューティングデバイスなどを含み得るが、限定されない。クライアント942はまた、単一の実行パス、複数の並列実行パス(例えば、スレッド、プロセスなど)、または任意の他の態様で実行される命令を有するソフトウェアモジュールとして具現化され得る。

0060

[0071]サーバー946は、ハードウェア装置、ソフトウェアモジュールとして、またはこれらの組み合わせとして具現化され得る。このようなハードウェア装置の例は、コンピューター(例えば、サーバー、パソコン、ラップトップ、など)、携帯電話、携帯情報端末、または任意の形式のコンピューティングデバイスなどを含むが、限定されない。サーバー946はまた、単一の実行パス、複数の並列実行パス(例えば、スレッド、プロセスなど)、または任意の他の態様で実行される命令を有するソフトウェアモジュールとして具現化され得る。

0061

[0072]通信フレームワーク944は、クライアント942およびサーバー946間の通信を容易にする。通信フレームワーク944は、パケット交換ネットワーク(例えば、インターネットなどの公衆ネットワーク企業イントラネットなどの私設ネットワーク、など)、回線交換ネットワーク(例えば、公衆交換電話網)、または(適切なゲートウェイおよび変換器を伴う)パケット交換ネットワークおよび回線交換ネットワークの組み合わせで使用するために適切な技術などの、任意のよく知られた技術を具現化することができる。クライアント942およびサーバー946は、1つまたは複数の通信インターフェイスネットワークインターフェイスネットワークインターフェイスカード無線装置無線送受信機有線および/または無線通信媒体物理コネクターなどの、通信フレームワーク944と相互運用可能であるように設計されている様々な形式の標準的な通信要素を含むことができる。有線通信媒体の例は、電線ケーブル金属リード線プリント回路基板バックプレーンスイッチファブリック半導体材料撚り線対電線同軸ケーブル光ファイバー伝搬信号などを含むことができる。無線通信媒体の例は、音響、無線周波数スペクトラム赤外線、および他の無線媒体を含むことができる。

0062

[0073]各クライアント(複数可)942は、クライアント942に固有な情報を格納する1つまたは複数のクライアントデータストア(複数可)948に結合され得る。各サーバー(複数可)946は、サーバー946に固有な情報を格納する1つまたは複数のサーバーデータストア(複数可)950に結合され得る。

0063

[0074]図11は、例示的コンピューティングデバイス102のブロック図を示す。
コンピューティングデバイス102は、1つまたは複数のプロセッサー952、ディスプレイ130、ネットワークインターフェイス954、メモリ956、およびユーザー入力インターフェイス958を有することができる。プロセッサー952は、任意の市販のプロセッサーであってもよく、かつデュアルマイクロプロセッサーおよびマルチプロセッサーアーキテクチャを含むことができる。ディスプレイ130は、モニター、スクリーン、タッチスクリーンなどの任意の視覚的ディスプレイ装置であり得る。ネットワークインターフェイス954は、コンピューティングデバイス102と他のネットワーク化された装置間の有線または無線通信を容易にする。ユーザー入力インターフェイス958は、コンピューティングデバイス102とキーボード、マウスなどの入力装置間の通信を容易にする。

0064

[0075]メモリ956は、実行可能なプロシージャ、アプリケーション、およびデータを格納することができる任意のコンピューター読み取り可能な記憶媒体であり得る。コンピューター読み取り可能な媒体は、搬送波により送信される変調されたデータ信号などの、伝搬信号とは関係がない。コンピューター読み取り可能な媒体は、任意の形式の記憶装置(例えば、ランダムアクセスメモリリードオンリーメモリなど)、磁気記憶装置揮発性記憶装置不揮発性記憶装置光記憶装置、DVD、CD、フロッピー登録商標ディスクドライブなどであり得る。メモリ956はまた、1つまたは複数の外部記憶装置、または遠隔に位置する記憶装置を含むことができる。メモリ956は、以下の命令およびデータを含むことができる。

0065

・オペレーティングシステム960
・ソースコード・ビューワー104
・編集エンジン106
・動的モジュールセレクター107
・入力アナライザー116
・構文解析部118
・グラフィカル表現モジュール124
・構文解析部オプション120
・言語モデル122
・グラフィカル表現オプション126
・グラフィックエンジン128
・様々な他のアプリケーションおよびデータ962
[0076]図12は、例示的コンピューティングデバイス201のブロック図を示し、また図13は、例示的サーバー202を示す。コンピューティングデバイス201は、1つまたは複数のプロセッサーまたは処理装置964、ディスプレイ130、ネットワークインターフェイス966、メモリ968、およびユーザー入力インターフェイス970を有し得る。プロセッサー964は、任意の市販のプロセッサーであってもよく、かつデュアルマイクロプロセッサーおよびマルチプロセッサーアーキテクチャを含むことができる。ディスプレイ130は、モニター、スクリーン、タッチスクリーンなどの任意の視覚的ディスプレイ装置であり得る。ネットワークインターフェイス966は、コンピューティングデバイス201および他のネットワーク化された装置との有線または無線通信を容易にする。ユーザー入力インターフェイス970は、コンピューティングデバイス201とキーボード、マウスなどの入力装置間の通信を容易にする。

0066

[0077]メモリ968は、実行可能なプロシージャ、アプリケーション、およびデータを格納することができる任意のコンピューター読み取り可能な記憶媒体であり得る。コンピューター読み取り可能な媒体は、搬送波により送信される変調されたデータ信号などの、伝搬信号とは関係がない。コンピューター読み取り可能な媒体は、任意の形式の記憶装置(例えば、ランダムアクセスメモリ、リードオンリーメモリなど)、磁気記憶装置、揮発性記憶装置、不揮発性記憶装置、光記憶装置、DVD、CD、フロッピー(登録商標)ディスクドライブなどであり得る。メモリ968はまた、1つまたは複数の外部記憶装置、または遠隔に位置する記憶装置を含むことができる。メモリ968は、以下の命令およびデータを含むことができる。

0067

・オペレーティングシステム972
・ウェブブラウザ206
・編集エンジン106
・グラフィカル表現モジュール124
・グラフィカル表現オプション126
・グラフィックエンジン128
・様々な他のアプリケーションおよびデータ974
[0078]サーバー202は、1つまたは複数のプロセッサーまたは処理装置976、ディスプレイ130、ネットワークインターフェイス978、メモリ980、およびユーザー入力インターフェイス982を有し得る。プロセッサー976は、任意の市販のプロセッサーであってもよく、かつデュアルマイクロプロセッサーおよびマルチプロセッサーアーキテクチャを含むことができる。ディスプレイ130は、モニター、スクリーン、タッチスクリーンなどの任意の視覚的ディスプレイ装置であり得る。ネットワークインターフェイス978は、サーバー202と他のネットワーク化された装置間の有線または無線通信を容易にする。ユーザー入力インターフェイス982は、サーバー202とキーボード、マウスなどの入力装置間の通信を容易にする。

0068

[0079]メモリ980は、実行可能なプロシージャ、アプリケーション、およびデータを格納することができる任意のコンピューター読み取り可能な記憶媒体であり得る。コンピューター読み取り可能な媒体は、搬送波により送信される変調されたデータ信号などの、伝搬信号とは関係がない。コンピューター読み取り可能な媒体は、任意の形式の記憶装置(例えば、ランダムアクセスメモリ、リードオンリーメモリなど)、磁気記憶装置、揮発性記憶装置、不揮発性記憶装置、光記憶装置、DVD、CD、フロッピー(登録商標)ディスクドライブなどであり得る。メモリ980はまた、1つまたは複数の外部記憶装置、または遠隔に位置する記憶装置を含むことができる。メモリ980は、以下の命令およびデータを含むことができる。

0069

・オペレーティングシステム984
・ソースコード・ビューワー104
・入力アナライザー116
・構文解析部118
・構文解析部オプション120
・言語モデル122
・ソースコード・レポジトリ208
・構文木レポジトリ210
・様々な他のアプリケーションおよびデータ986
[0080]主題が、構造的特徴および/または方法論的行為に特有な言語で説明されてきたが、添付の特許請求の範囲内に定義された主題が、上記に説明された特定の特徴または行為に限定される必要がないことが理解されるべきである。むしろ、上記に説明された特定の特徴および行為は、特許請求の範囲を実施する形態の例として開示されている。

0070

[0081]様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両者の組み合わせを使用して実装され得る。ハードウェア要素の例は、装置、構成要素、プロセッサー、マイクロプロセッサー、回路回路素子集積回路特定用途向け集積回路、プログラム可能論理デバイス、デジタルシグナル・プロセッサー、フィールドプログラマブルゲートアレイメモリ装置論理ゲートなどを含むことができる。ソフトウェア要素の例は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラムシステムプログラム機械語プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェイスアプリケーションプログラムインターフェイス命令セットコンピューティングコード、コードセグメント、およびそれらの任意の組み合わせを含むことができる。実施形態が、ハードウェア要素および/またはソフトウェア要素を使用して実装されるか否かを決定することは、所与の実装に対して望まれる、所望の計算速度電力レベル帯域幅演算時間負荷バランスメモリ資源データバス速度および他の設計または処理能力の制約などの任意の数の要因に応じて変化する可能性がある。

0071

[0082]いくつかの実施形態は、命令またはロジックを格納するための記憶媒体を含むことができる。記憶媒体の例は、揮発性メモリまたは不揮発性メモリ可換型または非可換型メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能なメモリなどを含む、電子データを格納する能力のある1つまたは複数の形式のコンピューター読み込み可能な記憶媒体を含むことができる。ロジックの例は、プログラム、プロシージャ、モジュール、アプリケーション、コードセグメント、プログラムスタック、ミドルウェア、ファームウェア、メソッド、ルーチンなどの、様々なソフトウェア要素を含むことができる。ある実施形態では、例えば、コンピューター読み取り可能な記憶媒体は、プロセッサーにより実行される場合、記載された実施形態に従ってメソッドおよび/または動作をプロセッサーに実行させる、実行可能なコンピュータープログラム命令を格納することができる。実行可能なコンピュータープログラム命令は、特定の機能をコンピューターに実行させることを指示するための、事前定義のコンピューター言語、態様または構文に従って実装され得る。命令は、任意の適切な高級、低級、オブジェクト指向、ビジュアルな、コンパイルされたおよび/またはインタープリットされたプログラミング言語を使用して実装され得る。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ