您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

为什么C语言编译器可以用C语言写? {源码交易平台}

  • 时间:2022-08-16 16:44 编辑: 来源: 阅读:276
  • 扫一扫,手机访问
摘要:为什么C语言编译器可以用C语言写? {源码交易平台}
所谓C语言编译器就是读取编程好的文件,比如。c和。h文件,分析其内容,按照C语言的规则转换成cpu可以执行的二进制文件。 其本质在于阅读、分析、解决文献。 所有这些操作都可以用C语言实现。 所以用C语言作为C语言的编译器是完全可行的。 但是历史上第一个C语言的编译器一定不是用C语言写的,因为没有编译器,就不可能把C语言转换成可执行文件。 只要你有其他语言的第一版编译器,你就可以用C语言编写编译器。 那么世界上第一个C语言编译器是怎么写出来的呢?让我们回顾一下C语言的历史:1970年,Tomphson和Ritchie在BCPL(一种解释语言)的基础上开发了B语言,1973年,他们在B语言的基础上成功开发了现在的C语言。 在C语言被用作系统编程语言之前,Tomphson已经用B语言编写了操作系统。 可见,在C语言实现之前,B语言已经可以投入使用了。 关于如何快速学习C/C++可以添加边肖的C/C++学习企鹅群:【870+963+251】不管你是小白还是大牛,我欢迎边肖,不时参考干货,欢迎初学者和高级朋友。 每晚20:00会有直播给大家展示C/C++游戏编程的学习知识和路线,小组会不定期升级最新教程和学习方法。最后,祝所有程序员都能登上人生巅峰,让第一个C语言编译器的原型能用B语言或者B语言和PDP汇编语言的混合语言编写。 其实B语言的执行效率是比较低的,但是如果用汇编语言写,不仅工作量巨大,而且汇编语言的可读性极差,很容易出错!让我们感受一下上图的巨大差异!!!为了克服这个困难,早期的C语言编译器采取了一种比较棘手的方法:首先用汇编语言编写一个C语言编译器的子集,然后通过这个子集递归完成完整的C语言编译器。 过程大致如下:首先创建一个只有C语言最基本功能的子集,称之为C0语言。C0语言简单到可以直接用汇编语言编写C0编译器。 依托C0已有的功能,设计了比C0更复杂但仍不完整的C语言的另一个子集——C1语言,其中C0属于C1,C1属于C。用C0开发了C1语言的编译器。 在C1的基础上,设计了C语言的另一个子集——C2。C2语言比C1更复杂,但它仍然不是一种完整的C语言。所以,直到CN,CN足够强大,才足以开发一个完整的C语言编译器。 至于这里的N的个数,就看你的目标语言(这里是C语言)的复杂程度和程序员的编程能力了。 那么这种大胆的子集简化方法的理论基础是什么呢?首先,一个细节的概念,“自编译” 对于一些有明显自举的强类型编程语言(不知道哪个ghost给它们起的名字),可以通过有限次数的递归,用它们的有限子集来表达自己(所谓强类型语言,是指程序中的每个变量都要经过广告才能使用,比如C语言,而有些脚本语言根本没有类型,比如python。 诸如C、Pascal、Ada等语言。可以自编。至于为什么可以自编译,请参考清华大学出版社的编译原理,实现了一个Pascal子集的编译器。 总之,计算机科学家已经证实,通过上述方法,C语言理论上可以实现一个完整的编译器。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部