编译器的现状与YC编译器的分析

2021-04-18 00:43杨晓兵
科技研究·理论版 2021年18期
关键词:优点分析

杨晓兵

摘要:本文通过介绍编译器的现状,并着重论述了三种编译器的概念及缺点,引出YC编译器的特点及优势,允许最终用户直接对开发商提供的产品再次扩展与开发。

关键词:编译器;YC;分析;优点

编译器是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。C语言代码主要是在特定词汇照着特定格式排列组合而成的,方便程序员的识别与理解,可CPU却无法直接读懂C语言代码,其往往只能读懂二进制形式的指令。因此,开发者必须设计出一个专门的工具,将程序员使用的C语言代码直接转化为CPU能读懂的二进制指令,换句话说就是将代码转变为.exe程序;此类工具名为编译器(Compiler)。编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译。

1.编译器的现状

编译器输出是指通过包含入口点的名字、地质、外部调用等内容的机器代码,构成目标文件。通常,一组目标文件并非出自同一个编译器,但是一组目标文件中的所有文件在编译時必须使用相同的输出格式,同时需要确保其能够链接在一起,形成可供用户执行的EXE文件。

当今世界上有三大编译器:msvc编译器、gcc编译器和LLVM/clang编译器。这三大编译器,直接或者间接开发出了现在主流的操作系统和几乎所有的软件。

(1) msvc编译器是微软公司的产品,有40年的历史,是应用最广泛的编译器之一,它功能强大,但体积也非常庞大。Windows电脑操作系统、相应的应用程序和驱动程序,都是直接或间接由msvc编译器开发的(依赖JavaScript、Python、Java、Basic等语言)。

(2)gcc编译器是开源的,不属于任何公司,它的体积巨大。Linux电脑操作系统,Android手机操作系统、所有嵌入式OS操作系统以及配套的驱动程序、应用程序,都是直接或间接用gcc编译器开发的。

(3)LLVM/clang编译器是开源的,它由gcc编译器发展而来,交给苹果公司负责开发与维护。其中,macOS电脑操作系统、iOS手机操作系统以及与之配套的应用软件都是出自该编译器。

但是三大编译器存在明显的缺点:只兼容自己开发出的三大电脑操作系统,即Windows—msvc,Linux—gcc,macOS-—LLVM/clang。举例来说:在Windows操作系统下开发的软件不能在Linux和macOS中直接编译。如果想让一个软件在各个操作系统中都能运行,那就需要针对每种操作系统对此软件做相应开发,这无疑增加了开发工作量和维护成本;若是软件只能在特定的操作系统下运行,不同的版本对应的动态链接库也将有所差异,这就要需要开发多套同样功能的动态库,同样增加了成本。 如果软件产品规模较大(如文件数超过一万),则各文件中的函数调用关系极其复杂、调试费时费力,哪怕改作微小的改动,都需重新生成执行代码。

2.三大编译器缺点

软件开发讲究模块化,在C/C++中,有两种方式实现模块化。(1)类继承或源码文件;(2)动态链接库或COM对象。在这两种方式中,前者的模块被放入执行文件,后者的模块以二进制方式提供。用户无法修改模块,很难进行二次开发和功能扩展。YC编译器除提供上述两种模块方式外,还通过扩展C/C++语法提供了“独立源码模块”的方式,这种方式的模块以C/C++源码方式提供,用户通过修改模块源码而进行二次开发和功能扩展,源码修改后,无需手动编译。

YC编译器经过近20年的研发,已经具有三大编译器的主要功能,同时解决了三大编译器的上述缺点。一个软件用YC编译器只需要编写一套源代码,就可以在所有操作系统上运行,而三大编译器则需要针对不用的操作系统进行开发。

3.YC编译器特点分析

YC(Yang C++,简称YC)浏览器—国内首款全新浏览器内核,YC浏览器内核(暂命名Ycweb)的研发始于2001年底,历时十年。几十万行的代码,没有借用任何开源的代码,做到了真正独立自主开发,是继世界主流四款浏览器内核之后的又一款全新浏览器内核。

YC浏览器主要依托于HTML5技术,是一个智能终端浏览器,其不仅体积小、运行速度高、拓展性强,还能够自由定制、安全性能较强;不同于其他的浏览器,YC浏览器可以实现对Trident、Gecko、Presto以及Webkit等四款内核浏览器的兼容,网页制作速度更高。此外,YC浏览器还支持最先进的网络技术,包含W3C标准、CSS3、HTML5、Canvas、WebM、ECMAScript 5以及JavaScript等。由此可见,YC浏览器具备超强的核心引擎,能够带动更多的便捷应用。

YC浏览器还允许第三方应用扩展,为厂商开发配备了接口,浏览器中专门内置了YC++编译器,能够实现实时编译。此外,使用者还可以直接在浏览器中开发插件、应用软件,甚至可以根据自己的需要定制特殊功能、根据需要开发出个性化的产品与服务,并将其直接传输至智能终端设备中。

(1)兼容性强。YC编译器支持C、C++、JavaScript、HTML、css、x86汇编、arm汇编等语言,支持32位和64位的Intel系列CPU,支持64位ARM系列CPU。

(2)应用性广。YC编译器可以高效地开发各种高性能的系统软件和应用软件(如操作系统,工业软件,行业软件等)。

(3)功能丰富。YC编译器比三大编译器具有更佳的模块管理功能,即不需要手动编写生成代码的脚本,它用HTML+css来生成界面,通过程序语句来实现自动编译,用C、C++和JavaScript来实现功能。

(4)适合教学。YC编译器具有详细分析源码逻辑关系的功能,可以让初学者轻松地学习软件技术。

(5)使用便捷。YC编译器提供几个编译函数,供三大编译器调用。因此,现有的软件产品可以用YC编译器生成其中的任意部分代码,而不必整个重新用YC编译器开发,从而使工作量减少到最小。

(6)开源性强。YC编译器开源了80%左右。如HTML解析器,JavaScript的Jit,c/c++的x86-32、x86-64、arm64等后端。用户可以修改优化这些代码,也可以编写新的CPU后端代码,使YC编译器支持新的CPU。

(7)可以自举。YC编译器可以自己编译自己。它的体积最小可裁剪到1.5M左右,加上HTML解析器不超过6M。生成同样质量的代码,编译速度超过三大编译器许多。编译所需要的内存也远远小于三大编译器。因此它非常适合与用户软件产品集成在一块,方便产品的直接用户进行二次开发和功能扩展。

(8)操作性好。YC编译器提供了一个集成开发环境(IDE),还提供一个开源的适用于各平台的代码编辑器,命名为YC编辑器。YC编译器的所有代码都用YC编辑器写成,用户可以非常容易地改写、扩展这个编辑器。

4.结语

YC编译器除了能够实现静态、动态语言的编译,还可以用于解析HTML超文本。本文通过对实际示例程序进行分析,发现其均能够经由YC编译器生成可独立执行文件,以便使用者学习、开发、使用。

参考文献:

[1]刘舒,彭凤,段晓悦,等.一种DHFR介导的可调控的腺嘌呤碱基编辑器的构建[J].现代生物医学进展,2021(23):4401-4406.

[2]甄仲强.云计算下的移动通信网络优化实践探究[J].工程建设与设计,2021(22):98-99+106.

[3]杨娜.新媒体集成发布平台富文本编辑器选型浅析[J].现代电视技术,2021(11):111-113.

猜你喜欢
优点分析
民航甚高频通信同频复用干扰分析
哲理漫画
分析:是谁要过节
回头潮
学生的优点单
神奇的优点表
12星座之优点大集合
基于均衡分析的我国房地产泡沫度分析
Units 13—14解题分析
食疗有何优点等