CN116400927B - 一种代码块转译方法、装置、电子设备及存储介质 - Google Patents
一种代码块转译方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116400927B CN116400927B CN202310413119.0A CN202310413119A CN116400927B CN 116400927 B CN116400927 B CN 116400927B CN 202310413119 A CN202310413119 A CN 202310413119A CN 116400927 B CN116400927 B CN 116400927B
- Authority
- CN
- China
- Prior art keywords
- code block
- translated
- code
- type
- function
- 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.)
- Active
Links
- 238000013519 translation Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000006870 function Effects 0.000 claims description 126
- 238000012545 processing Methods 0.000 claims description 47
- 230000007246 mechanism Effects 0.000 claims description 25
- 238000004458 analytical method Methods 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 18
- 230000002452 interceptive effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 10
- 238000007373 indentation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种代码块转译方法、装置、电子设备及存储介质,该方法包括:通过原始编译数据,获取待转译代码块;对待转译代码块进行分类,获得代码块类型;根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息。通过对原始编译数据进行解析获得待转译代码块,根据代码块的类型将待转译代码块进行转译,获得实现代码块的转译。基于编译型语言实现图形化代码块转译,仅需对原始编译数据进行操作,使得图形化代码块的转译适用性更强。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种代码块转译方法、装置、电子设备及存储介质。
背景技术
图形化编程就是编写有界面的程序,编程语言是一种被标准化的交流技巧,用来向计算机发出指令,定义计算机程序。在图形化代码解析过程中,现有技术是将解析方案深度结合到图形化代码块中,耦合性强,适用性较差。
发明内容
本发明实施例的目的在于一种代码块转译方法、装置、电子设备及存储介质,通过对原始编译数据进行解析获得待转译代码块,根据代码块的类型将待转译代码块进行转译,获得实现代码块的转译,改善了代码块转译适用性较差的问题。
第一方面,本申请实施例提供了一种代码块转译方法,包括:通过原始编译数据,获取待转译代码块;对待转译代码块进行分类,获得代码块类型;根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息。
在上述的实现过程中,通过对原始编译数据进行解析获得待转译代码块,根据代码块的类型将待转译代码块进行转译,获得实现代码块的转译。基于编译型语言实现代码块转译,仅需对原始编译数据进行编译操作,代码块的转译适用性更强。
可选的,在本申请实施例中,通过原始编译数据,获取待转译代码块,包括:利用预设的编译语言,重写原始编译数据的解析方法;通过解析方法对原始编译数据进行解析,获取待转译代码块。
在上述的实现过程中,使用编译类型语言对解析方法进行重写,并通过重写后的解析方法对原始编译数据进行解析,当需要增加外设扩展模块时,实现通过更新资源文件的形式进行动态更新。
可选的,在本申请实施例中,对待转译代码块进行分类,获得代码块类型,包括:若待转译代码块允许向上连接和向下连接,则待转译代码块的类型为普通型代码块;若待转译代码块可进行数值的读取,则待转译代码块的类型为值型代码块;若待转译代码块仅允许向下连接,且具有向下连接触发机制,则待转译代码块的类型为帽子型代码块。
在上述的实现过程中,根据代码块的属性对待转译代码块进行分类,获得代码块类型,从而实现了能够根据代码块类型对代码块进行转译操作。
可选的,在本申请实施例中,根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息,包括:根据待转译代码块的代码块类型,确定每一代码块的处理函数;通过代码块对应的处理函数,对待转译代码块进行字符串的拼接,获得转译信息。
在上述的实现过程中,针对不同类型的待转译代码块确定对应的处理函数,通过处理函数即可将每一类型代码块进行转译,获得对应的转译信息,实现代码块的转译。
可选的,在本申请实施例中,处理函数包括判断函数和拼接函数;通过代码块对应的处理函数,对待转译代码块进行字符串的拼接,获得转译信息,包括:若待转译代码块的类型为帽子型代码块,则通过判断函数,判断向下连接触发机制是否被成功触发,获得触发返回结果;若触发返回结果表征触发成功,则通过拼接函数对帽子型代码块进行字符串的拼接,获得帽子型代码块对应的转译信息。
在上述的实现过程中,通过构造判断函数判断帽子型代码块的向下连接触发机制是否被成功触发,在向下连接触发机制被成功触发的情况下对字符串进行拼接,实现代码块的转译。
可选的,在本申请实施例中,方法还包括:利用预设的返回函数获得处理函数的返回值;通过返回值判断处理函数对应的方法是否执行完成。
在上述的实现过程中,通过返回函数获得处理函数的返回值;通过返回值判断处理函数对应的方法是否执行完成,对函数之间的调度进行管理。
可选的,在本申请实施例中,在根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息之后,方法还包括:获得待转译代码块的硬件设备逻辑代码;基于交互式解释器将硬件设备逻辑代码映射至转译信息中。
在上述的实现过程中,在转译的过程中,仅需要对原始编译数据进行解析,若是硬件设备相关的图像化代码块,则无需进行编译,可以基于交互式解释器将硬件设备逻辑代码映射至转译信息中。实现硬件新增扩展和功能或模块后,可以通过更新资源文件的形式进行动态更新,改善硬件逻辑代码每一次改动都需要重新编译造成效率低下的问题,提高了处理效率。
第二方面,本申请实施例还提供了一种代码块转译装置,包括:解析模块,用于通过原始编译数据,获取待转译代码块;分类模块,用于对待转译代码块进行分类,获得代码块类型;转译模块,用于根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上面描述的方法。
采用本申请提供代码块转译方法、装置、电子设备及存储介质,通过对原始编译数据进行解析获得待转译代码块,根据代码块的类型将待转译代码块进行转译,获得实现代码块的转译。基于编译型语言实现图形化代码块转译,仅需对原始编译数据进行操作,图形化代码块的转译适用性更强。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种代码块转译方法的流程示意图;
图2为本申请实施例提供的帽子型代码块示意图;
图3为本申请实施例提供的代码块转译装置的结构示意图;
图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
在本申请实施例的描述中,技术术语“第一”、“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个及以上,除非另有明确具体的限定。
请参见图1示出的本申请实施例提供的一种代码块转译方法的流程示意图。本申请实施例提供的代码块转译方法可以应用于电子设备,该电子设备可以包括终端以及服务器;其中终端具体可以为智能手机、平板电脑、计算机、个人数字助理(Personal DigitalAssitant,PDA)等;服务器具体可以为应用服务器,也可以为Web服务器。该代码块转译方法可以包括以下步骤:
步骤S110:通过原始编译数据,获取待转译代码块。
步骤S120:对待转译代码块进行分类,获得代码块类型。
步骤S130:根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息。
在步骤S110中,原始编译数据可以为json(JavaScript Object Notation)格式的数据或xml(Extensible Markup Language,可扩展标记语言)格式的数据,数据包括字符串、数字、对象或数组等。举例来说,原始编译数据为一种需要传输或转译的数据,该数据可以通过json进行表示和存储。
通过对原始编译数据进行解析,获得代码块类型。以原始编译数据为json数据为例,可以使用编译类型语言编写解析方法,通过解析方法对json数据进行解析,获得待转译代码块。其中,编译类型语言可以为c#编程语言、c语言或c++语言等。
代码块又叫初始化块,属于类中的成员,即代码块是类的一部分,代码块类似于方法,将逻辑语句封装在方法体中。作为一种表示形式,可以使用“{ }”将代码块的内容包围起来。但和方法不同的是,代码块没有方法名、返回值以及参数,只有方法体,而且代码块不用通过对象或类显示调用,而是在加载类的时候或者创建对象的时候进行调用。其中,代码块可以为图形化代码块,具体例如,Scratch(图形化编程工具(语言))、Mind+以及GoogleBlockly(可视化编程语言)的编程界面中,每一个图形对象都是一个图形化代码块。
转译是以一种编程语言的程序源代码作为输入,生成以另一种编程语言构成的等效源代码。待转译代码块为需要进行转译的代码块。
在步骤S120中,根据代码块的属性对待转译代码块进行分类,获得代码块类型。代码块的属性例如代码块的连接方式、代码块是否具有触发逻辑以及代码块是否可以读取数值等。代码块类型可以包括普通型、值型、帽子型以及默认自带类型。代码块类型是可以自定义的,还可以包括其他类型。
在步骤S130中,在获取到每一待转译代码块的类型之后,可以根据待转译代码块的类型,以及需要生成的编程语言类型,确定转译方法。例如需要通过转译生成的编程语言类型为python,则转译方法可以为利用python框架设计的用于转译的python函数。通过转译方法,将待转译代码块进行转译,例如,根据待转译代码块的逻辑结构进行字符串拼接,获得转译信息。转译信息可以为python语言或其他编程语言。
作为一种实施方式,可以根据代码块的代码缩进对字符串进行拼接。代码缩进是指在每一行代码左端空出一定长度的空白,从而可以更加清晰地从外观上看出程序的逻辑结构,逻辑结构包括从属关系。例如,通过代码缩进确定程序代码中的函数下和循环里等。进而根据代码的函数下和循环里对字符串进行拼接。
在上述的实现过程中,通过对原始编译数据进行解析获得待转译代码块,根据代码块的类型将待转译代码块进行转译,获得实现代码块的转译。基于编译型语言实现代码块转译,仅需对原始编译数据进行编译操作,代码块的转译适用性更强。
可选的,在本申请实施例中,通过原始编译数据,获取待转译代码块,包括:利用预设的编译语言,重写原始编译数据的解析方法;通过解析方法对原始编译数据进行解析,获取待转译代码块。
在具体的实现过程中:在一些图形化编程的框架中,定义了json数据格式,通过该预先定义的json数据格式可以表示代码块。具体来说,以Scratch(图形化编程工具(语言))框架为例,Scratch框架的开源代码包括对预先定义的json数据进行解析的解析函数,通过解析函数即可将json数据进行解析,获取到代码块。但是利用Scratch框架并不能够将图形化代码块转译成其他语言。
本申请实施例采用编译类型语言对图形化代码块进行处理,具体例如,移植Scratch框架下对图形化代码块的json定义,即利用预设的编译语言,重写对原始编译数据的解析方法,其中,编译语言为编译类型语言,可以包括c#编程语言、c语言或c++语言等。示例性的,可以使用unity的uitoolkit框架,用c#语言重写解析方法,采用重写后的解析方法对原始编译数据进行解析,获得待转译代码块。
在上述的实现过程中,使用原始编译数据,例如json定义图形化代码块,并通过重写后的解析方法对原始编译数据进行解析,获取可以进行转译的代码块,改善原有框架下代码块无法进行转译的问题。
可选的,在本申请实施例中,对待转译代码块进行分类,获得代码块类型,包括:若待转译代码块允许向上连接和向下连接,则待转译代码块的类型为普通型代码块;若待转译代码块可进行数值的读取,则待转译代码块的类型为值型代码块;若待转译代码块仅允许向下连接,且具有向下连接触发机制,则待转译代码块的类型为帽子型代码块。
表1代码块类型
在具体的实现过程中:根据代码块的属性对待转译代码块进行分类,具体例如,若待转译代码块允许向上连接和向下连接,则待转译代码块的类型为普通型代码块;其中,向上连接为代码块可以向上拼接字符串,向下连接为可以向下拼接字符串。普通型代码块的操作指令为较简单的指令。
若待转译代码块可进行数值的读取,则待转译代码块的类型为值型代码块;值型代码块可以放入input语法中。若待转译代码块仅允许向下连接,且具有向下连接触发机制,则待转译代码块的类型为帽子型代码块。向下连接触发机制即为向下拼接字符串的触发逻辑,在帽子型代码块进行拼接转译前,应先确定该触发逻辑被触发,在被触发的情况下帽子型代码块才会向下连接。
在一个可选的实施例中,若待转译代码块没有指定分支和循环逻辑,则认为该待转译代码块为默认自带类型代码块,默认自带类型代码块可以进行向上连接和向下连接,并且默认自带类型代码块内部还可以拼接代码块。其中,指定分支包括if和else等选择结构的语句。
在上述的实现过程中,根据代码块的属性对待转译代码块进行分类,获得代码块类型,实现了根据代码块类型对代码块进行转译,生成需要的编程语言类型的代码。
可选的,在本申请实施例中,根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息,包括:根据待转译代码块的代码块类型,确定每一代码块的处理函数;通过代码块对应的处理函数,对待转译代码块进行字符串的拼接,获得转译信息。
在具体的实现过程中:每一类型的待转译代码块有对应的处理函数,处理函数可以为将待转译代码块转译成转译信息的方法。执行待转译代码块对应的处理函数,即可按照处理函数的处理逻辑对待转译代码块进行转译。以需要转译生成的编程语言为python为例,处理函数可以是python函数。实现了根据代码块类型对代码块进行转译,生成需要的编程语言类型的代码。
对于普通型代码块和值型代码块,处理函数包括拼接函数,拼接函数用于根据代码块的代码缩进对字符串进行拼接,获得转译信息。其中,普通型代码块和值型代码块的处理函数可以例如TranslateTopBlockToPython函数。
对于帽子型代码块,处理函数包括判断函数和拼接函数,判断函数用于判断帽子型代码块的向下连接触发机制是否被成功触发,在触发成功的情况下,再通过拼接函数对字符串进行拼接,获得转译信息。其中,帽子型代码块的转译信息可以通过TranslateTopBlockToPython函数获取。
在上述的实现过程中,针对不同类型的待转译代码块确定对应的处理函数,通过处理函数即可将每一类型代码块进行转译,获得对应的转译信息,实现代码块的转译。
可选的,在本申请实施例中,处理函数包括判断函数和拼接函数;通过代码块对应的处理函数,对待转译代码块进行字符串的拼接,获得转译信息,包括:若待转译代码块的类型为帽子型代码块,则通过判断函数,判断向下连接触发机制是否被成功触发,获得触发返回结果;若触发返回结果表征触发成功,则通过拼接函数对帽子型代码块进行字符串的拼接,获得帽子型代码块对应的转译信息。
在具体的实现过程中:若待转译代码块为帽子型代码块,由于帽子型代码块具有向下连接触发机制,在向下连接触发机制被成功触发的情况下才会对字符串进行拼接,实现代码块的转译。因此帽子型代码块在转译之前需要先通过预先设置的判断函数,判断向下连接触发机制是否被成功触发,获得触发返回结果。
若触发返回结果表征向下连接触发机制被成功触发,则通过拼接函数对帽子型代码块进行字符串的拼接,获得帽子型代码块对应的转译信息。若触发返回结果表征向下连接触发机制未被成功触发,则无需进行后续的拼接转译工作。
在一个可选的实施例中,判断函数可以为trigger函数,若trigger函数返回真时,即触发返回结果表征向下连接触发机制被成功触发,调用拼接函数对帽子型代码块进行字符串的拼接。在拼接函数执行完成后,可以再次调用trigger函数判断向下连接触发机制是否被成功触发。
请参见图2示出的本申请实施例提供的帽子型代码块示意图。
以一个实施例进行描述,智能车以一定的速度前进一段距离,是一个耗时操作,所以通过异步函数实现,内部采用yield关键字方式获取返回值。当A按钮被按下,等待A按钮抬起后,则判断函数trigger函数被触法,则执行移动函数,执行函数可以是智能车被移动的移动。对于B按钮,判断当前属于等待触发中还是执行中,若是等待触发中,则判断是否成功触发,触发成功了则开始执行B按钮对应的函数。执行结束后,等待下一次触发。
在上述的实现过程中,通过构造判断函数判断帽子型代码块的向下连接触发机制是否被成功触发,在向下连接触发机制被成功触发的情况下对字符串进行拼接,实现代码块的转译。
可选的,在本申请实施例中,方法还包括:利用预设的返回函数获得处理函数的返回值;通过返回值判断处理函数对应的方法是否执行完成。
在具体的实现过程中:在有多个函数需要执行的情况下,处理函数之间需要进行一定的调度,例如不同的代码块对应的拼接函数之间的调度,或对帽子型代码块进行编译的过程中判断函数和拼接函数的调度。通常前一个函数执行完成之后,才会进行下一个函数方法的执行,因此,可以通过预设的返回函数获得处理函数的返回值,通过返回值判断处理函数对应的方法是否执行完成。
返回函数可以为包括yield关键字等的函数。要求耗时控制的函数方法可以在合适的时间点用yield函数获取返回值,通过返回值判断是否执行完成。
在一个可选的实施例中,在调用生成器函数的过程中,每次遇到yield关键字时函数会暂停并保存当前所有的运行信息,即保留局部变量,返回yield的值,并在下一次执行next()方法时从当前位置继续运行,直到生成器被全部遍历完。函数内循环等也可以采用yield关键字获取返回值,判断该循环是否完成。
利用yield关键字实现伪并行多线程,把每一个需要并行执行的待转译代码块,都变成独立的异步函数,使用yield关键字和yield的返回值,完成函数执行。
在上述的实现过程中,通过返回函数获得处理函数的返回值;通过返回值判断处理函数对应的方法是否执行完成,对函数之间的调度进行有效管理。
可选的,在本申请实施例中,在根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息之后,方法还包括:获得待转译代码块的硬件设备逻辑代码;基于交互式解释器将硬件设备逻辑代码映射至转译信息中。
在具体的实现过程中:硬件设备逻辑代码由硬件描述语言生成,硬件描述语言是用来设计数字逻辑系统和描述数字电路的语言。例如超声波距离传感器的硬件逻辑可以设计为给定一个较长的时间返回传感器距离数据;音频设备的硬件逻辑可以为将声音输出的字节变量写入对应的接口,实现声音的输出。
交互式解释器(read、evaluate、print、loop,repl)的作用是读取输入的内容,并对该内容进行求值,再返回结果,并可以重复这一过程。交互式解释器既可以作为独立的程序运行,也可以包含在其他程序中作为整体程序的一部分使用。通常交互式解释器的交互方式可以用于调试或测试等。Python语言中,可以直接使用python命令,进入交互式解释器环境。
解析过程以及转译过程仅针对原始编译数据,即json数据或xml数据等,若是硬件设备相关的图像化代码块,则无需进行编译,获得用户预先设置的待转译代码块的硬件设备逻辑代码后,可以基于交互式解释器将硬件设备逻辑代码映射至转译信息中。
具体例如,在标准Scratch框架下,针对硬件相关的图形化代码块,在原有的VM(VMware主机)机制下,使用repl(read、evaluate、print、loop,交互式解释器)映射,将硬件设备相关的图形化代码块映射到对应的python扩展包的方法上。python扩展包为转译信息中的一部分,即实现了无需对硬件设备逻辑代码进行编译,即可将硬件设备逻辑代码加载至转译信息中。
在一个可选的实施例中,如果硬件需要进行新增扩展和功能或模块,则硬件设备逻辑代码对应的图形化代码块也需要进行更新。获取新增之后的硬件设备逻辑代码,将硬件设备相关的图形化代码块映射到对应的python扩展包的方法上。
在上述的实现过程中,在转译的过程中,仅需要对原始编译数据进行解析,若是硬件设备相关的图形化代码块,则无需进行编译,可以基于交互式解释器将硬件设备逻辑代码映射至转译信息中。实现硬件新增扩展和功能或模块后,可以通过更新硬件设备逻辑代码对应的资源文件的形式进行动态更新,改善硬件逻辑代码每一次改动都需要重新编译造成效率低下的问题,提高了处理效率。
请参见图3示出的本申请实施例提供的代码块转译装置的结构示意图;本申请实施例提供了一种代码块转译装置200,包括:
解析模块210,用于通过原始编译数据,获取待转译代码块;
分类模块220,用于对待转译代码块进行分类,获得代码块类型;
转译模块230,用于根据待转译代码块的代码块类型,将待转译代码块进行转译,获得转译信息。
可选地,在本申请实施例中,代码块转译装置,解析模块210,具体用于利用预设的编译语言,重写原始编译数据的解析方法;通过解析方法对原始编译数据进行解析,获取待转译代码块。
可选地,在本申请实施例中,代码块转译装置,分类模块220,具体用于若待转译代码块允许向上连接和向下连接,则待转译代码块的类型为普通型代码块;若待转译代码块可进行数值的读取,则待转译代码块的类型为值型代码块;若待转译代码块仅允许向下连接,且具有向下连接触发机制,则待转译代码块的类型为帽子型代码块。
可选地,在本申请实施例中,代码块转译装置,转译模块230,具体用于根据待转译代码块的代码块类型,确定每一代码块的处理函数;通过代码块对应的处理函数,对待转译代码块进行字符串的拼接,获得转译信息。
可选地,在本申请实施例中,代码块转译装置,处理函数包括判断函数和拼接函数;转译模块230,还用于若待转译代码块的类型为帽子型代码块,则通过判断函数,判断向下连接触发机制是否被成功触发,获得触发返回结果;若触发返回结果表征触发成功,则通过拼接函数对帽子型代码块进行字符串的拼接,获得帽子型代码块对应的转译信息。
可选地,在本申请实施例中,代码块转译装置,还包括:返回模块,用于利用预设的返回函数获得处理函数的返回值;通过返回值判断处理函数对应的方法是否执行完成。
可选地,在本申请实施例中,代码块转译装置,还包括:映射模块,用于获得待转译代码块的硬件设备逻辑代码;基于交互式会话将硬件设备逻辑代码映射至转译信息中。
应理解的是,该装置与上述的代码块转译方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上的方法。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-OnlyMemory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (7)
1.一种代码块转译方法,其特征在于,包括:
通过原始编译数据,获取待转译代码块;
对所述待转译代码块进行分类,获得代码块类型;
根据所述待转译代码块的代码块类型,将所述待转译代码块进行转译,获得转译信息;
对所述待转译代码块进行分类,获得代码块类型,包括:
若所述待转译代码块允许向上连接和向下连接,则所述待转译代码块的类型为普通型代码块;
若所述待转译代码块可进行数值的读取,则所述待转译代码块的类型为值型代码块;
若所述待转译代码块仅允许向下连接,且具有向下连接触发机制,则所述待转译代码块的类型为帽子型代码块;
根据所述待转译代码块的代码块类型,将所述待转译代码块进行转译,获得转译信息,包括:
根据所述待转译代码块的代码块类型,确定每一代码块的处理函数;
通过所述代码块对应的处理函数,对所述待转译代码块进行字符串的拼接,获得转译信息;
所述处理函数包括判断函数和拼接函数;通过所述代码块对应的处理函数,对所述待转译代码块进行字符串的拼接,获得转译信息,包括:
若所述待转译代码块的类型为帽子型代码块,则通过所述判断函数,判断所述向下连接触发机制是否被成功触发,获得触发返回结果;
若所述触发返回结果表征触发成功,则通过所述拼接函数对所述帽子型代码块进行字符串的拼接,获得所述帽子型代码块对应的转译信息。
2.根据权利要求1所述的方法,其特征在于,所述通过原始编译数据,获取待转译代码块,包括:
利用预设的编译语言,重写所述原始编译数据的解析方法;
通过所述解析方法对所述原始编译数据进行解析,获取所述待转译代码块。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用预设的返回函数获得所述处理函数的返回值;
通过所述返回值判断所述处理函数对应的方法是否执行完成。
4.根据权利要求1-3任一所述的方法,其特征在于,在根据所述待转译代码块的代码块类型,将所述待转译代码块进行转译,获得转译信息之后,所述方法还包括:
获得所述待转译代码块的硬件设备逻辑代码;
基于交互式解释器将所述硬件设备逻辑代码映射至所述转译信息中。
5.一种代码块转译装置,其特征在于,包括:
解析模块,用于通过原始编译数据,获取待转译代码块;
分类模块,用于对所述待转译代码块进行分类,获得代码块类型;
转译模块,用于根据所述待转译代码块的代码块类型,将所述待转译代码块进行转译,获得转译信息;
所述分类模块,具体用于若所述待转译代码块允许向上连接和向下连接,则所述待转译代码块的类型为普通型代码块;若所述待转译代码块可进行数值的读取,则所述待转译代码块的类型为值型代码块;若所述待转译代码块仅允许向下连接,且具有向下连接触发机制,则所述待转译代码块的类型为帽子型代码块;
所述转译模块,具体用于根据所述待转译代码块的代码块类型,确定每一代码块的处理函数;通过所述代码块对应的处理函数,对所述待转译代码块进行字符串的拼接,获得转译信息;
所述处理函数包括判断函数和拼接函数;所述转译模块,还用于若所述待转译代码块的类型为帽子型代码块,则通过所述判断函数,判断所述向下连接触发机制是否被成功触发,获得触发返回结果;若所述触发返回结果表征触发成功,则通过所述拼接函数对所述帽子型代码块进行字符串的拼接,获得所述帽子型代码块对应的转译信息。
6.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至4任一所述的方法。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310413119.0A CN116400927B (zh) | 2023-04-18 | 2023-04-18 | 一种代码块转译方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310413119.0A CN116400927B (zh) | 2023-04-18 | 2023-04-18 | 一种代码块转译方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116400927A CN116400927A (zh) | 2023-07-07 |
CN116400927B true CN116400927B (zh) | 2024-01-26 |
Family
ID=87019732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310413119.0A Active CN116400927B (zh) | 2023-04-18 | 2023-04-18 | 一种代码块转译方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116400927B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134386A (zh) * | 2019-04-04 | 2019-08-16 | 成都娄外科技有限公司 | 一种程序编辑方法和装置 |
CN113778408A (zh) * | 2021-07-29 | 2021-12-10 | 深圳点猫科技有限公司 | 一种积木代码序列化方法、装置、系统及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3607431A4 (en) * | 2017-04-03 | 2020-12-30 | Innovation First, Inc. | MIXED MODE PROGRAMMING |
-
2023
- 2023-04-18 CN CN202310413119.0A patent/CN116400927B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134386A (zh) * | 2019-04-04 | 2019-08-16 | 成都娄外科技有限公司 | 一种程序编辑方法和装置 |
CN113778408A (zh) * | 2021-07-29 | 2021-12-10 | 深圳点猫科技有限公司 | 一种积木代码序列化方法、装置、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116400927A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3304286B1 (en) | Data binding dependency analysis | |
US11531529B2 (en) | Method and electronic device for deploying operator in deep learning framework | |
US10437574B2 (en) | System and method for providing code completion features for code modules | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
US8418134B2 (en) | Method for efficiently managing property types and constraints in a prototype based dynamic programming language | |
CN106598556A (zh) | 用户界面生成方法及装置 | |
CN108958725B (zh) | 图形化模式编程平台生成方法、装置及计算机设备 | |
EP1929399A2 (en) | System and method for creating and using graphical object instances in a statechart environment | |
CN102696012A (zh) | 从代码使用中创建所推断的符号 | |
US8214812B2 (en) | Method of interpreting method bytecode and system operated by the same | |
US20160246622A1 (en) | Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages | |
CN105378658A (zh) | 自动源代码生成 | |
CN108920566B (zh) | 一种对SQLite数据库的操作方法、装置及设备 | |
CN112230988A (zh) | 接口文档的生成方法、装置、计算机设备和存储介质 | |
EP1452962A2 (en) | System and method for defining and using subclasses declaratively within markup | |
CN116400927B (zh) | 一种代码块转译方法、装置、电子设备及存储介质 | |
CN113138755A (zh) | 一种json序列化和反序列化的优化方法及系统 | |
US10613854B2 (en) | Systems and methods for automated renumbering, reformatting, and re-referencing of branching statements or go-to instruction line referencing within modified code using a dual-pass approach that includes operations using predicted new line numbers, error detection/correction, and alignment correction processing | |
CN115951890A (zh) | 一种不同前端框架间的代码转换方法及系统及装置 | |
CN111796832B (zh) | 热补丁文件生成方法、装置、设备及存储介质 | |
CN112214213B (zh) | Linux内核的开发和管理方法、装置、计算机设备和存储介质 | |
CN113761402A (zh) | 一种链接调试方法、装置、设备和存储介质 | |
CN114443031B (zh) | 一种图形用户界面编写的方法、系统、设备和存储介质 | |
CN113590224B (zh) | 服务器的检测方法、装置、电子设备及存储介质 | |
CN113741900B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |