JP2016509737A - ソース位置を欠くコードセグメントを有するソースコードをモデル化する方法 - Google Patents
ソース位置を欠くコードセグメントを有するソースコードをモデル化する方法 Download PDFInfo
- Publication number
- JP2016509737A JP2016509737A JP2015556990A JP2015556990A JP2016509737A JP 2016509737 A JP2016509737 A JP 2016509737A JP 2015556990 A JP2015556990 A JP 2015556990A JP 2015556990 A JP2015556990 A JP 2015556990A JP 2016509737 A JP2016509737 A JP 2016509737A
- Authority
- JP
- Japan
- Prior art keywords
- code
- node
- source
- pigment
- data model
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
ソフトウェア開発者は、いくつかの異なるプログラミング言語でソースコードを書く。各プログラミング言語は、異なるシンタックスおよびセマンティクスを有する。コードブラウザ、統合開発環境(IDE)、および履歴分析ツールなどを含むコード化ツールは、これらのツールがソフトウェア開発者にとって有用なものとなるように、ソースコード言語を理解できる必要がある。多くのツールは、1つまたは2つの言語を良好に表わすが、他の言語を支持することが難しい。全てのプログラミング言語を支持する適切なツールを得るためには、全てのツールによって使用され得る単一のコードモデルを設けるべきである。全ての言語のソースコードのセマンティクスおよびシンタックスを表わすには、各言語の微妙な差異を理解する複合データモデルおよびサービスが必要となる。また、データモデルおよびサービスは、任意のプログラミング言語から、または言語間で、要素をインデックス化し、要素間の関係を表示することができる必要がある。
この明細書は、概してデータのモデル化に関する技術、具体的にはソース位置を欠くコードセグメントをモデル化する方法およびシステムに関する技術を記載するものである。
例示的なデータモデルおよびサービスは、言語に依存しない標準的なソースコードおよびコンパイラメタデータの表現を提供する。モデルは、ソースコードをデータグラフとして表わす。データグラフは、データを記憶し、ノードと呼ばれる点およびエッジと呼ばれる線の有限の集合を使用してデータ間の関係を示すデータ構造である。グラフ内の関係は、図2に示されるように、エッジを使用してノードを互いに接続することによって表される。
Claims (14)
- ソースコードをモデル化する方法であって、
ソース位置を有さないコードセグメントを含むソースコードを受け取るステップ(901)と、
受け取ったソースコードをインデックス化するステップ(903)と、
前記インデックス化ソースコードから、コード要素を表わす複数のノードと要素間の関係についての複数のエッジとを含むデータモデルを作成するステップ(905)と、
各ノードと関連付けられるソース位置を判定するステップ(907)と、
前記コードセグメントの1つを非表示もしくは黙示コードセグメントとして認識することに応答して、前記コードセグメントについてのフィグメント表現を作成するステップ(909)と、
前記作成されたフィグメントを前記コードセグメントのノードと関連付けられた前記ソース位置として割り当てるステップ(909)とを備える、方法。 - フィグメントノードは、前記データモデルにおいて前記ノードを他のノードから区別するために、特殊な注釈付けがなされる、請求項1に記載の方法。
- 前記データモデルをユーザに対して提供するステップをさらに備える、請求項1に記載の方法。
- 前記データモデルは、API、ユーザインターフェイス、および/またはコマンドラインコードを介してユーザに対して提供される、請求項3に記載の方法。
- 前記フィグメント表現の内容は有効なコードシンタックスである、請求項1に記載の方法。
- 前記フィグメント表現の内容は、コード挙動をモデル化するが、有効なコードシンタックスを表わさない、請求項1に記載の方法。
- 前記非表示もしくは黙示コードセグメントを使用する前記ソースコードについての前記ノードと前記作成されたフィグメントを表わすノードとの間にエッジをさらに備える、請求項1に記載の方法。
- ソースコードをモデル化するシステムであって、
1つ以上の処理装置と、
命令を記憶する1つ以上の記憶装置とを備え、前記命令が前記1つ以上の処理装置によって実行されると、前記1つ以上の処理装置は、
ソース位置を有さないコードセグメントを含むソースコードを受け取り(901)、
前記受け取ったソースコードをインデックス化し(903)、
前記インデックス化ソースコードから、コード要素を表わす複数のノードと要素間の関係についての複数のエッジとを含むデータモデルを作成し(905)、
各ノードと関連付けられる前記ソース位置を判定し(907)、
前記コードセグメントの1つを非表示もしくは黙示コードセグメントとして認識することに応答して、前記コードセグメントについてのフィグメント表現を作成し(909)、
前記作成されたフィグメントを、前記コードセグメントのノードと関連付けられた前記ソース位置として割り当てる(909)、システム。 - フィグメントノードは、前記データモデルにおいて前記ノードを他のノードから区別するために、特殊な注釈付けがなされる、請求項8に記載のシステム。
- 前記データモデルをユーザに対して提供することをさらに備える、請求項8に記載のシステム。
- 前記データモデルは、API、ユーザインターフェイス、および/またはコマンドラインコードを介してユーザに対して提供される、請求項8に記載のシステム。
- 前記フィグメント表現の内容は有効なコードシンタックスである、請求項8に記載のシステム。
- 前記フィグメント表現の内容は、コード挙動をモデル化するが、有効なコードシンタックスを表わさない、請求項8に記載のシステム。
- 前記非表示もしくは黙示コードセグメントを使用する前記ソースコードのための前記ノードと前記作成されたフィグメントを表わすノードとの間にエッジをさらに備える、請求項8に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/760,641 | 2013-02-06 | ||
US13/760,641 US9116780B2 (en) | 2013-02-06 | 2013-02-06 | Method for modeling source code having code segments that lack source location |
PCT/US2014/014591 WO2014123856A1 (en) | 2013-02-06 | 2014-02-04 | A method for modeling source code having code segments that lack source location |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016509737A true JP2016509737A (ja) | 2016-03-31 |
JP5974191B2 JP5974191B2 (ja) | 2016-08-23 |
Family
ID=50231507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015556990A Active JP5974191B2 (ja) | 2013-02-06 | 2014-02-04 | ソース位置を欠くコードセグメントを有するソースコードをモデル化する方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9116780B2 (ja) |
EP (1) | EP2954408A1 (ja) |
JP (1) | JP5974191B2 (ja) |
KR (1) | KR101597599B1 (ja) |
CN (2) | CN107273109B (ja) |
AU (1) | AU2014215529B2 (ja) |
BR (1) | BR112015018808A8 (ja) |
DE (1) | DE202014010926U1 (ja) |
WO (1) | WO2014123856A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901804B2 (en) | 2017-12-15 | 2021-01-26 | Fujitsu Limited | Apparatus and method to select services for executing a user program based on a code pattern included therein |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2504122A (en) * | 2012-07-19 | 2014-01-22 | Ibm | Locating software units of a software module to facilitate software refactoring |
US9116780B2 (en) * | 2013-02-06 | 2015-08-25 | Google Inc. | Method for modeling source code having code segments that lack source location |
US9753960B1 (en) * | 2013-03-20 | 2017-09-05 | Amdocs Software Systems Limited | System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria |
US9952843B2 (en) * | 2014-05-15 | 2018-04-24 | Nvidia Corporation | Partial program specialization at runtime |
CN107015905A (zh) * | 2016-06-02 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 查询源代码的方法和装置 |
US10628959B2 (en) * | 2017-05-03 | 2020-04-21 | International Business Machines Corporation | Location determination using street view images |
US10623444B2 (en) * | 2017-07-17 | 2020-04-14 | General Electric Company | Apparatus and method for analysis of binary targets to generate security policy |
CN113704384A (zh) * | 2021-08-27 | 2021-11-26 | 挂号网(杭州)科技有限公司 | 语音识别生成代码的方法及装置、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03240128A (ja) * | 1990-02-17 | 1991-10-25 | Mitsubishi Electric Corp | モジュール構成図自動生成システム |
JP2004530236A (ja) * | 2001-06-15 | 2004-09-30 | ベリシティ リミテッド | 検証言語の合成 |
JP2011113147A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03113571A (ja) * | 1989-09-27 | 1991-05-14 | Nippon Telegr & Teleph Corp <Ntt> | パターン認識方法 |
US5345380A (en) * | 1990-12-18 | 1994-09-06 | Bell Communications Research, Inc. | System and processes specifying customized customer telecommunication services using a graphical interface |
US5596703A (en) * | 1993-10-22 | 1997-01-21 | Lucent Technologies Inc. | Graphical display of relationships |
WO2000022517A1 (en) * | 1998-10-13 | 2000-04-20 | Codagen Technologies Corp. | Component-based source code generator |
GB2360370B (en) * | 2000-03-14 | 2002-04-24 | Inventec Corp | Software driver installation method |
US8015554B2 (en) * | 2006-03-24 | 2011-09-06 | International Business Machines Corporation | Source-to-source transformation for language dialects |
KR20090056525A (ko) * | 2007-11-30 | 2009-06-03 | 인하대학교 산학협력단 | 객체 분할을 이용한 객체지향프로그램의 동적 분할시스템및 그 방법 |
US8762962B2 (en) * | 2008-06-16 | 2014-06-24 | Beek Fund B.V. L.L.C. | Methods and apparatus for automatic translation of a computer program language code |
GB0907171D0 (en) * | 2009-04-27 | 2009-06-10 | Springsource Ltd | Method and apparatus for automatically generating source code files in a storage unit |
CN102110048B (zh) * | 2009-12-28 | 2014-07-09 | 国际商业机器公司 | 用于基于框架的应用程序的回归测试选择方法和装置 |
CN101872313B (zh) * | 2010-05-18 | 2012-12-12 | 重庆大学 | 开发功能可重组智能控件化虚拟仪器的方法 |
US20110302563A1 (en) * | 2010-06-08 | 2011-12-08 | Avaya Inc. | Program structure recovery using multiple languages |
WO2012057170A1 (ja) | 2010-10-27 | 2012-05-03 | 株式会社日立製作所 | ソースコード変換方法およびソースコード変換プログラム |
CN102156640A (zh) * | 2011-04-19 | 2011-08-17 | 山东浪潮金融信息系统有限公司 | 一种数据操作代码生成方法 |
US8516443B2 (en) * | 2011-05-26 | 2013-08-20 | Oracle International Corporation | Context-sensitive analysis framework using value flows |
US8695021B2 (en) * | 2011-08-31 | 2014-04-08 | Microsoft Corporation | Projecting native application programming interfaces of an operating system into other programming languages |
US20140214731A1 (en) * | 2012-11-13 | 2014-07-31 | MNB Technologies, Inc. | Method and System for Automated Computer Program Generation |
US9659085B2 (en) * | 2012-12-28 | 2017-05-23 | Microsoft Technology Licensing, Llc | Detecting anomalies in behavioral network with contextual side information |
US9116780B2 (en) * | 2013-02-06 | 2015-08-25 | Google Inc. | Method for modeling source code having code segments that lack source location |
CN110795080A (zh) * | 2019-10-21 | 2020-02-14 | 山东舜知信息科技有限公司 | 一种基于数据库注释的代码自动生成系统及构建方法 |
-
2013
- 2013-02-06 US US13/760,641 patent/US9116780B2/en active Active
-
2014
- 2014-02-04 JP JP2015556990A patent/JP5974191B2/ja active Active
- 2014-02-04 EP EP14708148.3A patent/EP2954408A1/en not_active Withdrawn
- 2014-02-04 CN CN201710239359.8A patent/CN107273109B/zh active Active
- 2014-02-04 DE DE202014010926.5U patent/DE202014010926U1/de not_active Expired - Lifetime
- 2014-02-04 CN CN201480007584.3A patent/CN104969188B/zh active Active
- 2014-02-04 BR BR112015018808A patent/BR112015018808A8/pt not_active Application Discontinuation
- 2014-02-04 WO PCT/US2014/014591 patent/WO2014123856A1/en active Application Filing
- 2014-02-04 AU AU2014215529A patent/AU2014215529B2/en active Active
- 2014-02-04 KR KR1020157024120A patent/KR101597599B1/ko active IP Right Grant
-
2015
- 2015-07-20 US US14/803,791 patent/US20150324194A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03240128A (ja) * | 1990-02-17 | 1991-10-25 | Mitsubishi Electric Corp | モジュール構成図自動生成システム |
JP2004530236A (ja) * | 2001-06-15 | 2004-09-30 | ベリシティ リミテッド | 検証言語の合成 |
JP2011113147A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム |
Non-Patent Citations (1)
Title |
---|
JPN6016000657; 今関雄人、高田眞吾: '"ソフトウェアの動的モデルに着目したラウンドトリップエンジニアリングの支援"' 情報処理学会研究報告 Vol.2007,No.97, 20070927, pp.47-54(2007-SE-157(7)), 社団法人情報処理学会 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901804B2 (en) | 2017-12-15 | 2021-01-26 | Fujitsu Limited | Apparatus and method to select services for executing a user program based on a code pattern included therein |
Also Published As
Publication number | Publication date |
---|---|
BR112015018808A8 (pt) | 2018-01-02 |
US20140223415A1 (en) | 2014-08-07 |
JP5974191B2 (ja) | 2016-08-23 |
AU2014215529B2 (en) | 2015-12-17 |
CN107273109B (zh) | 2020-11-10 |
AU2014215529A1 (en) | 2015-08-27 |
KR101597599B1 (ko) | 2016-02-25 |
BR112015018808A2 (pt) | 2017-07-18 |
DE202014010926U1 (de) | 2017-01-18 |
WO2014123856A1 (en) | 2014-08-14 |
CN104969188A (zh) | 2015-10-07 |
US20150324194A1 (en) | 2015-11-12 |
US9116780B2 (en) | 2015-08-25 |
CN107273109A (zh) | 2017-10-20 |
CN104969188B (zh) | 2017-05-17 |
KR20150106458A (ko) | 2015-09-21 |
EP2954408A1 (en) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5974191B2 (ja) | ソース位置を欠くコードセグメントを有するソースコードをモデル化する方法 | |
US9411556B1 (en) | Template dependency inlining | |
JP6563381B2 (ja) | 再計算ユーザインタフェースにおける変換の編さん | |
CN108139891B (zh) | 用于生成建议以纠正未定义标记错误的方法和系统 | |
JP5893038B2 (ja) | ユーザ定義型のコンパイル時境界検査 | |
US20140306964A1 (en) | Incremental compiling of a declarative program | |
TWI556170B (zh) | 將作業系統之原始應用程式介面投射至其它程式語言(二) | |
CN103718155A (zh) | 运行时系统 | |
US20140310681A1 (en) | Assisted creation of control event | |
Boshernitsan | Harmonia: A flexible framework for constructing interactive language-based programming tools | |
US20160062748A1 (en) | Embedded domain specific languages as first class code artifacts | |
CN110221825A (zh) | 一种在计算机上实现母语编程的方法 | |
JP5600301B2 (ja) | システム表現およびハンドリング技術 | |
Stoeckle et al. | A framework for visual notation exchange | |
Juhár et al. | A review of source code projections in integrated development environments | |
Gill | Building Web Applications with C# and. NET: A Complete Reference | |
Mohamed | Python for Deep Learning: A General Introduction | |
Gupta | Demography growth in China | |
Jackson II | Peephole pretty printing | |
Huu-Duc | Type-directed Compilation of ML Supporting Interoperable Memory Management System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160418 |
|
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: 20160517 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5974191 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |