This application provides a multilingual code compiling method and compiler, which relates to the technical field of language compilation. The compilation method includes: lexical analysis and processing of source code according to presupposition lexical analysis rules, generating lexical analysis results, in which the source code includes source code of many different languages; grammatical and semantic analysis of the lexical analysis results based on presupposition lexical analysis rules, generating grammatical and semantic analysis results; and presupposition objective code. Generation rules analyze the parsing results of grammar and semantics and generate the target code. Based on IEC61131 3 standard, this compilation method integrates language-independent modules, simplifies the structure of multilingual compiler, improves code efficiency and reduces code maintenance, and adds BASIC language support on the basis of IEC61131 3 programming language.
【技术实现步骤摘要】
多语言代码编译方法及编译器
本申请涉及语言编译
,特别涉及一种多语言代码编译方法及编译器。
技术介绍
IEC61131-3标准是有关可编程控制器的硬件、安装、试验、编程、通讯等方面的国际标准。其中IEC61131-3是PLC编程语言标准,详细的说明了五种编程语言,其中,包括梯形图(LadderDiagram,LD)、顺序功能流程图(SequentialFunctionChart,SFC)、功能区块图(FunctionBlockDiagram,FBD)、三种图形化语言;还包括指令表(InstructionList,IL)、结构化文本(StructuredText,ST)两种文本化语言。而IEC61131-3标准则作为工控领域的软逻辑编程的行业标准,被广泛应用在各大PLC厂商。现有的基于IEC61131-3标准语言的多语言编译器,较简化的编译器是通过增加语言转换器,将多种语言翻译成一种或者少数几种语言源程序,然后由一种或少数几种单语言编译器编译实现,虽然该编译器有所简化,但各功能模块仍有很多冗余,在提升代码效率方面和代码维护方面用户体验不是很好。申请内容本申请的目的在于,针对上述现有技术中的不足,提供一种多语言代码编译方法及编译器,提升代码效率和减少代码的维护,并且在IEC61131-3编程语言的基础上再增加BASIC语言的支持。为实现上述目的,本申请实施例采用的技术方案如下:第一方面,本申请实施例提供了一种多语言代码编译方法,所述方法包括:根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,其中,源程序代码包括多种不同语言的源程序代码; ...
【技术保护点】
1.一种多语言代码编译方法,其特征在于,所述方法包括:根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,其中,所述源程序代码包括多种不同语言的源程序代码;根据预设语法语义分析规则对所述词法分析结果进行语法语义分析,生成语法语义分析结果;根据预设目标代码的生成规则对所述语法语义分析结果进行目标代码的分析,生成目标代码。
【技术特征摘要】
1.一种多语言代码编译方法,其特征在于,所述方法包括:根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,其中,所述源程序代码包括多种不同语言的源程序代码;根据预设语法语义分析规则对所述词法分析结果进行语法语义分析,生成语法语义分析结果;根据预设目标代码的生成规则对所述语法语义分析结果进行目标代码的分析,生成目标代码。2.根据权利要求1所述的方法,其特征在于,所述源程序代码包括下述至少2种源程序代码:梯形图语言、顺序功能流程图语言、功能区块图语言、指令表语言、结构化文本语言及BASIC语言。3.根据权利要求1所述的方法,其特征在于,所述根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,包括:将所述源程序代码编译所需的头文件代码添加至所述源程序代码,得到新的源程序代码;根据预设词法分析规则对所述新的源程序代码进行词法分析处理并生成词法分析结果;其中,所述预设词法分析规则包括下述一种或多种组合:分界符类别、运算符类别、标识符类别、注释类别、常量类别或关键字类别规则。4.根据权利要求1所述的方法,其特征在于,所述根据预设语法语义分析规则对所述词法分析结果进行语法语义分析,生成语法语义分析结果,包括:采用变量模型对所述源程序代码的所述词法分析结果进行语法语义分析,生成变量模型的语法语义分析结果,其中,所述变量模型包括:单个变量和变量段的定义,变量段的定义包括输入变量段、输出变量段、局部变量段及全局变量段的定义;采用软件模型对所述变量模型的语法语义分析结果进行软件模型的语法语义分析,生成软件模型的语法语义分析结果,其中,所述软件模型的定义包括:软件配置、软件资源及软件任务的定义;采用程序组织单元模型对所述软件模型的语法语义分析结果进行程序组织单元模型的语法语义分析,生成程序组织单元模型的语法语义分析结果,其中,所述程序组织单元模型的定义包括:功能、功能块以及程序的定义。5.根据权利要求4所述的方法,其特征在于,所述根据所述变量模型的语法语义分析结果进行程序组织单元模型的语法语义分析,生成程序组织单元模型的语法语义分析结果,包括:对所述软件模型的语法语义分析结果进行划分处理,得到至少2种语言的分析结果;对所述至少2种语言的分析结果分别进行程序组织单元模型的语法语义分析;其中,所述至少2种语言包括下述至少2种:梯形图语言、顺序功能流程图语言、功能区块图语言、指令表语言、结构化...
【专利技术属性】
技术研发人员:张建飞,王立松,冯庆枝,
申请(专利权)人:深圳市雷赛控制技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。