CN109471622A - 一种程序编辑方法和装置 - Google Patents
一种程序编辑方法和装置 Download PDFInfo
- Publication number
- CN109471622A CN109471622A CN201811299990.8A CN201811299990A CN109471622A CN 109471622 A CN109471622 A CN 109471622A CN 201811299990 A CN201811299990 A CN 201811299990A CN 109471622 A CN109471622 A CN 109471622A
- Authority
- CN
- China
- Prior art keywords
- code
- source code
- parsing
- programming
- programming language
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序编辑方法、装置、电子设备和计算机可读存储介质。该方法包括:接收输入的指定编程语言的源代码;响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码;根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示;响应于对图形化代码块的选取请求,执行解析代码,得到执行结果;根据图形化编程工具展示执行结果。通过本发明的技术方案,将指定编程语言与图形化编程工具相结合,实现源代码的显示,有利于学习者克服因不熟悉编程语言带来的编程学习的困难,也有利于学习者对编程中的功能逻辑的学习;同时源代码图形化的展示也给学习的过程带来乐趣,增强用户的使用体验。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种程序编辑方法、装置、电子设备和计算机可读存储介质。
背景技术
互联网时代的到来,计算机相关知识和技术的掌握已经慢慢成为人们的基本知识储备和技能,例如编程。现有技术中,人们可以通过编程学习系统进行编程的学习和练习。但是对于初学者或者年龄较小的学习者来说,要学习编程,编程语言是学习编程的一大障碍,另外编程的学习过程中利用编程语言实现不同逻辑下的功能也是另一障碍,给编程学习带来困难。因此,急需一种程序编辑方案,便于编程的学习。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序编辑方法、装置、电子设备和计算机可读存储介质。
根据本发明的一个方面,提供了一种程序编辑方法,其特征在于,所述方法包括:
接收输入的指定编程语言的源代码;
响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
根据图形化编程工具展示所述执行结果。
可选地,所述方法还包括:
判断所述解析代码中是否包括预设功能逻辑;
若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;
接收所述服务器返回的对应数据。
可选地,所述方法还包括:
判断所述解析代码中是否有返回值,若判断为是,获取所述解析代码中的返回值。
可选地,所述方法进一步包括:
根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
可选地,利用页面JavaScript程序执行如前所述的方法。
可选地,所述指定编程语言包括如下一种或多种:
Python语言;
C语言;
C++语言;
Java语言。
可选地,
所述图形化编程工具包括Scratch编程工具。
可选地,在所述接收输入的指定编程语言的源代码之前,所述方法还包括:
响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;
接收所述服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
根据本发明的另一方面,提供了一种程序编辑装置,所述装置包括:
接收单元,适于接收输入的指定编程语言的源代码;
解析单元,适于响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
生成单元,适于根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
执行单元,适于响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
展示单元,适于根据图形化编程工具展示所述执行结果。
可选地,所述装置还包括:
第一判断单元,适于判断所述解析代码中是否包括预设功能逻辑;若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;接收所述服务器返回的对应数据。
可选地,所述装置还包括:
第二判断单元,适于判断所述解析代码中是否有返回值,若判断为是,获取所述解析代码中的返回值。
可选地,
所述生成单元,适于根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
可选地,前述的装置中的各单元基于页面JavaScript程序实现。
可选地,所述指定编程语言包括如下一种或多种:
Python语言;
C语言;
C++语言;
Java语言。
可选地,
所述图形化编程工具包括Scratch编程工具。
可选地,所述装置还包括:
加载单元,适于在所述接收单元接收输入的指定编程语言的源代码之前,响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;接收所述服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
根据本发明的又一方面,提供了一种电子设备,所述电子设备包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据前述的方法。
根据本发明的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现前述的方法。
根据本发明的技术方案,接收输入的指定编程语言的源代码;响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码;根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示;响应于对图形化代码块的选取请求,执行解析代码,得到执行结果;根据图形化编程工具展示执行结果。通过本发明的技术方案,将指定编程语言与图形化编程工具相结合,实现源代码的显示,有利于学习者克服因不熟悉编程语言带来的编程学习的困难,也有利于学习者对编程中的功能逻辑的学习;同时源代码图形化的展示也给学习的过程带来乐趣,增强用户的使用体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的程序编辑方法的流程示意图;
图2示出了根据本发明另一个实施例的程序编辑方法的流程示意图;
图3示出了根据本发明一个实施例的程序编辑装置的结构示意图;
图4示出了根据本发明一个实施例的电子设备的结构示意图;
图5示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的程序编辑方法的流程示意图。如图1所示,该方法包括:
步骤S110,接收输入的指定编程语言的源代码。
本实施例中,源代码的输入可以是通过编辑器输入,或者,是用户从指定文件中导入。
步骤S120,响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码。
当获取到源代码后,为了实现源代码的图形化展示,可以通过发送执行请求的方式进行,例如,在显示界面中提供一代码执行控件,当触发该控件时,相当于用户触发了源代码的执行请求,当接收到该源代码的执行请求时,响应于该执行请求,对源代码进行解析。考虑到这里的源代码是基于某一编程语言编辑的,所以在进行解析时,根据该编程语言的编程标准进行解析,例如,使用Python语言进行编辑的源代码,则依据Python语言的编程标准对该源代码进行解析。解析后的源代码则是解析代码。
步骤S130,根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示。
在本实施例中,利用图形化编辑工具,将解析代码生成与源代码对应的图形化代码块进行展示。在这里,每一行代码可以对应一个图形化代码块,以便学习者对该行代码进行理解和学习。
优选地,在进行图形化代码块展示时,源代码与图形化代码块一一对应地进行展示,便于学习者将图形化代码块与源代码对应起来,进一步利于学习。
步骤S140,响应于对图形化代码块的选取请求,执行解析代码,得到执行结果。
每行代码对应相应的运行执行结果。那么当用户想要知道指定代码的执行结果时,可以点击相应的图形化代码块,选取图形化代码块,以便执行对应的解析代码,得到执行结果。
步骤S150,根据图形化编程工具展示执行结果。
本实施例中,用户可以通过指定网站进行编程学习,则源代码对应的图形化代码块和执行结果可以在网站对应的网页窗口中进行展示。
可见,通过本实施例,将指定编程语言与图形化编程工具相结合,实现源代码的显示,有利于学习者克服因不熟悉编程语言带来的编程学习的困难,也有利于学习者对编程中的功能逻辑的学习;同时源代码图形化的展示也给学习的过程带来乐趣,增强用户的使用体验。
在本发明的一个实施例中,图1所示的方法还包括:判断解析代码中是否包括预设功能逻辑;若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;接收服务器返回的对应数据。
考虑到在接收到的源代码中可能会涉及到服务器支持的功能,那么需要与服务器进行交互,以获取相应的数据。在本实施例中,预设功能逻辑,判断解析代码中是否存在预设功能逻辑,如果存在,则执行包括预设功能逻辑的解析代码,与服务器进行交互,获取对应数据。
在本发明的一个实施例中,图1所示的方法还包括:判断解析代码中是否有返回值,若判断为是,获取解析代码中的返回值。
考虑到源代码中会存在返回值,在本实施例中,则判断解析代码中是否有返回值,若存在,获取该返回值,以便对返回值进行显示。例如,C语言中的返回值可以用来判断函数被调用后的运行处理结果,函数细致的返回值可以判断出在被调用中的走向流程,那么获取该返回值,有利于学习者判断函数被调用后的运行处理结果的正确与否,进而利于学习者对编程的练习。
进一步地,在上述实施例基础上,图1所示的方法进一步包括:根据获取的返回值和图形化编程工具生成与返回值对应的图形化代码块并展示。
在本实施例中,利用图形化编程工具实现返回值的图形化代码块的显示,进一步利于学习者对返回值编程的学习。
在本发明的一个实施例中,图1所示的方法以及上述各实施例中的方法可以利用页面JavaScript程序执行。
也就是说,页面JavaScript程序接收输入的指定编程语言的源代码;页面JavaScript程序响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码;页面JavaScript程序根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示;页面JavaScript程序响应于对图形化代码块的选取请求,执行解析代码,页面JavaScript程序得到执行结果;根据图形化编程工具展示执行结果。
在本实施例中,通过页面JavaScript程序将指定编程语言与图形化编程工具相结合,实现程序的编辑。
进一步地,页面JavaScript程序判断解析代码中是否包括预设功能逻辑;若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;接收服务器返回的对应数据。
进一步地,页面JavaScript程序判断解析代码中是否有返回值,若判断为是,获取解析代码中的返回值,以及根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
在本实施例中,将指定编程语言转化为JavaScript,再通过JavaScript程序请求服务端。以及通过JavaScript程序与图形化编程工具进行交互,实现源代码的图形化展示。
在本发明的一个实施例中,图1所示的方法中的指定编程语言包括如下一种或多种:Python语言;C语言;C++语言;Java语言。
在本发明的一个实施例中,图1所示的图形化编程工具包括Scratch编程工具。
这里的Scratch编程工具是一款少儿编程工具。其特点是:使用者可以不认识英文单词,也可以不会使用键盘。构成程序的命令和参数通过积木形状的模块来实现,用鼠标拖动模块到程序编辑栏就可以。
通过本技术方案,可以实现一下一种或多种结合:Python语言和Scratch的结合;C语言和Scratch的结合;C++语言和Scratch的结合;Java语言和Scratch的结合。
在本发明的一个实施例中,在图1所示的步骤S110的接收输入的指定编程语言的源代码之前,图1所示的方法还包括:响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;接收服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
在本实施例中,源代码的输入是通过编辑器输入的。当用户访问指定的编程网站时,浏览器会与服务器进行交互,获取加载编辑器所需的环境文件,搭建指定编程语言的编码环境。以便用户在编辑器中键入指定编程语言的源代码。
图2示出了根据本发明另一个实施例的程序编辑方法的流程示意图,以Python语言为例对本技术方案进行说明。如图2所示,在客户端侧,用户打开浏览器输入网址后,浏览器接收到编程网站的访问请求;响应于访问请求,浏览器与服务端侧的服务器进行交互,发送加载编辑器所需环境文件的资源的获取请求,接收到服务器返回的加载编辑器所需环境文件的资源后,构建Python编码环境,加载编码器;用户键入Python代码并点击运行;页面JavaScript程序会获取用户键入的Python代码,识别代码,按照Python语法进行解析;当涉及需要服务器支持的功能时,即判断是否需要请求服务器,若判断为是,页面JavaScript会向服务器发送请求,接收服务器返回的相应数据;页面JavaScript会调用Scratch,与Scratch交互生成与源代码对应烦人Scratch代码块;用户在点击Scratch代码方块时,Scratch与页面JavaScript交互,页面JavaScript运行解析完成的Python代码;判断是否有返回值,如果用户Python代码中有Python返回值,页面JavaScript会获取Python返回值;页面JavaScript与Scratch交互,将获取到的Python返回值传递给Scratch,生成新的方块,并将返回值注入到方块中;当通过Scratch执行代码时,利用Scratch将执行结果反馈给浏览器,将执行结果反馈给用户。
图3示出了根据本发明一个实施例的程序编辑装置的结构示意图。如图3所示,该程序编辑装置300包括:
接收单元310,适于接收输入的指定编程语言的源代码。
本实施例中,源代码的输入可以是通过编辑器输入,或者,是用户从指定文件中导入。
解析单元320,适于响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码。
当获取到源代码后,为了实现源代码的图形化展示,可以通过发送执行请求的方式进行,例如,在显示界面中提供一代码执行控件,当触发该控件时,相当于用户触发了源代码的执行请求,当接收到该源代码的执行请求时,响应于该执行请求,对源代码进行解析。考虑到这里的源代码是基于某一编程语言编辑的,所以在进行解析时,根据该编程语言的编程标准进行解析,例如,使用Python语言进行编辑的源代码,则依据Python语言的编程标准对该源代码进行解析。解析后的源代码则是解析代码。
生成单元330,适于根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示。
在本实施例中,利用图形化编辑工具,将解析代码生成与源代码对应的图形化代码块进行展示。在这里,每一行代码可以对应一个图形化代码块,以便学习者对该行代码进行理解和学习。
优选地,在进行图形化代码块展示时,源代码与图形化代码块一一对应地进行展示,便于学习者将图形化代码块与源代码对应起来,进一步利于学习。
执行单元340,适于响应于对图形化代码块的选取请求,执行解析代码,得到执行结果。
每行代码对应相应的运行执行结果。那么当用户想要知道指定代码的执行结果时,可以点击相应的图形化代码块,选取图形化代码块,以便执行对应的解析代码,得到执行结果。
展示单元350,适于根据图形化编程工具展示执行结果。
本实施例中,用户可以通过指定网站进行编程学习,则源代码对应的图形化代码块和执行结果可以在网站对应的网页窗口中进行展示。
可见,通过本实施例,将指定编程语言与图形化编程工具相结合,实现源代码的显示,有利于学习者克服因不熟悉编程语言带来的编程学习的困难,也有利于学习者对编程中的功能逻辑的学习;同时源代码图形化的展示也给学习的过程带来乐趣,增强用户的使用体验。
在本发明的一个实施例中,图3所示的装置还包括:
第一判断单元,适于判断解析代码中是否包括预设功能逻辑;若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;接收服务器返回的对应数据。
考虑到在接收到的源代码中可能会涉及到服务器支持的功能,那么需要与服务器进行交互,以获取相应的数据。在本实施例中,预设功能逻辑,判断解析代码中是否存在预设功能逻辑,如果存在,则执行包括预设功能逻辑的解析代码,与服务器进行交互,获取对应数据。
在本发明的一个实施例中,图3所示的装置还包括:
第二判断单元,适于判断解析代码中是否有返回值,若判断为是,获取解析代码中的返回值。
考虑到源代码中会存在返回值,在本实施例中,则判断解析代码中是否有返回值,若存在,获取该返回值,以便对返回值进行显示。例如,C语言中的返回值可以用来判断函数被调用后的运行处理结果,函数细致的返回值可以判断出在被调用中的走向流程,那么获取该返回值,有利于学习者判断函数被调用后的运行处理结果的正确与否,进而利于学习者对编程的练习。
进一步地,在上述实施例基础上,生成单元330,适于根据获取的返回值和图形化编程工具生成与返回值对应的图形化代码块并展示。
在本实施例中,利用图形化编程工具实现返回值的图形化代码块的显示,进一步利于学习者对返回值编程的学习。
在本发明的一个实施例中,图3所示以及上述各实施例的装置中的各单元基于页面JavaScript程序实现。
也就是说,上述的接收单元310、解析单元320、生成单元330、执行单元340、展示单元350是基于页面JavaScript程序实现。在本实施例中,通过页面JavaScript程序将指定编程语言与图形化编程工具相结合,实现程序的编辑。
以及,第一判断单元、第二判断单元也是基于页面JavaScript程序实现。在本实施例中,将指定编程语言转化为JavaScript,再通过JavaScript程序请求服务端。以及通过JavaScript程序与图形化编程工具进行交互,实现源代码的图形化展示。
在本发明的一个实施例中,上述的指定编程语言包括如下一种或多种:Python语言;C语言;C++语言;Java语言。
在本发明的一个实施例中,上述的图形化编程工具包括Scratch编程工具。
这里的Scratch编程工具是一款少儿编程工具。其特点是:使用者可以不认识英文单词,也可以不会使用键盘。构成程序的命令和参数通过积木形状的模块来实现,用鼠标拖动模块到程序编辑栏就可以。
通过本技术方案,可以实现一下一种或多种结合:Python语言和Scratch的结合;C语言和Scratch的结合;C++语言和Scratch的结合;Java语言和Scratch的结合。
在本发明的一个实施例中,图3所示的装置还包括:
加载单元,适于在接收单元310接收输入的指定编程语言的源代码之前,响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;接收服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
在本实施例中,源代码的输入是通过编辑器输入的。当用户访问指定的编程网站时,浏览器会与服务器进行交互,获取加载编辑器所需的环境文件,搭建指定编程语言的编码环境。以便用户在编辑器中键入指定编程语言的源代码。
综上所述,根据本发明的技术方案,接收输入的指定编程语言的源代码;响应于对源代码的执行请求,根据指定编程语言的编程标准对源代码进行解析,得到解析代码;根据解析代码和图形化编程工具生成与源代码对应的图形化代码块并展示;响应于对图形化代码块的选取请求,执行解析代码,得到执行结果;根据图形化编程工具展示执行结果。通过本发明的技术方案,将指定编程语言与图形化编程工具相结合,实现源代码的显示,有利于学习者克服因不熟悉编程语言带来的编程学习的困难,也有利于学习者对编程中的功能逻辑的学习;同时源代码图形化的展示也给学习的过程带来乐趣,增强用户的使用体验。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的程序编辑装置、电子设备和计算机可读存储介质中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图4示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备400传统上包括处理器410和被安排成存储计算机可执行指令(程序代码)的存储器420。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有存储用于执行图1所示的以及各实施例中的任何方法步骤的程序代码440的存储空间430。例如,用于程序代码的存储空间430可以包括分别用于实现上面的方法中的各种步骤的各个程序代码440。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图5所述的计算机可读存储介质500。该计算机可读存储介质500可以具有与图4的电子设备中的存储器420类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码510,即可以由诸如410之类的处理器读取的程序代码,当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种程序编辑方法,其特征在于,所述方法包括:
接收输入的指定编程语言的源代码;
响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
根据图形化编程工具展示所述执行结果。
A2、如A1所述的方法,其特征在于,所述方法还包括:
判断所述解析代码中是否包括预设功能逻辑;
若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;
接收所述服务器返回的对应数据。
A3、如A1所述的方法,其特征在于,所述方法还包括:
判断所述解析代码中是否有返回值,若判断为是,获取所述解析代码中的返回值。
A4、如A3所述的方法,其特征在于,所述方法进一步包括:
根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
A5、如A1-A4中任一项所述的方法,其特征在于,利用页面JavaScript程序执行如A1-A4中任一项所述的方法。
A6、如A1所述的方法,其特征在于,所述指定编程语言包括如下一种或多种:
Python语言;
C语言;
C++语言;
Java语言。
A7、如A1所述的方法,其特征在于,
所述图形化编程工具包括Scratch编程工具。
A8、如A1所述的方法,其特征在于,在所述接收输入的指定编程语言的源代码之前,所述方法还包括:
响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;
接收所述服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
本发明还公开了B9、一种程序编辑装置,其特征在于,所述装置包括:
接收单元,适于接收输入的指定编程语言的源代码;
解析单元,适于响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
生成单元,适于根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
执行单元,适于响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
展示单元,适于根据图形化编程工具展示所述执行结果。
B10、如B9所述的装置,其特征在于,所述装置还包括:
第一判断单元,适于判断所述解析代码中是否包括预设功能逻辑;若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;接收所述服务器返回的对应数据。
B11、如B9所述的装置,其特征在于,所述装置还包括:
第二判断单元,适于判断所述解析代码中是否有返回值,若判断为是,获取所述解析代码中的返回值。
B12、如B11所述的装置,其特征在于,
所述生成单元,适于根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
B13、如B9-B12中任一项所述的装置,其特征在于,B9-B12中任一项所述的装置中的各单元基于页面JavaScript程序实现。
B14、如B9所述的装置,其特征在于,所述指定编程语言包括如下一种或多种:
Python语言;
C语言;
C++语言;
Java语言。
B15、如B9所述的装置,其特征在于,
所述图形化编程工具包括Scratch编程工具。
B16、如B9所述的装置,其特征在于,所述装置还包括:
加载单元,适于在所述接收单元接收输入的指定编程语言的源代码之前,响应于访问指定网站的请求,向服务器发送基于指定编程语言的程序编辑器的加载请求;接收所述服务器返回的基于指定编程语言的程序编辑器的加载信息,根据接收到的加载信息加载基于指定编程语言的程序编辑器。
本发明还公开了C17、一种电子设备,其特征在于,所述电子设备包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据A1~A8中任一项所述的方法。
本发明还公开了D18、一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现A1~A8中任一项所述的方法。
Claims (10)
1.一种程序编辑方法,其特征在于,所述方法包括:
接收输入的指定编程语言的源代码;
响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
根据图形化编程工具展示所述执行结果。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述解析代码中是否包括预设功能逻辑;
若判断为是,根据包括预设功能逻辑的解析代码,向服务器发送对应数据的获取请求;
接收所述服务器返回的对应数据。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述解析代码中是否有返回值,若判断为是,获取所述解析代码中的返回值。
4.如权利要求3所述的方法,其特征在于,所述方法进一步包括:
根据获取的返回值和所述图形化编程工具生成与所述返回值对应的图形化代码块并展示。
5.如权利要求1-4中任一项所述的方法,其特征在于,利用页面JavaScript程序执行如权利要求1-4中任一项所述的方法。
6.如权利要求1所述的方法,其特征在于,所述指定编程语言包括如下一种或多种:
Python语言;
C语言;
C++语言;
Java语言。
7.如权利要求1所述的方法,其特征在于,
所述图形化编程工具包括Scratch编程工具。
8.一种程序编辑装置,其特征在于,所述装置包括:
接收单元,适于接收输入的指定编程语言的源代码;
解析单元,适于响应于对所述源代码的执行请求,根据所述指定编程语言的编程标准对所述源代码进行解析,得到解析代码;
生成单元,适于根据所述解析代码和图形化编程工具生成与所述源代码对应的图形化代码块并展示;
执行单元,适于响应于对所述图形化代码块的选取请求,执行所述解析代码,得到执行结果;
展示单元,适于根据图形化编程工具展示所述执行结果。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811299990.8A CN109471622A (zh) | 2018-11-02 | 2018-11-02 | 一种程序编辑方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811299990.8A CN109471622A (zh) | 2018-11-02 | 2018-11-02 | 一种程序编辑方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109471622A true CN109471622A (zh) | 2019-03-15 |
Family
ID=65672642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811299990.8A Pending CN109471622A (zh) | 2018-11-02 | 2018-11-02 | 一种程序编辑方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471622A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647324A (zh) * | 2019-09-18 | 2020-01-03 | 奇码(杭州)教育科技有限公司 | Python与Scratch交互式编程方法及电子设备 |
CN110826720A (zh) * | 2019-11-06 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种界面的显示方法及装置、界面的切换方法及装置 |
CN110989982A (zh) * | 2019-11-29 | 2020-04-10 | 苏州精易会信息技术有限公司 | 一种带返回值函数的积木块构建方法、装置、存储介质和处理器 |
CN111475154A (zh) * | 2020-03-17 | 2020-07-31 | 北京邮电大学 | 程序编辑系统、方法、电子设备及存储介质 |
CN111813411A (zh) * | 2020-06-13 | 2020-10-23 | 立乐教育科技(上海)有限公司 | 一种基于Python脚本语言的指令化方法 |
CN111857693A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种基于图像化编程的调用第三方函数的方法及装置 |
CN112099774A (zh) * | 2020-09-15 | 2020-12-18 | 济南浪潮高新科技投资发展有限公司 | 一种量子云平台前端开发方法 |
CN112965712A (zh) * | 2021-03-15 | 2021-06-15 | 杭州未名信科科技有限公司 | 用于可视化编程的图形块的构建方法及装置、介质、设备 |
CN113760256A (zh) * | 2021-03-17 | 2021-12-07 | 张�林 | 非代码类编程方法及使用该编程方法的手持编程装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5760788A (en) * | 1995-07-28 | 1998-06-02 | Microsoft Corporation | Graphical programming system and method for enabling a person to learn text-based programming |
US20080022259A1 (en) * | 2006-07-24 | 2008-01-24 | Macklem Grant V | Automatic Conversion of a Textual Language into a Graphical Program Representation |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程系统和方法 |
CN104503793A (zh) * | 2014-12-24 | 2015-04-08 | 风腾科技(北京)有限公司 | 代码练习软件中代码的运行和图形化的解析方法 |
CN107423049A (zh) * | 2017-04-18 | 2017-12-01 | 南京凯蒙教育科技有限公司 | 实现在线编程的方法、浏览器和终端设备 |
US20180285084A1 (en) * | 2017-04-03 | 2018-10-04 | Innovation First, Inc. | Mixed mode programming |
-
2018
- 2018-11-02 CN CN201811299990.8A patent/CN109471622A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5760788A (en) * | 1995-07-28 | 1998-06-02 | Microsoft Corporation | Graphical programming system and method for enabling a person to learn text-based programming |
US20080022259A1 (en) * | 2006-07-24 | 2008-01-24 | Macklem Grant V | Automatic Conversion of a Textual Language into a Graphical Program Representation |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程系统和方法 |
CN104503793A (zh) * | 2014-12-24 | 2015-04-08 | 风腾科技(北京)有限公司 | 代码练习软件中代码的运行和图形化的解析方法 |
US20180285084A1 (en) * | 2017-04-03 | 2018-10-04 | Innovation First, Inc. | Mixed mode programming |
CN107423049A (zh) * | 2017-04-18 | 2017-12-01 | 南京凯蒙教育科技有限公司 | 实现在线编程的方法、浏览器和终端设备 |
Non-Patent Citations (1)
Title |
---|
刘振安 等: "一种Java语言图形编程工具的设计与实现", 《测控技术》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647324A (zh) * | 2019-09-18 | 2020-01-03 | 奇码(杭州)教育科技有限公司 | Python与Scratch交互式编程方法及电子设备 |
CN110826720A (zh) * | 2019-11-06 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种界面的显示方法及装置、界面的切换方法及装置 |
CN110989982A (zh) * | 2019-11-29 | 2020-04-10 | 苏州精易会信息技术有限公司 | 一种带返回值函数的积木块构建方法、装置、存储介质和处理器 |
CN110989982B (zh) * | 2019-11-29 | 2023-10-31 | 苏州精易会信息技术有限公司 | 一种带返回值函数的积木块构建方法、装置、存储介质和处理器 |
CN111475154A (zh) * | 2020-03-17 | 2020-07-31 | 北京邮电大学 | 程序编辑系统、方法、电子设备及存储介质 |
CN111857693A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种基于图像化编程的调用第三方函数的方法及装置 |
CN111857693B (zh) * | 2020-05-29 | 2023-12-26 | 北京编程猫科技有限公司 | 一种基于图像化编程的调用第三方函数的方法及装置 |
CN111813411A (zh) * | 2020-06-13 | 2020-10-23 | 立乐教育科技(上海)有限公司 | 一种基于Python脚本语言的指令化方法 |
CN112099774A (zh) * | 2020-09-15 | 2020-12-18 | 济南浪潮高新科技投资发展有限公司 | 一种量子云平台前端开发方法 |
CN112965712A (zh) * | 2021-03-15 | 2021-06-15 | 杭州未名信科科技有限公司 | 用于可视化编程的图形块的构建方法及装置、介质、设备 |
CN113760256A (zh) * | 2021-03-17 | 2021-12-07 | 张�林 | 非代码类编程方法及使用该编程方法的手持编程装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471622A (zh) | 一种程序编辑方法和装置 | |
US7881440B2 (en) | Method for automatic graphical profiling of a system | |
EP2487595B1 (en) | Web service for automated cross-browser compatibility checking of web applications | |
US10725749B2 (en) | Heuristic assembly of a component based application | |
US9354958B2 (en) | Personalizing error messages based on user learning styles | |
CN109144856A (zh) | 一种ui自动化测试方法、计算设备及存储介质 | |
EP2728498A1 (en) | System and method for creation of templates | |
CN110134386A (zh) | 一种程序编辑方法和装置 | |
Perrone et al. | SAFE: Simulation automation framework for experiments | |
WO2013188540A1 (en) | Practical natural-language human-machine interfaces | |
US7729786B2 (en) | Natively retaining project documentation in a controller | |
US20220138266A1 (en) | Learning-based automated machine learning code annotation with graph neural network | |
CN102930058A (zh) | 一种在浏览器的地址栏中实现搜索的方法和装置 | |
CN102576281A (zh) | 用于与信息交互并且操纵信息的方法及其系统 | |
US20240111498A1 (en) | Apparatus, Device, Method and Computer Program for Generating Code using an LLM | |
WO2021104387A1 (zh) | 一种自动识别有效数据采集模块的方法和系统 | |
CN109992500A (zh) | 应用的接口测试方法、装置和计算机可读存储介质 | |
CN108153667A (zh) | 自动化测试方法、装置及系统 | |
CN115827476A (zh) | 一种接口在线可视化调试方法、装置、电子设备及介质 | |
CN111143189A (zh) | 用于应用程序接口api测试的方法和设备 | |
CN115033436A (zh) | 页面测试方法及装置、电子设备、存储介质 | |
CN110781226B (zh) | 数据分析方法、装置、存储介质、设备及系统 | |
US20190196945A1 (en) | Entity performance and usability analysis framework | |
CN111143186A (zh) | 用于应用程序接口api测试的方法和设备 | |
CN115334064B (zh) | 一种配置系统的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |