WO2024252522A1 - プログラミング支援装置、プログラミング支援方法、およびプログラム - Google Patents
プログラミング支援装置、プログラミング支援方法、およびプログラム Download PDFInfo
- Publication number
- WO2024252522A1 WO2024252522A1 PCT/JP2023/021010 JP2023021010W WO2024252522A1 WO 2024252522 A1 WO2024252522 A1 WO 2024252522A1 JP 2023021010 W JP2023021010 W JP 2023021010W WO 2024252522 A1 WO2024252522 A1 WO 2024252522A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- source code
- visual
- programming
- abstract syntax
- syntax tree
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- One aspect of the present invention relates to a programming support device, a programming support method, and a program.
- Visual programming is an environment in which programs are created (coded) by combining visual objects. It is beginner-friendly as it does not require direct editing of text source code, and has been successful in programming education. In recent years, use cases have also emerged that enable practical application development and complex tool settings.
- This invention was made in response to the above-mentioned circumstances, and aims to provide technology to further enhance the support functions in a visual programming environment.
- a programming support device is a computer installed with a visual programming environment for coding by combining visual objects.
- the programming support device includes a display unit, a learning unit, a syntax analyzer, and a selection unit.
- the learning unit generates learned data that learns the correspondence between a plurality of objects used in the visual programming environment and the abstract syntax tree of the source code corresponding to each object.
- the syntax analyzer generates an abstract syntax tree of the given source code.
- the selection unit inputs the generated abstract syntax tree into the learned data, and based on the output, selects an object corresponding to the given source code and displays it on the display unit.
- FIG. 1 is a functional block diagram showing an example of a programming support device according to an embodiment.
- FIG. 2 is a flowchart showing an example of a processing procedure in the programming support device 100 shown in FIG.
- FIG. 3 is a flowchart showing an example of the processing procedure in step S1 of FIG.
- FIG. 4 is a diagram for explaining the process in the flowchart of FIG.
- FIG. 5 is a flowchart showing an example of the processing procedure in step S2 of FIG.
- FIG. 6 is a flowchart showing an example of the processing procedure in step S2 of FIG.
- FIG. 7 is a diagram for explaining the processing in the flowcharts of FIGS.
- FIG. 8 is a diagram for explaining the processing in the flowcharts of FIGS.
- FIG. 8 is a diagram for explaining the processing in the flowcharts of FIGS.
- FIG. 9 is a diagram for explaining the processing in the flowcharts of FIGS.
- FIG. 10 is a diagram for explaining the processing in the flowcharts of FIGS.
- FIG. 11 is a flowchart showing an example of the processing procedure in step S3 of FIG.
- FIG. 12 is a diagram illustrating a code object.
- Fig. 1 is a functional block diagram showing an example of a programming support device according to an embodiment.
- the programming support device 100 is a computer including a processor 11, a storage unit 12, and a display unit 13.
- An application that provides a visual programming environment is installed in the programming support device 100.
- a user 10 can create a product 14, such as a practical application or setting, by operating the visual programming application.
- the storage unit 12 stores a program 12a that enables the computer to function as a programming support device, as well as learning data 12b and learned data 12c.
- the learning data 12b is data that registers a large number of correspondences between multiple objects used in a visual programming environment and the abstract syntax trees of the source code corresponding to each object.
- the abstract syntax trees are generated in advance by a syntax analyzer (parser) that is loaded as a program into the processor 11.
- the processor 11 has a selection unit 11a, a syntax analysis unit (parser) 11b, and a learning unit 11c as processing functions related to the embodiment.
- the learning unit 11c repeatedly supplies the learning data 12b to a predetermined network (model) such as a deep neural network (DNN) to learn the network, thereby generating learned data 12c.
- the generated learned data 12c is stored in the storage unit 12.
- the syntax analysis unit 11b generates an abstract syntax tree for the given source code.
- the selection unit 11a inputs the abstract syntax tree generated by the syntax analysis unit 11b to the learned data 12c, and selects an object corresponding to the given source code based on the output of the selection unit 11a.
- the selected object is displayed in a GUI (Graphical User Interface) window of the visual programming environment on the display unit 13.
- GUI Graphic User Interface
- FIG. 2 is a flowchart showing an example of a processing procedure in the programming support device 100 shown in FIG. 1.
- the programming support device 100 learns a single visual object (step S1), and then learns examples in which visual objects are combined (step S2). Upon completion of the learning, the programming support device 100 generates combinations of visual objects from unknown source code (step S3).
- FIG. 3 is a flowchart showing an example of the processing procedure in step S1 of FIG. 3, the programming support device 100 selects a single visual object (step S11), and then generates source code from the single visual object (step S12). Next, the programming support device 100 inputs the obtained source code to the syntax analysis unit 11b to obtain AST (abstract syntax tree) information (step S13). Then, the programming support device 100 filters the AST information (step S14), and stores pairs of visual object information and AST information as learning data 12b (step S15). The above procedure is repeated until the selection of all visual objects is completed (YES in step S16).
- FIG. 4 is a diagram for explaining the process in the flowchart of FIG. 3.
- information about a single visual object is expressed in, for example, XML format. From this information, source code in the corresponding language is generated.
- JavaScript source code is shown as an example.
- AST information is obtained.
- Figure 4 shows AST information in JSON format. Since this AST information contains unnecessary information such as the position in the source code, the programming support device 100 deletes the unnecessary information through a filtering process (step S14). The programming support device 100 then associates the information of each visual object with the AST information after filtering, and generates learned data 12c.
- FIG. 5 is a flowchart showing an example of the processing procedure in step S2 of FIG. 5, the programming support device 100 selects a single visual object (step S21) and extracts examples (combinations of visual objects) including the selected visual object from the learning data 12b (step S22). Next, the programming support device 100 cuts out the example into a portion related to the selected visual object (step S23), and then inputs the entire example to the syntax analysis unit 11b to obtain AST information (step S24). Then, the programming support device 100 stores a pair of the entire example and the AST information as the learned data 12c (step S25). The above procedure is repeated until the selection of all visual objects is completed (YES in step S26).
- FIG. 6 is a flowchart showing an example of a processing procedure in step S2 of FIG.
- the programming support device 100 extracts the same type of learned data (step S31), and then compares the AST information of the extracted learned data group to estimate the variation part (step S32).
- the programming support device 100 deletes the AST information corresponding to the variation part and the visual object part to update the learned data 12c (step S33).
- the programming support device 100 combines the completely same combination of visual objects in the learned data into one to reduce the amount of data (step S34). The above procedure is repeated until the processing for all the learned data is completed (YES in step S35).
- the learning data 12b includes examples in which multiple visual objects are combined. Examples in which visual objects appear are extracted from this data, and source code is generated by cutting out only the relevant parts.
- this source code is provided to the syntax analysis unit 11b, it is converted into AST information as shown in Fig. 8. This AST information may be filtered.
- learned data 12c can be created by learning a pair of data combining multiple visual objects and AST information of the source code generated from the data based on the location and frequency of variable elements.
- FIG. 11 is a flowchart showing an example of the processing procedure in step S3 of FIG. 11, the programming support device 100 converts the unknown source code into AST information by the syntax analysis unit 11b (step S41). No filtering process is performed here.
- the programming support device 100 starts a search from the root of the obtained AST information (referred to as (1)) (step S42), and compares the subtree of the AST information (1) with the AST information (referred to as (2)) stored in the learned data (step S43).
- step S44 If the comparison result between the subtree and the learned data can be considered to be the same (YES in step S44), the programming support device 100 places the visual object stored in the learned data 12c that corresponds to the AST information (2) in the GUI window of the display unit 13 (step S45). On the other hand, if the answer is NO in step S44, the procedure of step S45 is skipped. The above procedure is repeated until the search of the entire tree of the AST information (1) is completed (YES in step S46).
- a code object is a visual object that has only a text entry field.
- Source code entered into the text field of this kind of code object becomes the source code generated from the corresponding visual object as is.
- the AST information (1) is not filtered. Therefore, a range of source code corresponding to a subtree of the AST information obtained from the code object is identified, and the source code is placed in the text entry field of the code object in a set state.
- a computer learns pairs of visual objects used in a visual programming environment and abstract syntax tree information obtained from source code generated by the visual objects, and generates learned data 12c.
- the abstract syntax tree of an unknown source code given to this learned data 12c is input, and a visual object corresponding to the given source code is selected by comparing it with the abstract syntax tree of the learned data 12c.
- This type of processing makes it possible to generate combinations of visual objects in a visual programming environment from raw source code.
- this invention is not limited to the above-described embodiment.
- this invention is not limited to the above-described embodiment as it is, and in the implementation stage, the components can be modified and embodied without departing from the gist of the invention.
- various inventions can be formed by appropriate combinations of multiple components disclosed in the above-described embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, components from different embodiments may be appropriately combined.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
この発明の一態様に係るプログラミング支援装置は、視覚的なオブジェクトを組み合わせてコーディングするビジュアルプログラミング環境をインストールされたコンピュータである。プログラミング支援装置は、表示部と、学習部と、構文解析器と、選択部とを具備する。学習部は、ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する。構文解析器は、与えられたソースコードの抽象構文木を生成する。選択部は、生成された抽象構文木を学習済みデータに入力し、その出力に基づいて、上記与えられたソースコードに対応するオブジェクトを選択して表示部に表示する。
Description
この発明の一態様は、プログラミング支援装置、プログラミング支援方法、およびプログラムに関する。
ビジュアルプログラミングは、視覚的なオブジェクトを組み合わせてプログラムを作成(コーディング)する環境である。テキストのソースコードを直接編集しなくてよいので初心者に優しく、プログラミング教育などで成果を上げている。近年では、実用的なアプリケーション開発や複雑なツール設定を実現するユースケースも登場している。
様々なビジュアルプログラミングツールが提供されているが、中には、オブジェクトの組み合わせを特定のプログラミング言語のソースコードに変換する機能を持つものがある(例えば特許文献1を参照)。テキストのソースコードを生成することができれば、例えば、ソースコードの差分をチェックするなど、既存の様々なツールや技術を適用しやすくなる。この種の技術は、実用的なアプリケーション開発や複雑なツール設定を実現するユースケースでは特に有用である。
"Blocky" [online], [令和5年5月30日検索], インターネット<URL:https://developers.google.com/blockly?hl=ja>
オブジェクトの組み合わせからソースコードを生成する技術がある。逆の発想で、ソースコードから視覚的なオブジェクトの組み合わせを生成することができれば、さらにユースケースが広がり得る。例えば、インターネット空間などにソースコードの形式で大量に存在する知識や情報を、ビジュアルプログラミング側に流通させることができるかもしれない。しかしながら現状では、ソースコードから視覚的なオブジェクトの組み合わせを生成する方法が確立されていない。
この発明は、上記事情に着目してなされたもので、ビジュアルプログラミング環境における支援機能をさらに充実させるための技術を提供しようとするものである。
この発明の一態様に係るプログラミング支援装置は、視覚的なオブジェクトを組み合わせてコーディングするビジュアルプログラミング環境をインストールされたコンピュータである。プログラミング支援装置は、表示部と、学習部と、構文解析器と、選択部とを具備する。学習部は、ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する。構文解析器は、与えられたソースコードの抽象構文木を生成する。選択部は、生成された抽象構文木を学習済みデータに入力し、その出力に基づいて、上記与えられたソースコードに対応するオブジェクトを選択して表示部に表示する。
この発明の一態様によれば、ビジュアルプログラミング環境における支援機能をさらに充実させることができる。
以下、図面を参照してこの発明に係わる実施形態を説明する。
図1は、実施形態に係わるプログラミング支援装置の一例を示す機能ブロック図である。図1において、プログラミング支援装置100は、プロセッサ11、記憶部12、および、表示部13を備えるコンピュータである。また、ビジュアルプログラミング環境を提供するアプリケーションが、プログラミング支援装置100にインストールされている。ユーザ10は、ビジュアルプログラミングアプリケーションを操作して、実用的なアプリケーションや設定などのプロダクト14を作成することができる。
図1は、実施形態に係わるプログラミング支援装置の一例を示す機能ブロック図である。図1において、プログラミング支援装置100は、プロセッサ11、記憶部12、および、表示部13を備えるコンピュータである。また、ビジュアルプログラミング環境を提供するアプリケーションが、プログラミング支援装置100にインストールされている。ユーザ10は、ビジュアルプログラミングアプリケーションを操作して、実用的なアプリケーションや設定などのプロダクト14を作成することができる。
記憶部12は、コンピュータにプログラミング支援装置としての機能を実現させるプログラム12aに加え、学習用データ12b、および学習済みデータ12cを記憶する。
学習用データ12bは、ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を多数、登録したデータである。ここで、抽象構文木は、プロセッサ11にプログラムとしてロードされた構文解析器(パーサ)により予め生成される。
プロセッサ11は、実施形態に係わる処理機能として選択部11a、構文解析部(パーサ)11b、および学習部11cを備える。
学習部11cは、DNN(Deep Neural Network)などの所定のネットワーク(モデル)に学習用データ12bを繰り返し与えて学習させ、学習済みデータ12cを生成する。生成された学習済みデータ12cは、記憶部12に記憶される。
構文解析部11bは、与えられたソースコードの抽象構文木を生成する。
選択部11aは、構文解析部11bにより生成された抽象構文木を学習済みデータ12cに入力し、その出力に基づいて、上記与えられたソースコードに対応するオブジェクトを選択する。選択されたオブジェクトは、表示部13の、ビジュアルプログラミング環境のGUI(Graphical User Interface)ウインドウに表示される。
構文解析部11bは、与えられたソースコードの抽象構文木を生成する。
選択部11aは、構文解析部11bにより生成された抽象構文木を学習済みデータ12cに入力し、その出力に基づいて、上記与えられたソースコードに対応するオブジェクトを選択する。選択されたオブジェクトは、表示部13の、ビジュアルプログラミング環境のGUI(Graphical User Interface)ウインドウに表示される。
図2は、図1に示されるプログラミング支援装置100における処理手順の一例を示すフローチャートである。図2において、プログラミング支援装置100は、単一の視覚的オブジェクトの学習を行い(ステップS1)、次いで、視覚的オブジェクトが組み合わされた事例を学習する(ステップS2)。学習が完了すると、プログラミング支援装置100は、未知のソースコードからの視覚的オブジェクトの組み合わせを生成する(ステップS3)。
図3は、図2のステップS1における処理手順の一例を示すフローチャートである。
図3において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS11)したのち、この単一の視覚的オブジェクトからソースコードを生成する(ステップS12)。次に、プログラミング支援装置100は、得られたソースコードを構文解析部11bに入力して、AST(抽象構文木)情報を取得する(ステップS13)。そして、プログラミング支援装置100は、AST情報をフィルタリングしたのち(ステップS14)、視覚的オブジェクトの情報とAST情報とのペアを学習用データ12bとして記憶する(ステップS15)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS16でYES)まで繰り返される。
図3において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS11)したのち、この単一の視覚的オブジェクトからソースコードを生成する(ステップS12)。次に、プログラミング支援装置100は、得られたソースコードを構文解析部11bに入力して、AST(抽象構文木)情報を取得する(ステップS13)。そして、プログラミング支援装置100は、AST情報をフィルタリングしたのち(ステップS14)、視覚的オブジェクトの情報とAST情報とのペアを学習用データ12bとして記憶する(ステップS15)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS16でYES)まで繰り返される。
図4は、図3のフローチャートにおける処理を説明するための図である。図4に示されるように、単一の視覚的オブジェクトの情報は例えばxml形式等で表現される。この情報から、対応する言語のソースコードが生成される。図4においてはjavascriptのソースコードを例として示す。
このソースコードを構文解析器にかけると、AST情報が得られる。図4においてはJSONフォーマットのAST情報を示す。このAST情報には、ソースコード上の位置といった不要な情報が含まれているので、プログラミング支援装置100は、フィルタリング処理(ステップS14)により余分な情報を削除する。そうして、プログラミング支援装置100は、それぞれの視覚的オブジェクトの情報とフィルタリング後のAST情報とを対応付け、学習済みデータ12cを生成する。
図5は、図2のステップS2における処理手順の一例を示すフローチャートである。
図5において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS21)し、学習用データ12bから選択した視覚的オブジェクトを含む事例(視覚的オブジェクトの組み合わせ)を抽出する(ステップS22)。次に、プログラミング支援装置100は、事例を選択した視覚的オブジェクトの関連部分に切り取り(ステップS23)、次いで、事例全体を構文解析部11bに入力してAST情報を取得する(ステップS24)。そして、プログラミング支援装置100は、事例全体とAST情報とのペアを学習済みデータ12cとして記憶する(ステップS25)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS26でYES)まで繰り返される。
図5において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS21)し、学習用データ12bから選択した視覚的オブジェクトを含む事例(視覚的オブジェクトの組み合わせ)を抽出する(ステップS22)。次に、プログラミング支援装置100は、事例を選択した視覚的オブジェクトの関連部分に切り取り(ステップS23)、次いで、事例全体を構文解析部11bに入力してAST情報を取得する(ステップS24)。そして、プログラミング支援装置100は、事例全体とAST情報とのペアを学習済みデータ12cとして記憶する(ステップS25)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS26でYES)まで繰り返される。
図6は、図2のステップS2における処理手順の一例を示すフローチャートである。
図6において、プログラミング支援装置100は、同種の学習済みデータを抽出したのち(ステップS31)、抽出された学習済みデータ群のAST情報を比較して変動部分を推定する(ステップS32)。次に、プログラミング支援装置100は、変動部分に該当するAST情報と、視覚的オブジェクトの部分を削除して学習済みデータ12cを更新する(ステップS33)。次に、プログラミング支援装置100は、学習済みデータのうち完全に同一の視覚的オブジェクトの組み合わせのものを一つにまとめ、データ量を削減する(ステップS34)。以上の手順は、全ての学習済みデータに対する処理が完了する(ステップS35でYES)まで繰り返される。
図6において、プログラミング支援装置100は、同種の学習済みデータを抽出したのち(ステップS31)、抽出された学習済みデータ群のAST情報を比較して変動部分を推定する(ステップS32)。次に、プログラミング支援装置100は、変動部分に該当するAST情報と、視覚的オブジェクトの部分を削除して学習済みデータ12cを更新する(ステップS33)。次に、プログラミング支援装置100は、学習済みデータのうち完全に同一の視覚的オブジェクトの組み合わせのものを一つにまとめ、データ量を削減する(ステップS34)。以上の手順は、全ての学習済みデータに対する処理が完了する(ステップS35でYES)まで繰り返される。
図7~図10は、図5、図6のフローチャートにおける処理を説明するための図である。
図7に示されるように、学習用データ12bは、複数の視覚的オブジェクトが組み合わされた事例を含む。このデータから視覚的オブジェクトが登場する事例を抽出し、関係部分のみを切り取ってソースコードが生成される。このソースコードを構文解析部11bに与えると、図8に示されるようなAST情報に変換される。このAST情報に対してフィルタリングを施しても良い。
図7に示されるように、学習用データ12bは、複数の視覚的オブジェクトが組み合わされた事例を含む。このデータから視覚的オブジェクトが登場する事例を抽出し、関係部分のみを切り取ってソースコードが生成される。このソースコードを構文解析部11bに与えると、図8に示されるようなAST情報に変換される。このAST情報に対してフィルタリングを施しても良い。
図9に示されるように、単一の視覚的オブジェクトから生成されたソースコードのAST情報に関し、Keyの一覧の一致とTypeに関してはValueの一致から、視覚的オブジェクトによって生成されたと推定される箇所を特定することができる。これより、図9の右のAST情報における、頻繁な変動要素を特定することができる。
図10に示されるように、学習用データ12bの規模がある程度大きければ、変動要素の箇所と頻度から、複数の視覚的オブジェクトが組み合わされたデータと、それから生成されたソースコードのAST情報のペアとして学習することで、学習済みデータ12cを作成することができる。
図11は、図2のステップS3における処理手順の一例を示すフローチャートである。
図11において、プログラミング支援装置100は、未知のソースコードを構文解析部11bによってAST情報に変換する(ステップS41)。ここで、フィルタリング処理は実施しない。次に、プログラミング支援装置100は、得られたAST情報((1)とする)のルートから探索を開始し(ステップS42)、AST情報(1)の部分木と、学習済みデータに記憶されたAST情報((2)とする)とを比較する(ステップS43)。
図11において、プログラミング支援装置100は、未知のソースコードを構文解析部11bによってAST情報に変換する(ステップS41)。ここで、フィルタリング処理は実施しない。次に、プログラミング支援装置100は、得られたAST情報((1)とする)のルートから探索を開始し(ステップS42)、AST情報(1)の部分木と、学習済みデータに記憶されたAST情報((2)とする)とを比較する(ステップS43)。
この比較において、部分木と学習済みデータの比較結果を同一とみなすことができるならば(ステップS44でYES)、プログラミング支援装置100は、AST情報(2)に対応する、学習済みデータ12cに記憶された視覚的オブジェクトを表示部13のGUIウインドウに配置する(ステップS45)。一方、ステップS44でNOであればステップS45の手順はスキップされる。以上の手順は、AST情報(1)のツリー全体の探索が完了する(ステップS46でYES)まで繰り返される。
ここで、学習済みデータの全てと同一とみなせない部分木が発見された場合には、特殊な視覚的オブジェクト(コードオブジェクトと称する)を配置する。
図12に示されるように、コードオブジェクトは、テキスト入力欄のみを持つ視覚的オブジェクトである。この種のコードオブジェクトのテキスト欄に入力されたソースコードは、そのまま該当の視覚的オブジェクトから生成されるソースコードとなる。AST情報(1)はフィルタリングされていない。そこで、コードオブジェクトから得たAST情報の部分木に相当するソースコードの範囲を特定し、そのソースコードをコードオブジェクトのテキスト入力欄に設定した状態で配置する。
図12に示されるように、コードオブジェクトは、テキスト入力欄のみを持つ視覚的オブジェクトである。この種のコードオブジェクトのテキスト欄に入力されたソースコードは、そのまま該当の視覚的オブジェクトから生成されるソースコードとなる。AST情報(1)はフィルタリングされていない。そこで、コードオブジェクトから得たAST情報の部分木に相当するソースコードの範囲を特定し、そのソースコードをコードオブジェクトのテキスト入力欄に設定した状態で配置する。
以上述べたように実施形態では、ビジュアルプログラミング環境で用いられる視覚的オブジェクトと、視覚的オブジェクトが生成したソースコードから得られた抽象構文木の情報とのペアをコンピュータに学習させ、学習済みデータ12cを生成する。この学習済みデータ12cに与えられた未知のソースコードの抽象構文木を入力し、学習済みデータ12cの抽象構文木と比較することで、与えられたソースコードに対応する視覚的オブジェクトを選択する。
このような処理により、生のソースコードから、ビジュアルプログラミング環境における視覚的オブジェクトの組み合わせを生成することが可能になる。これにより、例えば、インターネット空間などにソースコードの形式で大量に存在する知識や情報をビジュアルプログラミング側に流通することができるようになるなど、ビジュアルプログラミング環境の可能性を拡大することができる。従って、実施形態によれば、ビジュアルプログラミング環境における支援機能をさらに充実させることが可能になる。
なお、この発明は上記実施の形態に限定されるものではない。すなわち、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
10…ユーザ
11…プロセッサ
11a…選択部
11b…構文解析部
11c…学習部
12…記憶部
12a…プログラム
12b…学習用データ
12c…学習済みデータ
13…表示部
14…プロダクト
100…プログラミング支援装置。
11…プロセッサ
11a…選択部
11b…構文解析部
11c…学習部
12…記憶部
12a…プログラム
12b…学習用データ
12c…学習済みデータ
13…表示部
14…プロダクト
100…プログラミング支援装置。
Claims (5)
- 視覚的なオブジェクトを組み合わせてコーディングするビジュアルプログラミング環境をインストールされたプログラミング支援装置であって、
表示部と、
前記ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する学習部と、
与えられたソースコードの抽象構文木を生成する構文解析器と、
前記生成された抽象構文木を前記学習済みデータに入力し、その出力に基づいて、前記与えられたソースコードに対応するオブジェクトを選択して前記表示部に表示する選択部とを具備する、プログラミング支援装置。 - 前記学習部は、前記オブジェクトに対応するソースコードの抽象構文木から不要な情報を削除し、フィルタリングした抽象構文木と前記ソースコードのとの対応を学習させた学習済みデータを生成する、請求項1に記載のプログラミング支援装置。
- 前記選択部は、前記与えられたソースコードに対応するオブジェクトを選択できない場合に、コードオブジェクトを前記表示部に配置して補完する、請求項1に記載のプログラミング支援装置。
- 視覚的なオブジェクトを組み合わせてコーディングするビジュアルプログラミング環境をインストールされたコンピュータによるプログラミング支援方法であって、
前記コンピュータが、前記ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する過程と、
前記コンピュータが、与えられたソースコードの抽象構文木を生成する過程と、
前記コンピュータが、前記生成された抽象構文木を前記学習済みデータに入力し、その出力に基づいて、前記与えられたソースコードに対応するオブジェクトを選択する過程とを具備する、プログラミング支援方法。 - コンピュータを、請求項1乃至3のいずれか1項に記載のプログラミング支援装置として機能させる命令を含む、プログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (ja) | 2023-06-06 | 2023-06-06 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
| JP2025525494A JPWO2024252522A1 (ja) | 2023-06-06 | 2023-06-06 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (ja) | 2023-06-06 | 2023-06-06 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024252522A1 true WO2024252522A1 (ja) | 2024-12-12 |
Family
ID=93795475
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/021010 Ceased WO2024252522A1 (ja) | 2023-06-06 | 2023-06-06 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2024252522A1 (ja) |
| WO (1) | WO2024252522A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05341973A (ja) * | 1992-06-11 | 1993-12-24 | Matsushita Electric Ind Co Ltd | プログラム解析装置 |
| JPH07239787A (ja) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | 構文解析木からの情報抽出装置 |
| JP2016051367A (ja) * | 2014-09-01 | 2016-04-11 | 日本電気通信システム株式会社 | データ解析装置、データ解析方法、および、プログラム。 |
-
2023
- 2023-06-06 WO PCT/JP2023/021010 patent/WO2024252522A1/ja not_active Ceased
- 2023-06-06 JP JP2025525494A patent/JPWO2024252522A1/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05341973A (ja) * | 1992-06-11 | 1993-12-24 | Matsushita Electric Ind Co Ltd | プログラム解析装置 |
| JPH07239787A (ja) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | 構文解析木からの情報抽出装置 |
| JP2016051367A (ja) * | 2014-09-01 | 2016-04-11 | 日本電気通信システム株式会社 | データ解析装置、データ解析方法、および、プログラム。 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2024252522A1 (ja) | 2024-12-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Dibia | LIDA: A tool for automatic generation of grammar-agnostic visualizations and infographics using large language models | |
| US20250356218A1 (en) | Systems and methods for chain of thought meta-prompting for machine learning models | |
| JP7114959B2 (ja) | プログラム、情報処理方法、及び情報処理装置 | |
| US7975258B2 (en) | Testing environment for database server side logic | |
| WO2018079225A1 (ja) | 自動予測システム、自動予測方法および自動予測プログラム | |
| Do Viet et al. | Using large language models for bug localization and fixing | |
| Melegati et al. | HyMap: Eliciting hypotheses in early-stage software startups using cognitive mapping | |
| Dyck et al. | Enabling Model Recommenders for Command-Enabled Editors. | |
| WO2024252522A1 (ja) | プログラミング支援装置、プログラミング支援方法、およびプログラム | |
| JP5600826B1 (ja) | 非構造化データ処理システム、非構造化データ処理方法およびプログラム | |
| KR20160140041A (ko) | 경험지식 기반 가상훈련 시나리오 추출 및 평가 시스템 | |
| JP2023550987A (ja) | 自己学習分析ソリューションコア | |
| Mejias et al. | Model-driven user interface development: a systematic mapping | |
| JP5508933B2 (ja) | ソフトウェア仕様の証明支援装置、及び証明支援方法 | |
| JP7619473B2 (ja) | テスト装置、テスト方法、及びプログラム | |
| Bernard et al. | Tool support for refactoring manual tests | |
| Gerasimov et al. | A model-driven approach to design, generation, and deployment of gui component libraries | |
| WO2022249255A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
| Subramanya et al. | Promises and pitfalls: Evaluating generative AI tools in software engineering | |
| KR20110113295A (ko) | 통신 네트워크를 통한 온라인 문제 제공 방법 | |
| Lee et al. | Implementation of delivery application using a development method for mobile applications | |
| Lethrech et al. | A process definition for domain specific software development | |
| JP7799134B1 (ja) | システム、方法、プログラム | |
| Rodríguez-Gracia et al. | A collaborative testbed web tool for learning model transformation in software engineering education | |
| KR20150040483A (ko) | 웹 앱 개발 장치, 방법 및 컴퓨터로 판독 가능한 기록 매체 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23940627 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025525494 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |