JP2005011345A - コードセグメント作成方法及びそのシステム - Google Patents

コードセグメント作成方法及びそのシステム Download PDF

Info

Publication number
JP2005011345A
JP2005011345A JP2004179882A JP2004179882A JP2005011345A JP 2005011345 A JP2005011345 A JP 2005011345A JP 2004179882 A JP2004179882 A JP 2004179882A JP 2004179882 A JP2004179882 A JP 2004179882A JP 2005011345 A JP2005011345 A JP 2005011345A
Authority
JP
Japan
Prior art keywords
code segment
code
file
library
creation method
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.)
Granted
Application number
JP2004179882A
Other languages
English (en)
Other versions
JP4619698B2 (ja
Inventor
Sam Spencer
スペンサー サム
Matthew W Gertz
ダブリュ.ガーツ マシュー
Ting Liang
リァン ティン
James R Schmelzer
アール.シュメルツァー ジェームズ
Amanda K Silver
ケー.シルバー アマンダ
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005011345A publication Critical patent/JP2005011345A/ja
Application granted granted Critical
Publication of JP4619698B2 publication Critical patent/JP4619698B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】 コードセグメントを、より見つけやすく修正しやすくするとともに、ソリューションを作成しやすくする方法を提供すること。
【解決手段】 コードセグメント及びコードセグメントに関連づけられる情報の要素(例えば、メタ情報)は、XMLファイルにおいて符号化することができる。1つ又は複数の符号化コードセグメントは、符号化コードセグメントのライブラリに保存される。符号化コードセグメントを選択し、ソースコードファイルに挿入することができる。符号化されたコードがソースコードに挿入されると、コードセグメントが必要とする、関連づけられた要素が自動的に含められ、修正を必要とするコードセグメントの部分が識別される。コードセグメントは、コードセグメントの共有が容易になるように管理されて編成される。
【選択図】 図3

Description

本発明は、コードセグメント作成方法及びそのシステムに関し、より詳細には、プログラミングツールに関し、コードセグメントを作成し、管理し、使用する方法に関する。
ソフトウェアソリューションの必要性が急速に増すにつれ、プログラマの効率を上げることがますます重要になっている。プログラマの効率を上げる1つの方法は、既に書かれているコードのセグメントを再利用することである。従来、これは手作業で行われていた。すなわち、ユーザは、コードセグメントを見つけ、保存し、それを新しい環境で使うために修正する。こうしたやり方も役には立つが、開発者が必要とする特定のコードセグメントを見つけることが難しい場合もあり、見つけたとしても、意図した使用に合うようにコードセグメントを修正するのは、大変な作業となり得る。
コードセグメントを、より見つけやすく修正しやすくするとともに、ソリューションを作成しやすくする方法があることによって、コードセグメントがより頑強になることが有用であろう。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、プログラミングツールに関し、コードセグメントを作成し、管理し、使用するコードセグメント作成方法及びそのシステムを提供することにある。
コードセグメント及びコードセグメントに関連づけられる情報の要素(例えば、メタ情報)は、XMLファイル、あるいは他のタイプのファイル又はデータベースにおいて共に符号化することができる。1つ又は複数の符号化コードセグメントは、符号化コードセグメントのライブラリとして維持される。ライブラリのリポジトリは、ファイルシステムでも、データベースでもよい。符号化コードセグメントは、おそらく探索動作を用いて選択することができ、ソースコードファイルに挿入することができる。符号化されたコードがソースコードに挿入されると、コードセグメントが必要とする、関連づけられた要素が自動的に含められ、修正を必要とするコードセグメントの部分が識別される。コードセグメントは、コードセグメントの共有が容易になるように管理され編成される。新しいコードセグメントを作成することができるツールが提供され、後で使うためにライブラリに追加される。
以下、図面を参照して本発明の実施の態様について説明する。なお、以下に示す実施形態の詳細な説明は、本発明を説明するために例示的に示すものであって、開示した特定の方法及び手段に限定されるものではない。
<概要>
コードセグメント及びコードセグメントに関連づけられた情報の要素(例えば、必要とされる参照など、コードセグメントに関連づけられるメタ情報)は、1つのファイル又はファイル群において符号化される。本発明の一実施形態において、コードセグメント及びメタ情報は、XMLファイルにおいて符号化される。1つ又は複数の符号化コードセグメントは、符号化コードセグメントのライブラリに保存される。ライブラリにあるセグメントを選択し、ソースコードファイルに保存することができる。セグメントがソースコードに挿入されると、コードセグメントが必要とする関連づけられた要素を、自動的に含めることができる。修正を必要とし得るコードセグメントの部分が識別され、修正可能な要素を容易に検索する手段が提供される。コードセグメントを修正するためのヒント(tip)を表示することができる。コードセグメントに関するコメントも、表示することができる。さらに、コードセグメントの正しい挿入の確認を実施することができる。好ましくは、コードセグメントは、このコードセグメントの共有が容易になるように管理されて編成される。
<例示的な計算機環境>
図1は、本発明の実施形態を実現するための好適な計算機環境を示すブロック図で、本発明を実現することができる適切な計算機環境の、簡潔で概略的な説明を提供することを意図している。ただし、本発明に関連して使用するために、携帯型、可搬型、及びすべての種類の他の計算装置が企図されることを理解されたい。以下で汎用コンピュータを説明するが、これは一例に過ぎず、本発明は、ネットワークサーバの相互運用性及び相互作用性を備える小型軽量クライアントのみを必要とする。したがって、本発明は、ごくわずか又は最低限のクライアント資源が関与する、ネットワーク接続されたホストサービスという環境、例えば、クライアント装置がブラウザ、すなわち、ワールドワイドウェブへのインターフェースとしてのみ働く、ネットワーク接続された環境において実現することができる。
そうすることが必要なわけではないが、本発明は、開発者が使うためのAPI(アプリケーションプログラミングインターフェース)によって実現することができ、かつ/又は、ネットワーク閲覧ソフトウェアに含めることができる。1つ又は複数のコンピュータ、例えば、クライアントワークステーション、サーバ、あるいは他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において本発明を説明する。概して、プログラムモジュールは、特定のタスクを実施し又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含んでいる。一般に、プログラムモジュールの機能は、様々な実施形態における要望に応じて組み合わせることも分散することもできる。さらに、本発明は他のコンピュータシステム構成を有して実施できることができる。本発明とともに使用するのに適切であり得る他の公知の計算システム、環境、及び/又は構成には、パーソナルコンピュータ(PC)、自動預払機、サーバコンピュータ、携帯型又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどがあるが、それに限定されるものではない。本発明は、通信ネットワーク又は他の伝送媒体を介してリンクされるリモート処理装置によってタスクが実施される分散型計算機環境でも実施することができる。分散型計算機環境では、プログラムモジュールは、メモリ記憶装置など、ローカル及びリモートコンピュータ記憶媒体の両方に置くことができる。
したがって、図1は、本発明を実現することができる好適な計算システム環境100の一例を示すが、上述したように、計算システム環境100は、適切な計算機環境の一例に過ぎず、本発明の使用又は機能の範囲に関するどのような限定を示唆することも意図していない。また、計算機環境100は、例示的な動作環境100に示される構成要素のどの1つ又はその組合せに関するどのような依存も要件も有していると解釈されるべきではない。
図1を参照すると、本発明を実現するための好適なシステムは、汎用計算装置を、コンピュータ110の形で含んでいる。コンピュータ110の構成要素は、処理装置120と、システムメモリ130と、システムメモリなど様々なシステム構成要素を処理装置120に結合するシステムバス121とを含むことができるが、これに限定されない。システムバス121は、様々なバスアーキテクチャのどれをも使用するメモリバス又はメモリコントローラ、周辺バス、及びローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ)バス、EISA(拡張ISA)バス、VESA(米国ビデオ電子装置規格化協会)ローカルバス、及びPCI(周辺装置相互接続)バス(メザニン(Mezzanine)バスとしても知られる)を含んでいる。
コンピュータ110は、通常、様々なコンピュータ読取可能な媒体を備えている。コンピュータ読取可能な媒体は、コンピュータ110によってアクセス可能であるとともに揮発性媒体及び不揮発性媒体の両方、取外し可能媒体及び固定型媒体を含んでいる、利用可能などの媒体でもよい。例えば、コンピュータ読取可能な媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報の格納のためのどの方法でも技術でも実装される揮発性媒体及び不揮発性媒体の両方、取外し可能媒体及び固定型媒体を含んでいる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CDROM、デジタル多用途ディスク(DVD)又は他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ110によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、変調データ信号、たとえば搬送波や他の移送機構として具体化し、どの情報配信媒体も含んでいる。「変調データ信号」という用語は、信号中の情報を符号化するようなやり方で設定され又は変更される信号特性の1つ又は複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF、赤外線、及び他の無線媒体などの無線媒体を含んでいる。上述したどの組合せも、やはりコンピュータ読取可能な媒体の範囲に含まれるべきである。
システムメモリ130は、コンピュータ記憶媒体を、読出し専用メモリ(ROM)131及びランダムアクセスメモリ(RAM)132など、揮発性及び/又は不揮発性メモリの形で含んでいる。基本入出力システム(BIOS)133は、例えば、起動中にコンピュータ110内部の要素間の情報の転送を助ける基本ルーチンを含み、通常はROM131に格納されている。RAM132は一般に、処理装置120に対してただちにアクセス可能な、かつ/又は処理装置120によって現在操作されているデータ及び/又はプログラムモジュールを含んでいる。限定ではなく例として、図1では、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137を示している。
コンピュータ110は、他の取外し可能/固定型、揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。例えば、図1では、固定型の不揮発性磁気媒体からの読出し又はそこへの書込みをするハードディスクドライブ141、取外し可能な不揮発性磁気ディスク152からの読出し又はそこへの書込みをする磁気ディスクドライブ151、及び、CD ROMや他の光学媒体など取外し可能な不揮発性光ディスク156からの読出し又はそこへの書込みを行う光ディスクドライブ155を示している。例示的な動作環境で用いることができる、他の取外し可能/固定型、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含んでいるが、それに限定されない。ハードディスクドライブ141は、通常、インターフェース140などの固定型メモリインターフェースによって、システムバス121に接続され、磁気ディスクドライブ151及び光ディスクドライブ155は、通常、インターフェース150などの取外し可能メモリインターフェースによって、システムバス121に接続される。
上述し、かつ図1に示したディスクドライブ及びそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ110のための他のデータの格納を実現する。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147を格納するものとして示した。こうした構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137と同じでも、異なってもよい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147は、少なくとも、異なるものであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード162及び一般にはマウス、トラックボール、又はタッチパッドと呼ばれる指示装置161などの入力装置を介して、コマンド及び情報をコンピュータ110に入力することができる。他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどがあり得る。こうした及び他の入力装置はしばしば、システムバス121に結合されるユーザ入力インターフェース160を介して処理装置120に接続されるが、他のインターフェース及びバス構造、例えば、並列ポート、ゲームポート、USB(ユニバーサルシリアルバス)によって接続することもできる。
モニタ191又は他のタイプの表示装置も、映像インターフェース190などのインターフェースを介してシステムバス121に接続される。グラフィックインターフェース182、例えば、ノースブリッジも、システムバス121に接続することができる。ノースブリッジは、CPU又はホスト処理装置120と通信するとともにAGP(グラフィック専用高速バス)通信の責任を負うチップセットである。1つ又は複数の画像処理装置(GPU)184は、グラフィックインターフェース182と通信することができる。この点に関して、GPU184は、概して、オンチップのメモリ記憶装置、例えば、レジスタ記憶装置を含み、映像メモリ186と通信する。ただし、GPU184は、コプロセッサの一例に過ぎず、したがって、様々なコプロセッシング(coprocessing)装置をコンピュータ110に含めることができる。モニタ191又は他のタイプの表示装置も、映像インターフェース190などのインターフェースを介してシステムバス121に接続され、このインターフェースは、映像メモリ186と通信することができる。モニタ191に加え、コンピュータは、出力周辺インターフェース195を介して接続することができるスピーカ197及びプリンタ196など、他の周辺出力装置も含むことができる。
コンピュータ110は、リモートコンピュータ180など、1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)、又は他の共通ネットワークノードでよく、通常、コンピュータ110に関連して上述した要素の多く又はすべてを含んでいるが、図1にはメモリ記憶装置181のみを示した。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171及びワイドエリアネットワーク(WAN)173を含んでいるが、他のネットワークを含むこともできる。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネット及びインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、コンピュータ110は、ネットワークインターフェース又はアダプタ170を介してLAN171に接続される。WANネットワーク環境において使われる場合、コンピュータ110は通常、モデム172、又は、例えば、インターネットなどのWAN173を介した通信を確立する他の手段を含んでいる。モデム172は、内部にあっても外部にあってもよく、ユーザ入力インターフェース160又は他の適切な機構を介してシステムバス121に接続することができる。ネットワーク接続された環境では、コンピュータ110に関連して図示したプログラムモジュール又はその一部は、リモートメモリ記憶装置に格納することができる。例えば、図1では、リモートアプリケーションプログラム185を、メモリ装置181に常駐するものとして示した。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使うことができることが理解されよう。
コンピュータ110又は他のクライアント装置を、コンピュータネットワークの一部として利用できる。この点に関して、本発明は、任意の数のメモリ又は記憶装置、及び任意の数の記憶装置又はボリュームに渡って出現する任意の数のアプリケーション及び処理を有するどのコンピュータシステムにも関係する。本発明は、リモート又はローカル記憶装置を有する、ネットワーク環境において利用されるサーバコンピュータ及びクライアントコンピュータを備える環境に適用することができる。本発明は、プログラミング言語の機能、翻訳性能及び実行性能を有する独立型計算装置に適用することも可能である。
<コードセグメントを作成し、管理し、使用するシステム及びその方法>
図2は、本発明の一実施形態による、コードセグメントを作成し、管理し、使用するシステムを示すブロック図である。コンピュータ202は、本発明が存在することのできるユーザ向けコンピュータや開発用コンピュータなどであるが、それに限定されないコンピュータを表す。本発明は、統合設計環境の構成要素としても、独立型システムとしても実装することができる。ツールは、コードセグメントマネージャ216、及び以下の1つ又は複数を含むことができる。すなわち、コードセグメントライブラリ222、ここではデバッガ214で表される1つ又は複数の言語デバッガ、1つ又は複数の言語サービス(図示せず)、ソースコード212を下書きし編集するエディタ206で表される1つ又は複数のエディタ、及びコンパイラ208で表される1つ又は複数のコンパイラである。設計環境IDE204は、図2に示さない他の構成要素を含むこともできる。
ソースコードファイル212は、一般に、プログラマ又は開発者がタイプ入力し編集する1組の命令であり、所与の1つのプログラミング言語、又は複数のプログラミング言語の組合せで書かれる。ソースコード212は、一般に、1つ又は複数のステートメントを含んでおり、各ステートメントは、一般に、1つ又は複数の式及び/又はエンティティを含んでいる。ステートメント中の式及び/又はエンティティは、複数の構成要素から構成することができる。ソースコード212は、エディタ206によって作成することも修正することもでき、安定した記憶媒体上に維持することができる。
アプリケーションは、設計環境(例えば、例示的な統合設計環境(IDE)204)を用いて、ソースコード212から作成することができる。設計環境は、ここではコンパイラ208で表される1つ又は複数のコンパイラ、1つ又は複数の言語サービス(図示せず)、1つ又は複数の設計ツール(デバッガ214で表される)、ここではエディタ206で表される1つ又は複数のエディタ、ブラウザ(図示せず)などを含むことができる。IDE204は、例えば、マイクロソフトのVISUAL STUDIO .NET、MACROMEDIAのDREAMWEAVER、BORLAND C++ BUILDER STUDIO 6、又は他のどのソフトウェア開発/設計ツール、コンパイラもしくは環境も表すことができる。
IDE204などの設計環境は、ソースコード212から、独立型の実行環境(図示せず)で実行することができる実行可能なコード210を生成することもでき、翻訳され又は再度コンパイルされるとともに実行環境によって実行される中間の形のコードを生成することもできる。このような実行環境は、設計環境IDE204によってソースコード212から作成されたコンパイルを実行するために必要とされる要素を含むことができる。実行環境は、装置に特有でない中間言語コードからネイティブコードを作成する要素を含むことができる。開発環境及び実行環境はさらに、様々なクラスライブラリ(図示せず)を含むことができる。適切な実行環境は、例えば、マイクロソフトのCOMMON LANGUAGE RUNTIME.NET、JAVA(登録商標)、又は適切な他のどの実行環境も表すことができる。実行可能なアプリケーションは、共有されるクラスライブラリ及び実行環境とともに、1つ又は複数のコンピュータ(図示せず)にロードし、実行することができる。
エディタ206は、コンピュータプログラムのソースコード212の開発を容易にする。エディタ206は、BASIC、COBOL、FORTRAN、C、C++、C#、JAVA(登録商標)、J#、VISUAL BASIC、REAL BASIC、DELPHI、ASP、PASCAL、HTML、XML、ADA、PERL、DYLAN、PYTHON、SMALLTALK、TCL?TK、EIFFELエディタなどでよい。
コンパイラ208は、BASIC、COBOL、FORTRAN、C、C++、C#、JAVA(登録商標)、J#、VISUAL BASIC、REAL BASIC、DELPHI、ASP、PASCAL、HTML、XML、ADA、PERL、DYLAN、PYTHON、SMALLTALK、TCL?TK、EIFFELコンパイラ、インタープリタ、又は適切な他のどのコンパイラもしくはインタープリタも表すことができる。
本発明の実施形態において、コードセグメントが、コードセグメントマネージャ216によって受け取られ、ファイル、例えば、XMLファイルに変換され、コードセグメントライブラリ222中に保存される。コードセグメントライブラリ222中のコードセグメントは、後述するように、ソースコードに挿入するために使用可能になり得る。
図3は、本発明の実施形態による、コードセグメントを作成し、管理し、再利用する処理を示すフロー図である。ステップ302で、保存し再利用するコードセグメントを生成するために、ソースプログラム中のコードのセクションを、(例えば、コードのセクションを強調表示し、右クリックすることによっても、適切な他のどの手段によっても)選択することができる。本発明の実施形態において、コードセグメントライブラリ222に含めるためのコードのブロックを選択すると、プログラムエディタユーザインターフェースの新しいセッションが表示される。この時点で、本発明の実施形態では、コードセグメントの作成者は、コードセグメントを編集し、コードセグメントの1つ又は複数の選択された要素又は部分のデフォルト値を設定し、選択したものを修正可能なオブジェクト、変数又は定数などとして定義し、コードセグメントのその部分が再利用のために選択されるとその部分を修正するためのヘルプテキストを提供することができる。期待される修正のタイプを指定することもできる。(非限定的な例として、オブジェクト、変数又は定数は、整数、文字列又はクラスのタイプでよい。)タイプのテンプレートは、修正可能な要素に関連づけることができる。例えば、コードセグメントは、データソースと相互作用する場合、データベーススキーマ、及びスキーマが参照する、強くタイプづけされたオブジェクトに関連づけることができる。さらに、コードセグメントのタイトル、及び探索を行ってコードセグメントを見つけるためのキーワードは、コードセグメントが再利用のために選択されると、そのセグメントを修正するためのヒントを提供することができ、かつ/又は、コードセグメント中の選択された要素のためにコメントを特定することができる。ソースプログラムにおける元の使用から推論することができる、セグメントについてのメタ情報が提示される。こうしたメタ情報、及びユーザによって要求されるどの追加のメタ情報も、コードセグメントに関連づけることができる。
本発明の実施形態におけるコードセグメントは、ステップ304で、XMLファイルに変換される。
図4a及び図4bは、本発明による例示的な符号化コードセグメントを示す図で、コードセグメントから作成することができる例示的なXMLファイル400を示している。本発明の一実施形態におけるライブラリ222は、再利用のためのオブジェクトの集合体であり、1つ又は複数の符号化コードセグメント、例えば、例示的な符号化コードセグメント400を含んでいる。符号化コードセグメント400は、以下の1つ又は複数を含むことができる。すなわち、開始タグ402a及び終了タグ402b(「<title>」)で示される、コードセグメントのタイトル404、開始タグ「<uniqueid>」408a及び終了タグ「</uniqueid>」408bで示される一義的な識別子406など、他にも、コードセグメントのバージョン、コードセグメントのロケール、コードセグメントの作者、コードセグメントが何を行うかという記述、コードセグメントに対するヘルプトピックへのURL(汎用資源識別子)、コードセグメントが属す1つ又は複数のカテゴリ(例えば)、コードセグメントを見つけるのに使うことができるキーワード、コードセグメントの実行が意図される実行環境のバージョン、コードセグメントの実行に必要とされるライブラリ及びアセンブリなどの参照、コードセグメントにおける制御、オブジェクト、定数などの宣言、コードセグメントを符号化するためのプログラミング言語、コードセグメント410中の実際のコード、及び要望に応じた他の情報などの項目である。XMLファイルでは、コードセグメントのこうした部分は、適切な開始タグ及び終了タグによって区切ることができ、上述した区切り記号として選択された特定のタグは例示に過ぎない。適切などのタグも指示子も、維持される情報を識別するのに用いることができる。本発明の実施形態では、ファイルはXMLファイルであり、メタ情報はXMLファイルにおいて符号化されるが、他の実施形態では、メタ情報は、XMLファイルではない1つ又は複数のファイルにおいてもデータベースにおいても符号化することができる。
ステップ306で、開発者も他のユーザも、符号化コードセグメント、例えば、ライブラリ222の符号化コードセグメント400に、そのコードを再利用するためにアクセスすることができる。本発明の実施形態において、コードセグメントライブラリ222の符号化コードセグメントには、新しい環境での再利用のために、開発環境の内部からアクセスすることができる。
図5は、本発明の実施形態による、ソースプログラムに挿入するコードセグメントを選択する、ユーザインターフェースの例示的なスクリーンショットを示す図である。本発明の実施形態の例示的なスクリーンショット500を示し、ここにプログラムエディタユーザインターフェースが表示されており、コンテキストメニュー504が、可能な一選択肢として「Insert Snippet」504a(図5では「INSERT」に省略してある)を表示している。「Insert Snippet」504aを選択すると、その動作の一覧が表示される。「IMPLEMENT CODE」504bが、「Insert Snippet」504aの動作一覧の1つの起こり得る符号化コードセグメントであり、さらに、「Read Command Line Arguments」(「READ COM LINE ARGS」504cに省略してある)が、「IMPLEMENT CODE」504bの動作一覧の一部である。符号化コードセグメント504cを選択すると、選択された符号化コードセグメントのコード部分が、プログラムソースコード212に挿入される。挿入用に示された特定の位置に正しく挿入されない可能性のあるコードセグメントは、灰色表示することもでき、あるいは選択を禁止することもできる。
本発明の実施形態では、開発者も他のユーザも、コードを再利用するために、コードセグメントライブラリのメンバー、例えば、ライブラリ222の符号化コードセグメント400にアクセスすることができる。こうしたアクセスは、ドライブ又はディレクトリの内容の表示を行うとともにドライブ又はディレクトリの内容表示(すなわち、ライブラリ)から符号化コードセグメントを選択しドラッグすることによって行われる。
図6は、本発明の実施形態による、ソースプログラムに挿入するコードセグメントを選択する、他のユーザインターフェースの例示的なスクリーンショットを示す図である。コードセグメントのこのような選択を例示的なスクリーンショット600に示してあり、ここで、符号化コードセグメント602はそのように選択されている。他の実施形態では、コードセグメントは、エディタにおいて使うためのテキストを選択する、一般に公知であるどの手段によっても選択することができる。選択されたコードセグメントが挿入される位置を表すカーソル604も、垂直バー606によって指定される。一実施形態のみにおける垂直バー606は、コードセグメントの挿入のために選択された位置が挿入用に許容可能な位置である場合に表示される。
図7は、本発明によるソースプログラムにコードセグメントを挿入する処理を示すフロー図である。ステップ702で、ソースコードに挿入するために、コードセグメントが選択される。図5及び図6は、挿入用のコードセグメントを選択する2つの方法を示すが、上述したように、コードセグメントを選択する他の方法も企図される。
ステップ704で、符号化コードセグメントが、利用可能なメタ情報を判定するために解析される。コードセグメントがXMLファイルとして符号化される一実施形態では、そのXMLコードが、上述したように、XMLタグによって区切られるメタ情報要素を判定するために解析される。
ステップ706で、コードセグメントのメタ情報中のプログラミング言語が、ソースコードのプログラミング言語と比較される。2つのプログラミング言語が適合しない場合、コードセグメントの挿入は許可することができない。(例えば、挿入用に選択されたコードセグメントがC++コードセグメントである場合、コードセグメントが挿入されるソースコードはC++コードでなければならない。)本発明を実現することができるために企図されるプログラミング言語は、BASIC、COBOL、FORTRAN、C、C++、C#、JAVA(登録商標)、J#、VISUAL BASIC、REAL BASIC、DELPHI、ASP、PASCAL、HTML、XML、ADA、PERL、DYLAN、PYTHON、SMALLTALK、TCL−TK、EIFFEL及び他のどのプログラミング言語も含んでいる。
ステップ708で、ソースコードへのコードセグメントの挿入の実現可能性が判定される。例えば、マイクロソフトのVISUAL BASIC言語では、プロパティをメソッドの中に置くことができず、したがって、ステップ708で、本発明の実施形態では、メソッドへのプロパティのコードセグメントの挿入は許可されないことになる。同様に、コードの行がメソッド中にカプセル化されない場合、本発明の実施形態では、そのコードの行は、名前空間にもモジュールにも挿入することができない。というのは、コードの行は、サブルーチン、プロパティ、又は関数などの手順に含まれるべきだからである。本発明の実施形態において、関数を含むコードセグメントは、別の関数に挿入することができない。本発明の実施形態では、クラス、構造体、又はインターフェースの定義は、メソッドに挿入することができない。上述した及び他の挿入規則は、例えば、上述した、C#及び他の多くの言語を含む多くのプログラミング言語に適用することができる。
ステップ710で、コードセグメントは、指示された位置でソースコードにコピーされる(例えば、位置は、コードセグメントが選択されるときのカーソルの場所によって決定することができる。)。
図8は、本発明による、ソースプログラムにコードセグメントを挿入するときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図である。本発明の実施形態の例示的なスクリーンショットを示し、ここで、境界線806によって区切られるコードセグメント802が、ソースコード804に挿入されている。コメント814及び816で示される1つ又は複数のコメントを表示することができる。コメントは、コードセグメントを、その新しい環境用に修正するのに有用な情報を提供することもでき(例えば、コメント814)、ヘルプトピック又は適切な他の情報へのリンクを含むこともでき(例えば、コメント816)、上述したように、コードセグメントが生成されたときにコードセグメント作成者によって入力されたコメント情報を表すことができる。
ステップ712で、コードセグメント中の定数、制御及びオブジェクトなどだがそれに限らないフィールドなどだがそれに限らない、修正を必要とし得る各要素が、(例えば、適切なタグで区切られたXMLファイル中のメタ情報と、コードセグメントのコード部分で見つかった、識別された制御、定数、オブジェクトとを比較することによって)識別される。識別された定数、制御及びオブジェクトなどは、強調表示され、あるいは、図8において制御810及び812で示すように、ソースコード中で区別される。
ステップ714で、コードセグメントが実行されるのに必要なライブラリ、構成要素及び他のプログラミング要素を表すインポート及び参照が、符号化コードセグメントファイル中で検査され、ソースコードに含まれていないそうしたインポート及び参照が、ソースコードに挿入される(例えば、図12のインポートステートメント1202が挿入されており、参照一覧が、「System.Web」1204を含むように更新されている)。なお、図13a〜図13cは、図12に示す本発明による例示的な符号化コードセグメントを示す図である。
ステップ716で、カラット(carat)又はカーソルで表され、強調表示を行うフォーカスが、修正を必要とし得る第1の要素(例えば、TextBox1 810)へ移される。ステップ718で、マーカが活動化される。一実施形態では、活動化は、枠820で示すように、フォーカスを有している要素の周囲に枠を表示することによって示される。
本発明の実施形態において、1つの定数、変数又は制御を変更する動作は、同じコードセグメント中のその定数、変数又は制御の他のすべてのインスタンスの自動更新を生じる。例えば、図8に示すように、「TextBox1」810が「TextBox2」に変更されると仮定する。本発明の実施形態において、「TextBox1」810を「TextBox2」に変更すると、「TextBox1」812は、同様に「TextBox2」に自動的に変更される。
本発明の実施形態において、指定されたユーザ動作又はイベント(例えば、CONTROL+SPACEの入力などだが、それに限らない)を受け取ると、変数に対して有効な置換えの一覧が表示される。本発明の実施形態では、リストボックス1004に含まれる項目は、デフォルト要素、及びソースコード中に現れる類似のどの要素も含む。例えば、ここで図10を参照すると、「TextBox2」1002を選択するときにCONTROL−SPACEが入力されると、リストボックス1004は、要素TextBox1 1014(デフォルト)、及びフォーム上に存在するどのTextBox変数(例えば、この変数がソースコードからの要素であることを示すアイコン又はインジケータ1012を伴うTextBox1 1008、及びTextBox2 1010)も含んでいる。一覧中の項目の1つは、選択された要素の別のインスタンスを宣言するための選択肢を提供することができる。例えば、図10において、NewTextBox1006がこのような要素である。NewTextBox1006の選択は、図11の行1102に示すように、TextBox変数の新規インスタンスの宣言を生じることができる。図示した例では、「TextBox1」1014が、コードセグメント作成者によって指定された、この要素に対するデフォルト値である。本発明の実施形態では、一義的な名前を作成するために、数字がデフォルト値に自動的に付加される。別の新しい要素が宣言される場合、新規インスタンスの名前は、再度増分することができる(例えば、一義的なid「TextBox12」を生成するなど)。
本発明の実施形態において、コードセグメント802の境界線806が保持される。タブキーを押すと、起こり得る修正のために、マークづけされた次のフィールドが活動化される。マークづけされた最後のフィールドに達した後で、タブを再度押すと、本発明の実施形態では、コードセグメントの第1のフィールドが活動化される。本発明の実施形態において、取消し選択肢は、ユーザが、コードセグメントをその元の状態(すなわち、コードセグメントが再利用のために選択された後、ソースコードに最初に挿入された状態)に戻すことを可能にする。
図9は、本発明による、ソースプログラムにコードセグメントを挿入するときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図である。本発明の実施形態に従って表示することができるヒント(tip)を示す。ヒント902は、ヒントに関連づけられた要素904が選択されると表示することができる。本発明の実施形態では、ヒントに関連づけられたフィールドの上でカーソルを動かすことによって、ヒントが表示される。
本明細書で説明した様々な技術は、ハードウェア又はソフトウェア、あるいはそうすることが適切な場合には、両方の組合せと共に実現することができる。したがって、本発明のコードセグメント作成方法及びその装置、あるいは本発明の特定の実施形態又は部分は、実体のある媒体、例えば、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、又は他のどのマシン読取可能な記憶媒体においても具体化されるプログラムコード(すなわち、命令)の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされるとともにそれによって実行されると、マシンは本発明を実施する装置になる。プログラム可能なコンピュータ上でのプログラムコードの実行の場合、計算装置は、概して、プロセッサ、プロセッサによって読取可能な記憶媒体(揮発性メモリ、不揮発性メモリ及び/又は記憶要素など)、少なくとも1つの入力装置、ならびに少なくとも1つの出力装置を含む。例えば、データ処理APIなどの使用を介して、本発明の領域特定プログラミングモデルの態様の作成及び/又は実装を利用することができる1つ又は複数のプログラムは、好ましくは、高度な手続き型プログラミング言語又はオブジェクト指向プログラミング言語で実装されて、コンピュータシステムと通信する。ただし、プログラム(群)は、そうすることが望まれる場合、アセンブリでも機械言語でも実装することができる。いずれの場合でも、言語は、コンパイル型言語でもインタープリト型言語でもよく、ハードウェアの実装と組み合わせることができる。
以上、本発明を、様々な図面の好適な実施形態に基づいて説明したが、本発明の同じ機能を、本発明から逸脱することなく実施するために、他の類似の実施形態を使用することもでき、説明した実施形態に修正及び追加を行うこともできる。したがって、本発明は、どの1つの実施形態にも限定されるべきではなく、特許請求の範囲による外延及び範囲内で解釈されるべきである。
本発明の実施形態を実現するための好適な計算機環境を示すブロック図である。 本発明の実施形態による、コードセグメントを作成し、管理し、再利用するシステムを示す例示的なブロック図である。 本発明の実施形態による、コードセグメントを作成し、管理し、再利用する処理を示すフロー図である。 本発明による例示的な符号化コードセグメントを示す図(その1)である。 本発明による例示的な符号化コードセグメントを示す図(その2)である。 本発明の実施形態による、ソースプログラムに挿入するコードセグメントを選択する、ユーザインターフェースの例示的なスクリーンショットを示す図である。 本発明の実施形態による、ソースプログラムに挿入するコードセグメントを選択する、別のユーザインターフェースの例示的なスクリーンショットを示す図である。 本発明によるソースプログラムにコードセグメントを挿入する処理を示すフロー図である。 本発明による、ソースプログラムにコードセグメントを挿入するときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図(その1)である。 本発明による、ソースプログラムにコードセグメントを挿入するときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図(その2)である。 本発明による、修正用の要素を選択するときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図である。 要素の新規インスタンスが挿入のために選択されるときに表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図である。 本発明によって表示することができる、ユーザインターフェースの例示的なスクリーンショットを示す図である。 図12に示す本発明による例示的な符号化コードセグメントを示す図(その1)である。 図12に示す本発明による例示的な符号化コードセグメントを示す図(その2)である。 図12に示す本発明による例示的な符号化コードセグメントを示す図(その3)である。
符号の説明
100 計算機環境
120 処理装置
130 システムメモリ
121 システムバス
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定型不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取外し可能不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 ワイドエリアネットワーク
180 リモートコンピュータ
182 グラフィックインターフェース
185 リモートアプリケーションプログラム
186 映像メモリ
190 映像インターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
202 コンピュータ
206 エディタ
208 コンパイラ
210 実行可能コード
214 デバッガ
216 コードセグメントマネージャ
212 ソースファイル
222 コードセグメントライブラリ

Claims (31)

  1. コードセグメント及び該コードセグメントに関連づけられた情報を備えた少なくとも1つのファイルにコードセグメントを変換するステップと、
    前記少なくとも1つのファイルを前記コードセグメントのライブラリに格納するステップであって、前記コードセグメントのライブラリは、1つ又は複数のソースプログラムに含めるために、再利用可能な前記コードセグメントのソースとして使うことができるステップと
    を有することを特徴とするコードセグメント作成方法。
  2. 前記少なくとも1つのファイルは、XMLファイルであることを特徴とする請求項1に記載のコードセグメント作成方法。
  3. 前記コードセグメントを変換するステップは、前記コードセグメントを前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  4. 前記コードセグメントを変換するステップは、作者を前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  5. 前記コードセグメントを変換するステップは、前記コードセグメントを書くためのプログラミング言語を、前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  6. 前記コードセグメントを変換するステップは、選択されたコードの要素に関連づけられたヒントを、前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  7. 前記コードセグメントを変換するステップは、選択されたコードの要素に関連づけられたコメントを、前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  8. 前記コードセグメントを変換するステップは、前記コードセグメントが実行されるのに必要とされる少なくとも1つの参照を、前記少なくとも1つのファイルに格納するステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  9. 前記コードセグメントを変換するステップは、前記コードセグメントが実行されることが期待される実行環境のバージョンを、前記少なくとも1つのファイルに含めるステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  10. 前記XMLファイルを解析して、ソースプログラム中で再利用するために選択された、前記コードセグメントライブラリに格納された前記少なくとも1つのファイルに関連づけられた情報を判定するステップを有することを特徴とする請求項2に記載のコードセグメント作成方法。
  11. 前記少なくとも1つのファイルを符号化したプログラミング言語が、前記ソースプログラムの符号化言語と一致するという判定に応答して、前記少なくとも1つのファイルの少なくとも一部分を前記ソースプログラムに挿入するステップを有することを特徴とする請求項10に記載のコードセグメント作成方法。
  12. 前記ソースプログラムに挿入される前記少なくとも一部分は、コードのセクションを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  13. 前記ソースプログラムに挿入される前記少なくとも一部分は、参照を含むことを特徴とする請求項1に記載のコードセグメント作成方法。
  14. 前記参照は、オブジェクトの宣言を含むことを特徴とする請求項13に記載のコードセグメント作成方法。
  15. 前記参照は要素を含み、該要素は、前記コードセグメントに関連づけられた前記要素の外部記述によって決定されることを特徴とする請求項13に記載のコードセグメント作成方法。
  16. 前記参照は、定数の宣言を含むことを特徴とする請求項13に記載のコードセグメント作成方法。
  17. 前記参照は、制御の宣言を含むことを特徴とする請求項13に記載のコードセグメント作成方法。
  18. 前記ソースプログラムに挿入される前記少なくとも一部分は、前記コードセグメントの実行に必要とされる要素を含むことを特徴とする請求項1に記載のコードセグメント作成方法。
  19. 前記要素は、実行のために前記コードセグメントによって必要とされるライブラリを含むことを特徴とする請求項18に記載のコードセグメント作成方法。
  20. 前記少なくとも一部分は、前記少なくとも一部分が前記ソースプログラム中に存在しない場合にのみ前記ソースプログラムに挿入されることを特徴とする請求項13に記載のコードセグメント作成方法。
  21. 前記コードセグメントの要素に関連づけられた情報を前記少なくとも1つのファイル中のコードと比較することによって、前記ソースプログラムにおいて修正を必要とし得る前記要素を決定するステップを有することを特徴とする請求項1に記載のコードセグメント作成方法。
  22. 前記ソースプログラムにおいて修正を必要とし得る少なくとも1つの要素は、前記ソースプログラムに挿入される前記コードセグメントの他の部分と区別されることを特徴とする請求項21に記載のコードセグメント作成方法。
  23. 前記コードセグメント中の前記区別された要素に関連づけられたヒントが表示されることを特徴とする請求項22に記載のコードセグメント作成方法。
  24. フォーカスを有する前記少なくとも1つの要素は、該要素を囲む枠によって区別されることを特徴とする請求項22に記載のコードセグメント作成方法。
  25. コードセグメントマネージャを備え、該コードセグメントマネージャは、コードセグメント及び該コードセグメントに関連づけられた情報を、コードセグメントライブラリに格納するために少なくとも1つのファイルに変換し、前記コードセグメントライブラリは、ソースプログラムに含めるために、再利用可能なコードセグメントのソースとして使うことができることを特徴とするコードセグメント作成システム。
  26. 前記少なくとも1つのファイルは、XMLファイルを有することを特徴とする請求項25に記載のコードセグメント作成システム。
  27. 前記コードセグメントを前記XMLファイルに変換することは、前記コードセグメントに関連づけられたメタ情報の少なくとも1つのタイプを識別すること、及びメタ情報の前記少なくとも1つのタイプを、前記メタ情報のタイプを指示するインジケータでタグづけされた前記XMLファイルに格納することを特徴とする請求項26に記載のコードセグメント作成システム。
  28. 前記メタ情報のタイプは、コードを含むことを特徴とする請求項27に記載のコードセグメント作成システム。
  29. 前記メタ情報のタイプは、参照を含むことを特徴とする請求項27に記載のコードセグメント作成システム。
  30. 前記メタ情報のタイプは、インポートするためのライブラリを含み、前記ライブラリは、実行のために前記コードセグメントによって要求されることを特徴とする請求項27に記載のコードセグメント作成システム。
  31. コードセグメント及び該コードセグメントに関連づけられた情報を含む少なくとも1つのファイルに前記コードセグメントを変換するステップと、
    前記少なくとも1つのファイルを前記コードセグメントのライブラリに格納するステップであって、前記コードセグメントの前記ライブラリは、1つ又は複数のソースプログラムに含めるために、再利用可能なコードセグメントのソースとして使うことができるステップと
    のためのコンピュータ実行可能命令を有することを特徴とするコンピュータ読取可能な媒体。
JP2004179882A 2003-06-18 2004-06-17 コードセグメント作成方法及びそのシステム Expired - Fee Related JP4619698B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/464,397 US7526753B2 (en) 2003-06-18 2003-06-18 System and method for creating, managing and using code segments

Publications (2)

Publication Number Publication Date
JP2005011345A true JP2005011345A (ja) 2005-01-13
JP4619698B2 JP4619698B2 (ja) 2011-01-26

Family

ID=33418155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004179882A Expired - Fee Related JP4619698B2 (ja) 2003-06-18 2004-06-17 コードセグメント作成方法及びそのシステム

Country Status (5)

Country Link
US (1) US7526753B2 (ja)
EP (1) EP1489496B1 (ja)
JP (1) JP4619698B2 (ja)
KR (1) KR101098718B1 (ja)
CN (1) CN100354823C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220121677A1 (en) * 2019-06-25 2022-04-21 Sisense Sf, Inc. Method for automated query language expansion and indexing

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328426B2 (en) 2003-08-13 2008-02-05 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
US8117593B1 (en) * 2004-06-10 2012-02-14 Siemens Industry, Inc. Method for highlighting selected tasks in a program code listing
US7661088B2 (en) * 2004-10-20 2010-02-09 Microsoft Corporation Systems and methods to efficiently and automatically effect population of custom controls onto a visual designer toolbox
WO2006043012A1 (en) * 2004-10-22 2006-04-27 New Technology/Enterprise Limited Data processing system and method
US8185868B1 (en) 2004-12-20 2012-05-22 The Mathworks, Inc. System and method for cell-based code editing and publishing
KR100673313B1 (ko) * 2004-12-30 2007-01-24 재단법인서울대학교산학협력재단 코드조각 번호 매김을 이용한 프로그램 간의 코드조각결합방법
US7574675B1 (en) * 2005-06-14 2009-08-11 Adobe Systems Incorporated Methods and apparatus to display content selections
US7698695B2 (en) * 2005-08-31 2010-04-13 International Business Machines Corporation Search technique for design patterns in Java source code
US8392872B2 (en) * 2005-11-19 2013-03-05 International Business Machines Corporation Pseudo translation within integrated development environment
US7962894B2 (en) * 2005-11-23 2011-06-14 Oracle International Corporation System and method for identifying non-supported features in a multiple code editor environment
US8141038B2 (en) * 2005-12-29 2012-03-20 International Business Machines Corporation Virtual RAS repository
US20070234316A1 (en) * 2006-03-07 2007-10-04 Sap Ag Methods and systems for development of software for complex systems
US20070250810A1 (en) * 2006-04-20 2007-10-25 Tittizer Abigail A Systems and methods for managing data associated with computer code
US8510647B2 (en) * 2006-04-29 2013-08-13 Jennifer Madden Computer programming and markup language source code visualization tool
US9009656B2 (en) * 2006-05-02 2015-04-14 International Business Machines Corporation Source code analysis archival adapter for structured data mining
US9128727B2 (en) * 2006-08-09 2015-09-08 Microsoft Technology Licensing, Llc Generation of managed assemblies for networks
TW200821926A (en) * 2006-11-07 2008-05-16 Sunplus Technology Co Ltd Method and system for function reference of development tool
US8762956B1 (en) 2007-01-31 2014-06-24 The Mathworks, Inc. Generating a report document from code
US8312418B2 (en) * 2007-12-10 2012-11-13 International Business Machines Corporation Visualization of implicit relationships in a trace query for model driven development
KR100994070B1 (ko) * 2008-03-19 2010-11-11 (주)케투씨소프트 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
US20100235275A1 (en) * 2009-03-06 2010-09-16 Carl Ansley Card Processing
US9189244B2 (en) * 2009-08-18 2015-11-17 Adobe Systems Incorporated Methods and systems for managing data service specifications
US9244659B2 (en) 2010-04-26 2016-01-26 International Business Machines Corporation Extensible meta model for capturing solution patterns
US20110265058A1 (en) * 2010-04-26 2011-10-27 Microsoft Corporation Embeddable project data
CN101853205A (zh) * 2010-06-23 2010-10-06 山东中创软件商用中间件股份有限公司 一种监控程序运行的方法和装置
US8370354B2 (en) 2010-06-30 2013-02-05 International Business Machines Corporation Acceleration of legacy to service oriented (L2SOA) architecture renovations
US20120159434A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Code clone notification and architectural change visualization
CN102955695A (zh) * 2011-08-31 2013-03-06 鸿富锦精密工业(深圳)有限公司 三次元量测程序色彩管理系统及方法
CN103001981A (zh) * 2011-09-10 2013-03-27 深圳市龙视传媒有限公司 一种调用能力服务的方法及系统
US9189208B2 (en) * 2013-03-14 2015-11-17 Microsoft Technology Licensing, Llc Inline display and preview of related information for elements in a document
EP2951955B1 (en) * 2013-08-15 2017-11-15 IMMUN.IO Inc. Method and system for protecting web applications against web attacks
US9195440B2 (en) * 2013-11-26 2015-11-24 International Business Machines Corporation Intelligent data source selection in application development
US9141348B1 (en) * 2014-03-28 2015-09-22 The Mathworks, Inc. Using program code to generate help information, and using help information to generate program code
US20150301806A1 (en) * 2014-04-16 2015-10-22 The Mathworks, Inc. Tentative program code in an editor
WO2016000158A1 (en) * 2014-06-30 2016-01-07 Microsoft Technology Licensing, Llc Code recommendation
US9823904B2 (en) 2014-12-18 2017-11-21 International Business Machines Corporation Managed assertions in an integrated development environment
US9747082B2 (en) 2014-12-18 2017-08-29 International Business Machines Corporation Optimizing program performance with assertion management
US9703552B2 (en) * 2014-12-18 2017-07-11 International Business Machines Corporation Assertions based on recently changed code
US9870205B1 (en) * 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9678855B2 (en) 2014-12-30 2017-06-13 International Business Machines Corporation Managing assertions while compiling and debugging source code
US9798539B2 (en) * 2015-07-31 2017-10-24 International Business Machines Corporation Comment linkage and display across the review cycle of an artifact
US9501274B1 (en) * 2016-01-29 2016-11-22 International Business Machines Corporation Qualitative feedback correlator
CN107239264B (zh) * 2016-03-28 2020-06-23 阿里巴巴集团控股有限公司 代码提示信息的生成方法及装置
CN106484427A (zh) * 2016-10-21 2017-03-08 福建中金在线信息科技有限公司 一种代码文件的生成方法及装置
CN106648332A (zh) * 2016-11-16 2017-05-10 惠州Tcl移动通信有限公司 一种智能终端快速选择的方法和系统
CN106951261A (zh) * 2017-03-27 2017-07-14 武汉斗鱼网络科技有限公司 数据管理方法及装置
CN110874216B (zh) * 2018-08-31 2023-07-28 广州虎牙信息科技有限公司 一种完备代码生成方法、装置、设备和存储介质
CN112230809B (zh) * 2019-07-15 2023-08-18 腾讯科技(深圳)有限公司 计算机程序代码的选取方法、装置及存储介质
US11416245B2 (en) * 2019-12-04 2022-08-16 At&T Intellectual Property I, L.P. System and method for syntax comparison and analysis of software code
CN112364580A (zh) * 2020-11-13 2021-02-12 上海兆芯集成电路有限公司 自动在寄存器传输级设计文件中插入特定代码的方法及装置
US11875137B2 (en) * 2020-12-07 2024-01-16 Texas Instruments Incorporated Method and apparatus for adding new inline prompts to a program development environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003516043A (ja) * 1999-12-04 2003-05-07 エムシーアイ・ワールドコム・インコーポレーテッド 通信システムにおける記録を処理するための方法およびシステム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920868A (en) 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US6427230B1 (en) * 1998-11-09 2002-07-30 Unisys Corporation System and method for defining and managing reusable groups software constructs within an object management system
US6427228B1 (en) * 1999-05-12 2002-07-30 International Business Machines Corporation Combining a meta data file and java source code to dynamically create java classes and javabeans
US6981212B1 (en) 1999-09-30 2005-12-27 International Business Machines Corporation Extensible markup language (XML) server pages having custom document object model (DOM) tags
AU2001229464A1 (en) * 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a web content platform
US6675370B1 (en) * 2000-02-02 2004-01-06 International Business Machines Corporation System and method for imbedding hyperlinked language grammar notation in a “literate” programming environment
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US20030070159A1 (en) * 2000-08-04 2003-04-10 Intrinsic Graphics, Inc. Object decription language
US7275079B2 (en) * 2000-08-08 2007-09-25 International Business Machines Corporation Common application metamodel including C/C++ metamodel
US20020049790A1 (en) * 2000-08-08 2002-04-25 Ricker Jeffrey M Data interchange format transformation method and data dictionary used therefor
US6957416B2 (en) * 2001-01-31 2005-10-18 Hewlett-Packard Development Company, L.P. Document builder classes and methods
US7149734B2 (en) 2001-07-06 2006-12-12 Logic Library, Inc. Managing reusable software assets
US20030056195A1 (en) * 2001-07-19 2003-03-20 Hunt Joseph R. Code generator
US7069547B2 (en) * 2001-10-30 2006-06-27 International Business Machines Corporation Method, system, and program for utilizing impact analysis metadata of program statements in a development environment
US7058886B1 (en) * 2001-12-18 2006-06-06 Open Invention Network Method and apparatus for declarative error handling and presentation
CN101110021A (zh) * 2002-03-25 2008-01-23 数据质量解决公司 对过程指令集进行可视化编程的方法
US7275207B2 (en) * 2002-03-28 2007-09-25 International Business Machines Corporation System and method in an electronic spreadsheet for displaying and/or hiding range of cells
US20030221184A1 (en) * 2002-05-22 2003-11-27 Gunjal Atul Narayan Template-based application development system
US20040187090A1 (en) * 2003-03-21 2004-09-23 Meacham Randal P. Method and system for creating interactive software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003516043A (ja) * 1999-12-04 2003-05-07 エムシーアイ・ワールドコム・インコーポレーテッド 通信システムにおける記録を処理するための方法およびシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220121677A1 (en) * 2019-06-25 2022-04-21 Sisense Sf, Inc. Method for automated query language expansion and indexing
US11954113B2 (en) * 2019-06-25 2024-04-09 Sisense Sf, Inc. Method for automated query language expansion and indexing

