从品牌网站建设到网络营销策划,从策略到执行的一站式服务
go语言的编译器是用什么语言写的?相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。
看起来像是个“鸡生蛋,蛋生鸡”的问题,实际上不是的。
这个问题的关键在于理解,编译器本身就是一个程序,它的功能就是把源代码翻译为计算机可执行的程序。
对于 C/C++、Go、Rust 这样的本地语言,它们编译生成后的目标程序就是目标平台的本地可执行程序。比如你用这三种语言写个 Hello World,在 Windows 平台下用编译的结果一定是一个 .exe 文件,这些 .exe 文件里面没有包含任何源语言的信息。
Windows 运行它们的时候不知道,也不需要知道这些 .exe 文件编译之前是用什么语言写的,只需要把它们加载进内存,一句一句地执行指令就行了。
编译器程序也是这个道理。
假如你发明了一种新的语言 CNifeLang,首先需要用一种现有的语言写一个 CNifeLang 的编译器,比如说就用 Golang 吧;
你用 Golang 写了一个 CNifeLang 的编译器,能成功地把任何合法的 CNifeLang 源代码编译为等价的目标程序。
接着用 CNifeLang 写一个程序,它与你用 Golang 写的编译器功能完全相同,用 Golang 实现的编译器把这个程序编译完成,你就得到了一个用 CNifeLang 实现的 CNifeLang 编译器。
因为这个程序的功能与用 Golang 写的编译器完全相同,所以你完全可以用这个编译器去编译 CNifeLang,于是 CNifeLang 实现了 自举。
如果题主学习了编译原理这门课,就会发现编译与编程语言是没有关系的,它有一套完整而成熟的操作方法,你完全可以用任何一种图灵完备的语言去写任何一种形式语言的编译器,而且有严格的数学方法证明你写的编译器是正确的。
我们常见的编程语言基本都实现了自举,这是一种编程语言发展成熟的标志之一。因为编译器既是一个复杂的工程,也有一套成熟的评价体系,能写出成熟可用、效率有保证的本语言编译器,就能说明这种语言已经能拿来用了。
以上就是go语言的编译器的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图