WO2024252522A1 - Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme - Google Patents
Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme 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
Un dispositif d'aide à la programmation selon un aspect de la présente invention est un ordinateur sur lequel est installé un environnement de programmation visuelle pour un codage par combinaison d'objets visuels. Le dispositif d'aide à la programmation est équipé d'une unité d'affichage, d'une unité d'apprentissage, d'un analyseur syntaxique et d'une unité de sélection. L'unité d'apprentissage génère des données apprises représentant des correspondances apprises entre une pluralité d'objets utilisés dans l'environnement de programmation visuelle et un arbre syntaxique abstrait de code source correspondant à chacun des objets. L'analyseur syntaxique génère un arbre syntaxique abstrait pour un code source donné. L'unité de sélection entre l'arbre syntaxique abstrait généré dans les données apprises et utilise la sortie de celui-ci comme base pour sélectionner et afficher, sur l'unité d'affichage, un objet correspondant au code source donné.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (fr) | 2023-06-06 | 2023-06-06 | Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme |
| JP2025525494A JPWO2024252522A1 (fr) | 2023-06-06 | 2023-06-06 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/021010 WO2024252522A1 (fr) | 2023-06-06 | 2023-06-06 | Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024252522A1 true WO2024252522A1 (fr) | 2024-12-12 |
Family
ID=93795475
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/021010 Ceased WO2024252522A1 (fr) | 2023-06-06 | 2023-06-06 | Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2024252522A1 (fr) |
| WO (1) | WO2024252522A1 (fr) |
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/fr 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 (fr) | 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 (fr) | Système, procédé et programme de prédiction automatique | |
| 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 (fr) | Dispositif d'aide à la programmation, procédé d'aide à la programmation et programme | |
| 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 (fr) | Dispositif de génération de programme, procédé de génération de programme, et programme | |
| 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 |