Also Published As

Publication number Publication date
EP1489496A3 (en) 2007-09-05
JP4619698B2 (ja) 2011-01-26
US20040261059A1 (en) 2004-12-23
US7526753B2 (en) 2009-04-28
EP1489496B1 (en) 2017-04-19
CN1573693A (zh) 2005-02-02
CN100354823C (zh) 2007-12-12
EP1489496A2 (en) 2004-12-22
KR20040111099A (ko) 2004-12-31
KR101098718B1 (ko) 2011-12-23

Similar Documents

Publication Publication Date Title
JP4619698B2 (ja) コードセグメント作成方法及びそのシステム
US8028276B1 (en) Method and system for generating a test file
US7865870B2 (en) Automatic content completion of valid values for method argument variables
US7937688B2 (en) System and method for context-sensitive help in a design environment
Nentwich et al. Flexible consistency checking
US7281018B1 (en) Form template data source change
US7017143B1 (en) External resource files for application development and management
US7581206B2 (en) Systems and methods for creating and providing templates in a single file
US7552418B2 (en) Systems and methods for creating and providing templates in a single file
CN108139891B (zh) 用于生成建议以纠正未定义标记错误的方法和系统
US20060101393A1 (en) System and Method for Building an Open Model Driven Architecture Pattern Based on Exemplars
TWI536263B (zh) 將作業系統之原始應用程式介面投射至其它程式語言
Mayer et al. Cross-language code analysis and refactoring
US7240340B2 (en) System and method for browse information parsing without compilation
US7562342B2 (en) Method and apparatus for incrementally processing program annotations
KR101597599B1 (ko) 소스 위치가 결여된 코드 세그먼트들을 가지는 소스 코드를 모델링하기 위한 방법
US9311077B2 (en) Identification of code changes using language syntax and changeset data
Bolin Closure: The definitive guide: Google tools to add power to your JavaScript
US7657869B2 (en) Integration of external tools into an existing design environment
Roriguez et al. Assisting developers to build high-quality code-first web service APIs
Vasani Roslyn Cookbook
US20060101385A1 (en) Method and System for Enabling Roundtrip Code Protection in an Application Generator
KR20220003106A (ko) 컴퓨터-보조 컴퓨터 프로그래밍의 시스템 및 방법
Hackman et al. mel-model extractor language for extracting facts from models
Kara Design and implementation of the modelicaml code generator using acceleo 3. x

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

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: 20101022

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101027

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees