WO2024252522A1 - Programming assistance device, programming assistance method, and program - Google Patents
Programming assistance device, programming assistance method, and program 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
この発明の一態様は、プログラミング支援装置、プログラミング支援方法、およびプログラムに関する。 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.
様々なビジュアルプログラミングツールが提供されているが、中には、オブジェクトの組み合わせを特定のプログラミング言語のソースコードに変換する機能を持つものがある(例えば特許文献1を参照)。テキストのソースコードを生成することができれば、例えば、ソースコードの差分をチェックするなど、既存の様々なツールや技術を適用しやすくなる。この種の技術は、実用的なアプリケーション開発や複雑なツール設定を実現するユースケースでは特に有用である。 Various visual programming tools are available, some of which have the ability to convert combinations of objects into source code in a specific programming language (see, for example, Patent Document 1). If text source code can be generated, it becomes easier to apply various existing tools and technologies, for example to check differences in source code. This type of technology is particularly useful in use cases that involve practical application development or complex tool settings.
オブジェクトの組み合わせからソースコードを生成する技術がある。逆の発想で、ソースコードから視覚的なオブジェクトの組み合わせを生成することができれば、さらにユースケースが広がり得る。例えば、インターネット空間などにソースコードの形式で大量に存在する知識や情報を、ビジュアルプログラミング側に流通させることができるかもしれない。しかしながら現状では、ソースコードから視覚的なオブジェクトの組み合わせを生成する方法が確立されていない。 There is technology that generates source code from combinations of objects. If it were possible to use the opposite approach and generate visual combinations of objects from source code, the use cases could be expanded even further. For example, it may be possible to distribute large amounts of knowledge and information that exists in source code format on the Internet and other spaces to the visual programming side. However, at present, there is no established method for generating visual combinations of objects from source code.
この発明は、上記事情に着目してなされたもので、ビジュアルプログラミング環境における支援機能をさらに充実させるための技術を提供しようとするものである。 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 according to one aspect of the present invention 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.
この発明の一態様によれば、ビジュアルプログラミング環境における支援機能をさらに充実させることができる。 According to one aspect of the present invention, it is possible to further enhance the support functions in a visual programming environment.
以下、図面を参照してこの発明に係わる実施形態を説明する。
図1は、実施形態に係わるプログラミング支援装置の一例を示す機能ブロック図である。図1において、プログラミング支援装置100は、プロセッサ11、記憶部12、および、表示部13を備えるコンピュータである。また、ビジュアルプログラミング環境を提供するアプリケーションが、プログラミング支援装置100にインストールされている。ユーザ10は、ビジュアルプログラミングアプリケーションを操作して、実用的なアプリケーションや設定などのプロダクト14を作成することができる。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
Fig. 1 is a functional block diagram showing an example of a programming support device according to an embodiment. In Fig. 1, the
記憶部12は、コンピュータにプログラミング支援装置としての機能を実現させるプログラム12aに加え、学習用データ12b、および学習済みデータ12cを記憶する。
The
学習用データ12bは、ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を多数、登録したデータである。ここで、抽象構文木は、プロセッサ11にプログラムとしてロードされた構文解析器(パーサ)により予め生成される。
The
プロセッサ11は、実施形態に係わる処理機能として選択部11a、構文解析部(パーサ)11b、および学習部11cを備える。
The
学習部11cは、DNN(Deep Neural Network)などの所定のネットワーク(モデル)に学習用データ12bを繰り返し与えて学習させ、学習済みデータ12cを生成する。生成された学習済みデータ12cは、記憶部12に記憶される。
構文解析部11bは、与えられたソースコードの抽象構文木を生成する。
選択部11aは、構文解析部11bにより生成された抽象構文木を学習済みデータ12cに入力し、その出力に基づいて、上記与えられたソースコードに対応するオブジェクトを選択する。選択されたオブジェクトは、表示部13の、ビジュアルプログラミング環境のGUI(Graphical User Interface)ウインドウに表示される。
The
The
The
図2は、図1に示されるプログラミング支援装置100における処理手順の一例を示すフローチャートである。図2において、プログラミング支援装置100は、単一の視覚的オブジェクトの学習を行い(ステップS1)、次いで、視覚的オブジェクトが組み合わされた事例を学習する(ステップS2)。学習が完了すると、プログラミング支援装置100は、未知のソースコードからの視覚的オブジェクトの組み合わせを生成する(ステップS3)。
FIG. 2 is a flowchart showing an example of a processing procedure in the
図3は、図2のステップS1における処理手順の一例を示すフローチャートである。
図3において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS11)したのち、この単一の視覚的オブジェクトからソースコードを生成する(ステップS12)。次に、プログラミング支援装置100は、得られたソースコードを構文解析部11bに入力して、AST(抽象構文木)情報を取得する(ステップS13)。そして、プログラミング支援装置100は、AST情報をフィルタリングしたのち(ステップS14)、視覚的オブジェクトの情報とAST情報とのペアを学習用データ12bとして記憶する(ステップS15)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS16でYES)まで繰り返される。
FIG. 3 is a flowchart showing an example of the processing procedure in step S1 of FIG.
3, the
図4は、図3のフローチャートにおける処理を説明するための図である。図4に示されるように、単一の視覚的オブジェクトの情報は例えばxml形式等で表現される。この情報から、対応する言語のソースコードが生成される。図4においてはjavascriptのソースコードを例として示す。 FIG. 4 is a diagram for explaining the process in the flowchart of FIG. 3. As shown in FIG. 4, information about a single visual object is expressed in, for example, XML format. From this information, source code in the corresponding language is generated. In FIG. 4, JavaScript source code is shown as an example.
このソースコードを構文解析器にかけると、AST情報が得られる。図4においてはJSONフォーマットのAST情報を示す。このAST情報には、ソースコード上の位置といった不要な情報が含まれているので、プログラミング支援装置100は、フィルタリング処理(ステップS14)により余分な情報を削除する。そうして、プログラミング支援装置100は、それぞれの視覚的オブジェクトの情報とフィルタリング後のAST情報とを対応付け、学習済みデータ12cを生成する。
When this source code is run through a syntax analyzer, 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
図5は、図2のステップS2における処理手順の一例を示すフローチャートである。
図5において、プログラミング支援装置100は、単一の視覚的オブジェクトを選択(ステップS21)し、学習用データ12bから選択した視覚的オブジェクトを含む事例(視覚的オブジェクトの組み合わせ)を抽出する(ステップS22)。次に、プログラミング支援装置100は、事例を選択した視覚的オブジェクトの関連部分に切り取り(ステップS23)、次いで、事例全体を構文解析部11bに入力してAST情報を取得する(ステップS24)。そして、プログラミング支援装置100は、事例全体とAST情報とのペアを学習済みデータ12cとして記憶する(ステップS25)。以上の手順は、全ての視覚的オブジェクトの選択が完了する(ステップS26でYES)まで繰り返される。
FIG. 5 is a flowchart showing an example of the processing procedure in step S2 of FIG.
5, the
図6は、図2のステップS2における処理手順の一例を示すフローチャートである。
図6において、プログラミング支援装置100は、同種の学習済みデータを抽出したのち(ステップS31)、抽出された学習済みデータ群のAST情報を比較して変動部分を推定する(ステップS32)。次に、プログラミング支援装置100は、変動部分に該当するAST情報と、視覚的オブジェクトの部分を削除して学習済みデータ12cを更新する(ステップS33)。次に、プログラミング支援装置100は、学習済みデータのうち完全に同一の視覚的オブジェクトの組み合わせのものを一つにまとめ、データ量を削減する(ステップS34)。以上の手順は、全ての学習済みデータに対する処理が完了する(ステップS35でYES)まで繰り返される。
FIG. 6 is a flowchart showing an example of a processing procedure in step S2 of FIG.
In Fig. 6, the
図7~図10は、図5、図6のフローチャートにおける処理を説明するための図である。
図7に示されるように、学習用データ12bは、複数の視覚的オブジェクトが組み合わされた事例を含む。このデータから視覚的オブジェクトが登場する事例を抽出し、関係部分のみを切り取ってソースコードが生成される。このソースコードを構文解析部11bに与えると、図8に示されるようなAST情報に変換される。このAST情報に対してフィルタリングを施しても良い。
7 to 10 are diagrams for explaining the processes in the flowcharts of FIGS.
As shown in Fig. 7, the learning
図9に示されるように、単一の視覚的オブジェクトから生成されたソースコードのAST情報に関し、Keyの一覧の一致とTypeに関してはValueの一致から、視覚的オブジェクトによって生成されたと推定される箇所を特定することができる。これより、図9の右のAST情報における、頻繁な変動要素を特定することができる。 As shown in Figure 9, for the AST information of source code generated from a single visual object, it is possible to identify the parts that are presumed to have been generated by a visual object based on the match of the list of keys and the match of the values for types. This makes it possible to identify frequently changing elements in the AST information on the right of Figure 9.
図10に示されるように、学習用データ12bの規模がある程度大きければ、変動要素の箇所と頻度から、複数の視覚的オブジェクトが組み合わされたデータと、それから生成されたソースコードのAST情報のペアとして学習することで、学習済みデータ12cを作成することができる。
As shown in Figure 10, if the scale of the learning
図11は、図2のステップS3における処理手順の一例を示すフローチャートである。
図11において、プログラミング支援装置100は、未知のソースコードを構文解析部11bによってAST情報に変換する(ステップS41)。ここで、フィルタリング処理は実施しない。次に、プログラミング支援装置100は、得られたAST情報((1)とする)のルートから探索を開始し(ステップS42)、AST情報(1)の部分木と、学習済みデータに記憶されたAST情報((2)とする)とを比較する(ステップS43)。
FIG. 11 is a flowchart showing an example of the processing procedure in step S3 of FIG.
11, the
この比較において、部分木と学習済みデータの比較結果を同一とみなすことができるならば(ステップS44でYES)、プログラミング支援装置100は、AST情報(2)に対応する、学習済みデータ12cに記憶された視覚的オブジェクトを表示部13のGUIウインドウに配置する(ステップS45)。一方、ステップS44でNOであればステップS45の手順はスキップされる。以上の手順は、AST情報(1)のツリー全体の探索が完了する(ステップS46でYES)まで繰り返される。
If the comparison result between the subtree and the learned data can be considered to be the same (YES in step S44), the
ここで、学習済みデータの全てと同一とみなせない部分木が発見された場合には、特殊な視覚的オブジェクト(コードオブジェクトと称する)を配置する。
図12に示されるように、コードオブジェクトは、テキスト入力欄のみを持つ視覚的オブジェクトである。この種のコードオブジェクトのテキスト欄に入力されたソースコードは、そのまま該当の視覚的オブジェクトから生成されるソースコードとなる。AST情報(1)はフィルタリングされていない。そこで、コードオブジェクトから得たAST情報の部分木に相当するソースコードの範囲を特定し、そのソースコードをコードオブジェクトのテキスト入力欄に設定した状態で配置する。
If a subtree is found that cannot be considered identical to all of the learned data, a special visual object (called a code object) is placed.
As shown in Fig. 12, 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.
以上述べたように実施形態では、ビジュアルプログラミング環境で用いられる視覚的オブジェクトと、視覚的オブジェクトが生成したソースコードから得られた抽象構文木の情報とのペアをコンピュータに学習させ、学習済みデータ12cを生成する。この学習済みデータ12cに与えられた未知のソースコードの抽象構文木を入力し、学習済みデータ12cの抽象構文木と比較することで、与えられたソースコードに対応する視覚的オブジェクトを選択する。
As described above, in the embodiment, 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
このような処理により、生のソースコードから、ビジュアルプログラミング環境における視覚的オブジェクトの組み合わせを生成することが可能になる。これにより、例えば、インターネット空間などにソースコードの形式で大量に存在する知識や情報をビジュアルプログラミング側に流通することができるようになるなど、ビジュアルプログラミング環境の可能性を拡大することができる。従って、実施形態によれば、ビジュアルプログラミング環境における支援機能をさらに充実させることが可能になる。 This type of processing makes it possible to generate combinations of visual objects in a visual programming environment from raw source code. This expands the possibilities of the visual programming environment, for example by making it possible to distribute knowledge and information that exists in large quantities in the form of source code on the Internet and other spaces to the visual programming side. Therefore, according to the embodiment, it becomes possible to further enhance the support functions in the visual programming environment.
なお、この発明は上記実施の形態に限定されるものではない。すなわち、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。 Note that this invention is not limited to the above-described embodiment. In other words, 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. Furthermore, 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.
10…ユーザ
11…プロセッサ
11a…選択部
11b…構文解析部
11c…学習部
12…記憶部
12a…プログラム
12b…学習用データ
12c…学習済みデータ
13…表示部
14…プロダクト
100…プログラミング支援装置。
REFERENCE SIGNS
Claims (5)
表示部と、
前記ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する学習部と、
与えられたソースコードの抽象構文木を生成する構文解析器と、
前記生成された抽象構文木を前記学習済みデータに入力し、その出力に基づいて、前記与えられたソースコードに対応するオブジェクトを選択して前記表示部に表示する選択部とを具備する、プログラミング支援装置。 A programming support device having installed therein a visual programming environment for coding by combining visual objects,
A display unit;
a learning unit that generates learned data by learning correspondence between a plurality of objects used in the visual programming environment and an abstract syntax tree of a source code corresponding to each of the objects;
a parser that generates an abstract syntax tree for a given source code;
a selection unit that 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.
前記コンピュータが、前記ビジュアルプログラミング環境で用いられる複数のオブジェクトと、それぞれのオブジェクトに対応するソースコードの抽象構文木との対応を学習させた学習済みデータを生成する過程と、
前記コンピュータが、与えられたソースコードの抽象構文木を生成する過程と、
前記コンピュータが、前記生成された抽象構文木を前記学習済みデータに入力し、その出力に基づいて、前記与えられたソースコードに対応するオブジェクトを選択する過程とを具備する、プログラミング支援方法。 A programming support method using a computer having installed thereon a visual programming environment for combining and coding visual objects, comprising the steps of:
generating learned data by the computer that has learned correspondence between a plurality of objects used in the visual programming environment and an abstract syntax tree of source code corresponding to each of the objects;
generating an abstract syntax tree for a given source code;
and a step of inputting the generated abstract syntax tree into the learned data by the computer, and selecting an object corresponding to the given source code based on the output.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (en) | 2023-06-06 | 2023-06-06 | Programming assistance device, programming assistance method, and program |
| JP2025525494A JPWO2024252522A1 (en) | 2023-06-06 | 2023-06-06 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (en) | 2023-06-06 | 2023-06-06 | Programming assistance device, programming assistance method, and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024252522A1 true WO2024252522A1 (en) | 2024-12-12 |
Family
ID=93795475
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/021010 Ceased WO2024252522A1 (en) | 2023-06-06 | 2023-06-06 | Programming assistance device, programming assistance method, and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2024252522A1 (en) |
| WO (1) | WO2024252522A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05341973A (en) * | 1992-06-11 | 1993-12-24 | Matsushita Electric Ind Co Ltd | Program analysis device |
| JPH07239787A (en) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | Information Extraction Device from Parse Tree |
| JP2016051367A (en) * | 2014-09-01 | 2016-04-11 | 日本電気通信システム株式会社 | Data analysis apparatus, data analysis method, and program. |
-
2023
- 2023-06-06 WO PCT/JP2023/021010 patent/WO2024252522A1/en 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 (en) * | 1992-06-11 | 1993-12-24 | Matsushita Electric Ind Co Ltd | Program analysis device |
| JPH07239787A (en) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | Information Extraction Device from Parse Tree |
| JP2016051367A (en) * | 2014-09-01 | 2016-04-11 | 日本電気通信システム株式会社 | Data analysis apparatus, data analysis method, and program. |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2024252522A1 (en) | 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 (en) | Program, information processing method, and information processing apparatus | |
| US7975258B2 (en) | Testing environment for database server side logic | |
| WO2018079225A1 (en) | Automatic prediction system, automatic prediction method and automatic prediction program | |
| 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 (en) | Programming assistance device, programming assistance method, and program | |
| JP5600826B1 (en) | Unstructured data processing system, unstructured data processing method and program | |
| KR20160140041A (en) | Virtual Training Scenario Generation and Evaluation System based on Experience Knowledge | |
| JP2023550987A (en) | Self-learning analysis solution core | |
| Mejias et al. | Model-driven user interface development: a systematic mapping | |
| JP5508933B2 (en) | Software specification proof support apparatus and proof support method | |
| JP7619473B2 (en) | Test device, test method, and program | |
| 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 (en) | Program generation device, program generation method, and program | |
| Subramanya et al. | Promises and pitfalls: Evaluating generative AI tools in software engineering | |
| KR20110113295A (en) | How to Provide Online Problems Over a Communication Network | |
| 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 (en) | System, method, and program | |
| Rodríguez-Gracia et al. | A collaborative testbed web tool for learning model transformation in software engineering education | |
| KR20150040483A (en) | Apparatus, method and computer-readable medium for development web application |
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 |