软件是用编程软件编写的,那么编程软件又怎么来的?

2020年11月16日22:56:04 科技 1710

软件是用编程软件写成的,那么编程软件是怎么来的呢?

这个吧,我真的没办法一个个给你解释到底,不然你要是打破砂锅问到底,可能一顿火锅的功夫我也没办法给你说完。举个例子哈,IntelliJ IDEA和Eclipse都是Java的IDE,用这两个IDE可以写非常多的软件,比如Android Studio先后分别基于这两个软件,Android上所有的软件都是用这玩意儿开发的,但是这两个IDE本身也都是Java语言开发的,这两个IDE呢最初肯定是在Vim/Emacs+Java开发的,咱就先说到这里,不然要喋喋不休了。

我给大家提一个思路,大家按照这个思路可以自己去找自己感兴趣的问题。我给大家说一说Google实现Go 1.5自举、去除所有的C语言程序的过程,大家慢慢就明白了,基本上计算机技术都是这样迭代出来的,比如怎么先有了C语言、现有了Unix,又如何在这些基础上,诞生了Emacs、C++等众多新的软件和技术。

软件是用编程软件编写的,那么编程软件又怎么来的? - 天天要闻

事实上现在所有新的编程语言,基本上都会考虑在C语言的基础之上构建,Go语言也不例外,何况Go语言的重要设计者之一肯汤普森老爷子,还是C语言、Unix之父。Go语言发展的第一阶段,就是开发一个从C语言到Go语言的翻译器,将C语言编译器翻译成Go语言的,不过了Go语言核心设计团队的三位大神非常机智,他们最大程度避免了在Go语言编译器设计中,大量使用未来很难移植到Go语言的一些特性,比如宏、比如指针,这些都是C、C++留下的一些糟糕的设计,不符合现在的编程语言设计潮流。转换编译器源码树产生一个Go语言编译器,不过这时候还是典型C语言风格。

接下来,Google对编译器进行了优化,将编译器CPU、内存等硬件资源占用的问题解决了,并且引入了并行概念。为了改进编译器在消除边界检查等问题下的能力,同时在不依赖架构的node*s、prog*s之间引入一个中间表示。这些事情完成之后,Google就做了最后一步,用Go 1.5、也就是当时Go语言最新版本,用go/parser和go/types替换了编译器前端,至此Go语言实现了自举,并且获得了一个稳定高效的编译器实现。

软件是用编程软件编写的,那么编程软件又怎么来的? - 天天要闻

Go语言本身编程难度要比C更简单,这是因为Go语言跟很多高级语言一样,摒弃了指针、规避了内存泄漏、解决了缓冲区溢出,深度递归时栈的溢出,摒弃了宏这些定义。Go语言工具链对模块化、单元测试、以及性能分析支持更好,在修改内部API或重构时,应用自动化程序重构前景更加值得期待。

你看这就是Go语言从C语言写编译器 ,到最终实现Go语言完全自举的过程,当然大家都知道图灵完备的编程语言都可以实现自举,理论上符合图灵完备的编程语言都是这么发展的,C++就是这么发展的,满足这个条件的编程语言,你才能作为其他编程语言的基础。

软件是用编程软件编写的,那么编程软件又怎么来的? - 天天要闻

那么我们回到最初的问题上,编写软件的编程软件又是在什么环境下开发的呢?计算机技术发展至今,在机器语言的基础上,弄出了汇编语言,接着两位祖师爷弄了C语言和Unix系统,接着在这个基础上,又有人弄了Emacs、Vim、GCC,你看基本上现代计算机技术的所有根基技术就有了。

接着就是用C语言写各种操作系统,为了各种需求写各种编程语言,又根据各种需求开发各种集成开发环境,然后又根据各种应用需求用集成开发环境写其他应用软件,这就是一个完整的计算机技术发展进化流程。

编程软件也是,先有了机器语言,打孔时代创造和发明了汇编语言,汇编语言的基础上又有了B语言,然后B语言的基础上发明了C语言,C语言重写Unix,于是现代计算机的雏形也就有了。早期是一生一、机器语言生汇编,然后机器和汇编语言生C语言,到C语言时代就是一生万物、C语言生万物,现在就是多生万物。这就是计算机技术发展的过程。

软件是用编程软件编写的,那么编程软件又怎么来的? - 天天要闻

科技分类资讯推荐

早期Prime Day苹果热销好物 - 天天要闻

早期Prime Day苹果热销好物

#夏日生活打开季#快速导读Engadget 自 2004 年以来一直在消费科技评测领域处于领先地位,评测涵盖了苹果的笔记本电脑、智能手表、平板电脑和智能手机。虽然苹果产品性能卓越,但价格较高。
雷军:没有出红米汽车的打算 小米汽车计划2027年出海 - 天天要闻

雷军:没有出红米汽车的打算 小米汽车计划2027年出海

站长之家(ChinaZ.com)7月3日 消息:昨日晚间,小米董事长雷军开启返场直播活动,在直播过程中,雷军不仅详细介绍了小米YU7的订单及交付情况,还积极回应了网友们的诸多提问。其中,网友们颇为关注的小米是否会推出红米汽车这一问题,雷军明确表示:“我们确实是没有这样的打算。”值得一提的是,此前Redmi品牌总经理王腾也...
雷军自曝买Model Y:进行对标学习 希望小米汽车超越特斯拉 - 天天要闻

雷军自曝买Model Y:进行对标学习 希望小米汽车超越特斯拉

站长之家(ChinaZ.com)7月3日 消息:昨晚的直播中,雷军再次深情回顾了小米YU7开启大订后自己的内心感受,直言“我其实是愣住了”。当“3分钟20万订单”这一惊人数据摆在眼前,不仅让雷军本人感到意外,更足以震撼全球汽车产业。要知道,创造这一辉煌成绩的小米,进入汽车行业仅仅一年零三个月,这无疑创造了中国汽车工业的...
苹果iOS26 FaceTime可检测裸露行为 违规将紧急暂停通话 - 天天要闻

苹果iOS26 FaceTime可检测裸露行为 违规将紧急暂停通话

站长之家(ChinaZ.com)7月3日 消息:近日,苹果在最新推送的iOS26测试版系统中,对FaceTime功能进行了重要安全升级,新增实时内容检测机制以保障视频通话安全。据测试用户反馈,当系统通过AI算法识别到通话画面中出现裸露行为时,将立即暂停音视频传输,同时冻结通话画面并弹出警告窗口,要求用户终止不当行为。该技术源于...
雷军回应大定被质疑有水分:转单率不足YU7订单的15% - 天天要闻

雷军回应大定被质疑有水分:转单率不足YU7订单的15%

站长之家(ChinaZ.com)7月3日 消息:昨晚,雷军开启直播,围绕YU7和SU7的最新动态展开分享,并针对近期市场上的诸多争议话题作出回应。直播中,对于小米YU7“7天可退”原则引发的质疑,雷军解释称,这其实是行业内的普遍做法,车企通常会给予消费者3天的犹豫期。小米YU7在首销期将犹豫期设定为7天,是考虑到门店试驾安排可...
双卡有一个卡无服务是什么原因?教你一步一步找到问题 - 天天要闻

双卡有一个卡无服务是什么原因?教你一步一步找到问题

双卡有一个卡无服务是什么原因先判断:要么是手机卡的问题,要么是手机的问题!手机卡可能会失效,也可能是欠费太久被注销!而手机可能是sim卡槽问题,也可能是通信模块的问题!面对这样的问题先别慌,建议可以开启飞行模式,再次开启下,看看能否解决问题
中国移动与中兴通讯共建“联创+”自智网络开放实验室 - 天天要闻

中国移动与中兴通讯共建“联创+”自智网络开放实验室

近日,中国移动通信集团有限公司与中兴通讯股份有限公司在北京举行“联创+”自智网络开放实验室揭牌仪式。此举旨在贯彻国家科技创新驱动发展战略,加速自智网络高阶发展。中国移动副总经理李慧镝强调,通信产业是推动社会发展的重要力量。面对诸多挑战,中国移动提出“三零三自”自智网络理念,形成“五个以”方法体系,引...