CN105653344A - 一种图形化编程系统的编译器的方法 - Google Patents

一种图形化编程系统的编译器的方法 Download PDF

Info

Publication number
CN105653344A
CN105653344A CN201410635141.0A CN201410635141A CN105653344A CN 105653344 A CN105653344 A CN 105653344A CN 201410635141 A CN201410635141 A CN 201410635141A CN 105653344 A CN105653344 A CN 105653344A
Authority
CN
China
Prior art keywords
layer
code
compiler
compiling
program
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
Application number
CN201410635141.0A
Other languages
English (en)
Inventor
杨际荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZHENJIANG HUAYANG INFORMATION TECHNOLOGY CO LTD
Original Assignee
ZHENJIANG HUAYANG INFORMATION TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZHENJIANG HUAYANG INFORMATION TECHNOLOGY CO LTD filed Critical ZHENJIANG HUAYANG INFORMATION TECHNOLOGY CO LTD
Priority to CN201410635141.0A priority Critical patent/CN105653344A/zh
Publication of CN105653344A publication Critical patent/CN105653344A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种图形化编程系统的编译器的方法是着重分析了采用数据流模型的机器人控制系统软件的编译器的实现,运用层次化的编译思想及伪代码技术,设计出了基于API函数的编译系统方法。

Description

一种图形化编程系统的编译器的方法
技术领域
一种图形化编程系统的编译器的方法主要是涉及计算机编译方面领域。
背景技术
教育、娱乐型机器人是将娱乐性和技术创造相融合,逐步成为机器人研究的热点之一,形成了巨大的市场感召力。基于图形化编程的机器人专用软件研究系统(GraphicalRobotSpecialSoftwarestraySystem,GR4S)是典型的图形化编程环境。使用该系统的用户无需任何的程序设计语言知识,只要将所需的图标从功能模块面板中拖拽到编程工作区,按照一定的逻辑顺序进行连线就完成了以往复杂的编程过程。
本方法主要分析现代编译器的体系结构,指出了其中存在的缺陷;并根据GR4S系统及其相关硬件的特点,设计出一种基于API函数框架的有效编译系统,改进以上缺陷;通过调用GR4S的编译器,实现了目标代码为API/伪c语言代码(FakeC,简称FC)的编译过程。
发明内容
通过国家专利检索没有发现关于此系统方面的申请资料。
GR4S编译器主要采用了伪代码、三层次编译系统等关键技术,使用该编译系统以能编译生成基于API函数的FC语言目标代码的基本框架。
GR4S是典型的图形化编程环境,与传统文本编程的流程不同,其核心是基于结构化的数据流的编程方式。GR4S系统中编译器是图形语言与目标语言之间的桥梁;不难发现,一个数据流的自然表示是一个图形或图表,而数据流模型是一个比基于文本语言的控制流更为丰富的计算模型,因为其本质是并行。随着,计算机速度不断加快,存储容量不断增长,计算机屏幕不断加大,直接进行交互式的数据流图编辑是十分简单的。
编译过程可分三个层次:第一层是用户层,用户可以将编好的图形化机器人程序生成对应的伪代码;第二层是中间层,对于用户是透明的,在这一层中编译器将伪代码翻译为汇编指令;第三层实现层,将汇编指令解释为机器代码,这一层对用户来说也是透明的,用户无需了解实现细节,直接通过,GR4S中的下载功能,将机器代码下载到机器人控制器。具体为以下四个步骤:首先,将由PC上的图形化编程环境得到图形语言转换为FC代码;其次,将FC代码映射到汇编语言;然后,将映射得到的汇编语言转换为目标程序代码(字节码);最后,由内嵌的虚拟机生成可以在uCLinux操作系统下可执行的程序。
GR4S中的编译器虽然仍是以编译原理和编译技术为基础实现的,但是其独特性表现在两点:第一,它的源程序是图形框图,而不是其他基于命令行的高级编程语言;第二,它的目标程序是伪c语言代码,并不是机器所能识别的二进制代码。
编译器的开发工具选择的是VisualC++,具有非常友好的人机交互界面,强大的编译管理功能、齐全的基本类库以及完备的调试工具,是目前使用最广泛的开发语言之一。
编译程序采用的是静态语法分析方法即语法制导编译,其基本思想是在编译的过程由FC程序的语法结构来控制,而语法结构则由语法分析器来识别。事实上,语义分析和代码生成是编译程序的主要部分,这部分的主要代码如下:
Compile_C_(char*strFileName);
{charstrASMFileName[MAX_FILENAME_LENJ;
HANDLEhFile;
DWORDdwNumberOfBytesWritten;
intnThreadStart,nThreadEnd,i;
charstrl[256],str2[256];
//stepl.打开C语言文件
if(strFileName=NULL)
retumFALSE;
if(OpenCFile(strFileName))
strcpy(this->m_strCFileName,strFileName);
elsereturnFALSE;
//step2.打开codemap数据文件
if(!OpenCodeMapFile())
returnFALSE;
//step3.对C代码进行处理
//去除所有注释
if(!this->RemoveAllRemarks())
returnFALSE;
//去除所有控制字符
if(!this->RemoveAUControlChar())
returnFALSE;
//3.将编译好的代码写入文件
strcpy(strASMFileName,this->m_strAppPath);
strcat(strASMFileName,ASM_FILE_PATH);
if((hFile=::CreateFile(strASMFileName,
GENERIC_READGENERIC_WRITE,
0,NULL,CREATE_ALWAYS,
FILE_ATnRIBUTE_NORMAL,
null))!=INVAI皿_HANDLE_VAlue)
{//将代码写入文件
if(!::WriteFile(hFILe,Tasking.strASMCode,
strlen(Tasklnfo.strASMCode),&dwNum-betOfBytesWritten,NULL))
{CloseHandh(hFile);
returnFALSE;}
CloseHandle(hFile);}
elsereturnFALSE;
retumTRUE;}
而GR4S编译器的实现是基于API函数框架的,因此,充分利用了API函数的特性和面向对象的特性。对于词法分析器以及语义分析和目标代码的生成的实现,都是编写在CCompile2Asm这个编译类中,这样可以方便编码器内部的相互访问,又有利于程序员在编译的各个不同阶段的调试,随时添加编译效率的方法。

Claims (5)

1.一种图形化编程系统的编译器的方法其主要特征是采用了层次化编译的方法。
2.根据权利要求1的方法则是分成三个层次:第一层是用户层,用户可以将编好的图形化机器人程序生成对应的伪代码;第二层是中间层,对于用户是透明的,在这一层中编译器将伪代码翻译为汇编指令;第三层实现层,将汇编指令解释为机器代码。
3.根据权利要求2则其具体步骤为:首先,将由PC上的图形化编程环境得到图形语言转换为PC代码;其次,将PC代码映射到汇编语言;然后,将映射得到的汇编语言转换为目标程序代码(字节码);最后,由内嵌的虚拟机生成可以在uCLinux操作系统下可执行的程序。
4.根据权利要求3则编译程序采用的是静态语法分析方法即语法制导编译。
5.根据权利要求4则是在编译的过程由FC程序的语法结构来控制,而语法结构则由语法分析器来识别。
CN201410635141.0A 2014-11-13 2014-11-13 一种图形化编程系统的编译器的方法 Pending CN105653344A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410635141.0A CN105653344A (zh) 2014-11-13 2014-11-13 一种图形化编程系统的编译器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410635141.0A CN105653344A (zh) 2014-11-13 2014-11-13 一种图形化编程系统的编译器的方法

Publications (1)

Publication Number Publication Date
CN105653344A true CN105653344A (zh) 2016-06-08

Family

ID=56483962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410635141.0A Pending CN105653344A (zh) 2014-11-13 2014-11-13 一种图形化编程系统的编译器的方法

Country Status (1)

Country Link
CN (1) CN105653344A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406890A (zh) * 2016-09-23 2017-02-15 江西洪都航空工业集团有限责任公司 一种利用多语言建立机器人模块的方法
CN107168698A (zh) * 2017-04-24 2017-09-15 华南理工大学 图形化编程的自动编译方法
CN107656726A (zh) * 2017-10-10 2018-02-02 北京元比特科技有限责任公司 一种互联网信息及技术共享平台及方法
CN109710242A (zh) * 2018-12-29 2019-05-03 深圳点猫科技有限公司 web端图形化编程的交互方法、系统及电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406890A (zh) * 2016-09-23 2017-02-15 江西洪都航空工业集团有限责任公司 一种利用多语言建立机器人模块的方法
CN107168698A (zh) * 2017-04-24 2017-09-15 华南理工大学 图形化编程的自动编译方法
CN107168698B (zh) * 2017-04-24 2020-11-24 华南理工大学 图形化编程的自动编译方法
CN107656726A (zh) * 2017-10-10 2018-02-02 北京元比特科技有限责任公司 一种互联网信息及技术共享平台及方法
CN109710242A (zh) * 2018-12-29 2019-05-03 深圳点猫科技有限公司 web端图形化编程的交互方法、系统及电子设备

Similar Documents

Publication Publication Date Title
Khandkar et al. A domain specific language to define gestures for multi-touch applications
US10592211B2 (en) Generation of application behaviors
CN105653344A (zh) 一种图形化编程系统的编译器的方法
WO2015039628A1 (zh) 可视化步骤编程法
CN103970591B (zh) 一种Matlab‑ATP集成自动化调用方法
CN105204837B (zh) 一种逻辑编程的实现方法和装置
Kaswan et al. Python for Beginners
CN101000555B (zh) 手持终端系统
CN101488095A (zh) 编译方法以及编译程序
US9934006B2 (en) Scalable code division and workflow chart
Moser et al. Domain-specific modeling in industrial automation: Challenges and experiences
Khalid et al. Python based power system automation in PSS/E
CN104123166A (zh) 一种非Xcode环境下ipa安装包生成方法
CN106569867A (zh) 一种图形化编译器的方法
CN103955424B (zh) 一种虚拟化嵌入式二进制软件缺陷检测系统
CN101887500A (zh) 基于标签的程序控制流深度混淆方法
CN109062554A (zh) 一种面向多操作对象的编程方法
Calò et al. Towards A Visual Programming Tool to Create Deep Learning Models
CN106815003A (zh) 一种计算机语言的交互系统及交互方法
Donatiello et al. Laying the path to consumer-level immersive simulation environments
JP5755103B2 (ja) ブロック線図処理装置およびブロック線図の処理方法
Fouilleul et al. A poly-temporal programming environment for live shows and interactive installations
CN109032574A (zh) 一种面向多操作对象的编程系统
Kulkarni et al. A survey on graphical programming systems
Xu Programming Features and Technical Analysis of Computer Software Java

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160608