门窗网

当前位置:首页 > 科技  >  正文

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

用一句话回答就是:软件是用编程软件编的,那么编程软件同样是用编程软件编的。

编程软件有很多功能,包括编辑、编译、调试、解释、测试等等。为简单起见,我们这里只讨论编译功能。不严格地说,编译可以理解为是将人类能看懂的程序代码翻译成机器能看懂能执行的机器语言。如果是Windows上写C程序,那编译器的作用就是将C程序翻译成exe后缀的二进制文件(也可能是dll,这里不去深究)。

那么编译器本身也是exe,也是机器语言,它又是谁编译出来的呢?不失一般性,我们假设有一个编写C语言的编程软件,或者就直接叫编译器,它的名字是cl。有一个很好玩的事实,编译器可以自己编译自己。说的具体点,cl3.0版本可以用cl2.0版本编译生成出来,cl2.0用cl1.0编译出来。当然前提是假设这个cl2.0以上都是用C语言写的源程序。所以说有了第一个cl版本,1.0版本,后面的都不是事。

现在问题来了,第一个cl.exe怎么来的呢?有很多可能。说不定当时市面上已经有了另一款C语言编译器,而第一个cl如果是用C语言开发的,它当然就可以用那款C编译器编译出来。

而如果假设cl本身就是世界上第一个C语言编译器,怎么破?那么它肯定不可能也是用C语言写的,因为第一个嘛,还没有谁能编译C语言程序。第一个C语言编译器可以用汇编,或者B语言,或者其他的某种已经有编译器的语言编译出来。至少用汇编是绝对没有问题的。

接着思考,第一个汇编程序怎么来的?那就没有办法了,靠手写了,人工写机器语言。而在那个时候,程序是非常短小的,用人工写也不会是太复杂。汇编程序就是把汇编语言翻译成机器语言的程序。比方说一句汇编指令,叫做mov ax,bx,翻译成机器语言就是1000100111011000。简单吧。基本上接近一一对应,至于如何对应,就要查CPU厂商的硬件手册。比如因特尔386,比如酷睿i7。只要手工写出一段用二进制形式的机器语言,能实现将汇编语言翻译成等价的机器语言,就搞定了。当然这不是一两天能搞定的,但是一旦写好,后面的事就简单了。有了第一个汇编程序,就能汇编出第一个C语言编译器,有了第一个C语言编译器,就能编译出第二个第三个其他的C语言编译器。有了C语言编译器,还可以编译出其他语言,比如JAVA、C#的编译器。

首先要明确几个概念,计算机语言、软件和开发平台,计算机语言是软件开发的基础,通过计算机语言才能实现和计算机硬件的通讯,实现对硬件的操作,一般计算机语言分为低级语言和高级语言,低级语言如:机器语言、汇编语言,可以直接操作硬件,速度快,但是编写和理解困难;高级语言如:C、C 、JAVA等,需要通过编译转换为机器语言实现对硬件操作,速度慢,但是更便于理解。

软件是通过计算机语言开发的,通过对计算机硬件的操作而实现某些功能的计算机程序的集合体,如:手机APP、PC端的应用、网站,甚至操作系统等都是软件。

一般所说的编程软件都是指的开发平台,也被称为IDE(集成开发环境),它的主要作用是通过集成一些开发常用的环境或者工具来提升软件开发的效率,如JAVA开发必须的JDK等。

所以说软件的基础是计算机语言,通过计算机语言结合一系列的算法从而实现对计算机硬件的操作,实现某些功能,而开发平台只是将代码的编辑过程进行了简化,使其更符合开发人员的思维逻辑。开发平台本身也是一个软件,也是通过某种计算机语言来写的,并且很多开发平台都是支持多语言的,如eclipse平台,除了支持JAVA开发,还支持C/C 、PHP、Python等,甚至可以开发eclipse自身的插件。

我来回答吧!正好我硬件软件水平都达到了专家水平。相信看完我解释后大家都明白了。

软件=(程序)=(算法 自动控制);编程软件是编写记录生成软件的工具。

如果把软件当做一个产品比如刀这个产品,那么编程软件就是生产这把刀锤子和炉具,最开始生产刀的工具很原始,所以第一把刀是石头的,人们用这把刀除了杀野兽,也可以挖土,从而让人们有了第一个炼铁的土炉。从这个土炉人们生产出了第一把青铜铁刀。。。。

软件和编程软件也是一样,最开始人们生产音乐盒,天文观测台都是靠木匠师傅的工具来制作具有简单程序的音乐盒及时钟。。。。随着科技的发展出现了半导体,人们开始用半导体搭建一些简单功能程序的产品,比如打孔机,手摇计算器等,当然那个时代编程软件还不是自动的还是要靠人们手工制作,程序过程记录在纸上,保存这些程序需要大量的纸张和房间。

后来出现了集成电路,集成电路出现了有记忆功能的存储器,这就代替了纸张把程序存在了半导体内,后来出现了硬盘,硬盘就更能存储更多程序数据了。给予硬件的发展,编程工具慢慢就从图纸手绘转入了电脑绘制了,电脑里也就开始出现了简单的编译器。

原始的软件编程是,人们在text里按规则写好程序,然后通过一个asm编译器将文本转译成机器码,这个机器码再通过下载工具下载到存储器里或者卡带里,然后CPU读取卡带开始自动运行程序,人们为了开发更高级的更自动的软件,又开发出功能更多的编程软件,在编程软件里可以写代码,编译等而不需要像最初那样在text里写,并且编程软件有纠错功能,text是没有的.....

所以软件可以促进编程软件的升级,编程软件又可以开发出更高级智能的软件。编程软件和软件互相促进从而达到了今天的水平。后面所谓的AI就是让拥有高度智能软件的机器人拥有自我编程能力,一旦机器人拥有自我编程能力那么机器人将能脱离人类自我发展。

如果还有不明白软件和编程软件的人可以私我。抬杠的请绕道,没时间抬杠。

假如你经历过纸带时代,z80等计算机原理必用的单板机,就应该搞得明白编程软件怎么来的。

简单地说是从拨开关开始一步一步发展来的。

首先,计算机硬件只认机器码,就是一个体系的计算机只认它硬编好的机器码——指令,例如定义:01011001=寄存器相加,后面跟两个表示寄存器的数就行……;一堆不同的指令组成指令集,例如x86,arm什么的。硬件厂商为了写程序的方便,把这样机器码用人好理解的简写词来表示它,叫助记符,例如上面这个可以用add表示,例如:add r5, r6 对应的机器码可能是:01011001 00010101 00010110,你都记住指令集了,原理上通过几个开关就可以把指令输入给计算机,但……人总是很懒的,不停开关总是很麻烦很枯燥很容易出错,而且计算机运行再慢也比你按开关快,开始时硬件还巨贵,所以人们想到输指令和录入分离,便宜简单的方法就是纸带机,“编程序”的可以通过打孔机在纸带上打洞洞表示一串串指令及数据,打好后通过纸带机读入到计算机执行,计算结果再通过打孔机打到纸带上,程序猿判读结果……。

初期的计算机基本就是这样工作的,会编这些机器码的自然就是“编码”了,就是现在说的程序员。

渐渐地,人们在实际工作中不断开发出各种外围设备,例如键盘,显示器,磁带机,磁盘机,打印机等。工具的进步又带动编码方式的进步,编的码越来越复杂,这样就不能让人一个机器码一个机器码地往里敲,计算机做重复的事情毕竟快嘛,固定的东西不犯错,所以就有人用纸带机什么的编出一些可以把助记符序列转成机器码的程序,可以理解成汇编语言编译程序,有了这个东西就可以用汇编写程序,再由编译程序翻译成机器码,编程语言就从简单到复杂不断迭代发展,例如盖茨在最早时就是用纸带机写出个人机的basic解释器的。

现在不少人总认为汇编语言是由机器语言写的,所谓“中级”语言是由汇编写的,“高级”语言又是由“中级”语言写的……其实这是乌有的事,用任何一种语言都可以写出其它语言的翻译器,没错,任何语言都行,只要你够牛,用解释型basic写一个c编译器没任何问题,同样,你脑子有够用的话用机器码也可以写一个。

现在的巨无霸级“开发系统”,没十G八G都不好意思出门,无他,这都是几十年积累来的。

这你得看一下计算机发展史,首先是出现了机械计算机,齿轮的,十进一再回弹那种,但是不够用啊,只有加减,于是一帮小二缺想法把乘除也做里面,这家伙,做出来一个计算机跟公交车那么大,但是还不够,算不了公式,这时候,纸带卡出现了。有人就通过纸带卡卡住一些齿轮啊什么的,能使机器做想要的运算法则。

这时候,有个哥们发现了二极管,卧槽,好使,用高端的机械计算机原理用二极管造了个电子计算机,但是怎么控制运算,就是没纸带卡了咋办....这时候01出现了(主要是二极管只能是开或者关,就俩方向。说01也好,说57也好,找俩代表)用基础的01做纸带卡,给它个复杂的公式,算得更高端一些。

其实就是在控制二极管,信号输入后哪些二极管开,哪些二极管关,电流到最后给了个结果。但是公式越来越多....不好办呐,全是卡,这换卡我得累死。于是CPU出来了,写死的,也可理解为硬件电路就只能这样,然后配合硬件电路有一个指令集,每个CPU指令集肯定不一样,和硬件二极管开关有直接关系。也就是你见过的dir什么的,当电路碰到比如说look这个词其实碰到了代表look的一堆010100101010,但是电流通过硬件读出的010010100101001这些得到的结果就是look,当然多数你没见过,因为软件都在指令集上层,一般也看不到。

你说的编程软件,就是写一些字母以及背后的01010010100让二极管电子计算机去计算得到一个结果,基本都能直接调用到指令集,也就是公式,固定了。你就在这么一个框架内用它给你的不多的公式来编纂出你想要的结果的公式。

偶这么讲不知道你听懂没听懂...

题主可能搞混了概念。软件确切地说是编程语言编写完成。只不过在编程代码的时候,为了方便高效,我们会使用ide或编辑器等辅助工具,这些ide和编辑器应该就是题主理解的编程软件。所以,题主这个问题应该是想问“ide或编辑器是用什么开发的?”

常用的ide有microsoft visual studio、eclipse等,前者主要是c ,后者主要是java。但是,事实上随着go等新生态语言的蓬勃发展,和手机、可穿戴设备的发展,现在ide的发展趋势是跨平台,比如flutter、react native、weex等开发框架,而这些开发框架往往不是以一种语言为主开发,c/c 、js(vue、react、node)、typescript等的运用都较为普遍。

总结下来,就是软件借助ide、编辑器等使用编程语言开发,而ide、编辑器、开发框架的实现目前通常由多种编程语言共同完成。

在这美好的一天很荣幸为大家解答这个问题,让我们一起走进这个问题,现在让我们一起探讨一下。

以下我为大家分享,我个人对这个问题的看法与想法,希望我的分享能给大家带来帮助,也希望大家能够喜欢我的分享。

我认为程序的本质是给定输入,用指定逻辑给出输出。所以用basic写汇编编译器,JavaScript写c的编程工具完全做得到。c的编译器是c写的,go的编译器是go写的,Java的编译器是Java写的。

编程语言首先需要编译器把代码翻译成机器语言。而第一个编译器是慢慢迭代出来的,就是开始写一个简单的功能,然后逐步加强,直到完成一个完整的编译器。最早的C语言编译器就是这样写出来的。

其次,计算机语言、软件和开发平台,计算机语言是软件开发的基础,通过计算机语言才能实现和计算机硬件的通讯,实现对硬件的操作,一般计算机语言分为低级语言和高级语言,低级语言如:机器语言、汇编语言,可以直接操作硬件,速度快,但是编写和理解困难;高级语言如:C、C 、JAVA等,需要通过编译转换为机器语言实现对硬件操作,速度慢,但是更便于理解。

软件是通过计算机语言开发的,通过对计算机硬件的操作而实现某些功能的计算机程序的集合体,如:手机APP、PC端的应用、网站,甚至操作系统等都是软件。

一般所说的编程软件都是指的开发平台,也被称为IDE(集成开发环境),它的主要作用是通过集成一些开发常用的环境或者工具来提升软件开发的效率,如JAVA开发必须的JDK等。

所以说软件的基础是计算机语言,通过计算机语言结合一系列的算法从而实现对计算机硬件的操作,实现某些功能,而开发平台只是将代码的编辑过程进行了简化,使其更符合开发人员的思维逻辑。开发平台本身也是一个软件,也是通过某种计算机语言来写的,并且很多开发平台都是支持多语言的,如eclipse平台,除了支持JAVA开发,还支持C/C 、PHP、Python等,甚至可以开发eclipse自身的插件。

所以总结一下,编程软件通过硬件的支持,创造了我们使用的程序和其他的编程软件。

在以上的分享关于这个问题的解答都是个人的意见与建议,我希望我分享的这个问题的解答能够帮助到大家。

在这里同时也希望大家能够喜欢我的分享,大家如果有更好的关于这个问题的解答,还望分享评论出来共同讨论这话题。

我最后在这里,祝大家每天开开心心工作快快乐乐生活,健康生活每一天,家和万事兴,年年发大财,生意兴隆,谢谢!

不扯远了,上面很多人扯到了计算机发展史,这个可就扯远了,比较简单的说法,编程软件同样可以是编程软件做出来,你只要算法清楚用V B也可以编出解释器乃至编译器来,但业界从程序执行效率和底层访问便利性上来决策,一般仍用C语言及汇编来制作编程软件为多

孩子是父母生的,那父母又是谁生的?

很简单啊,搞计算机的人研究出来的,也可能是花钱买来的。不要低估钱的力量。——我又不是研究电脑的,你们以为我真知道啊?

上一篇:为何有人说刘伯温是个军事家,天文学家?
下一篇:怎样可以帮助更快有效的怀上宝宝?

猜你喜欢


受不得批评的孩子怎么教育 孩子接受不了批评怎么办?

受不得批评的孩子怎么教育 孩子接受不了批评怎么办?

孩子接受不了批评怎么办?如果确认批评的内容没问题,那么孩子听不得批评,多半是批评的方式有问题。对于幼小或自尊心过于柔弱的孩子,显然经受不住直接批评的打击,只有鼓励式的引导、激励才能达到让孩子接受意见并...

育儿 2020-10-29 15:48:19 亲子成长,育儿,早期教育 440
人的本质究竟是什么?

人的本质究竟是什么?

要弄清楚人的本质是什么?首先必须弄清楚本质是什么的问题。本质是指事物本身所固有的、决定事物的性质、面貌和发展的根本属性。那么人的本质究竟是什么呢?人对自身本质的认识,是建立在人的本质深化发展的基础上。人的本质的形成、深化和发展是一个漫长的自然史过程和无限发展的社会历史过程。人首先...

科技 2020-10-15 09:30:31 本质 920
在今日头条怎么赚到钱?

在今日头条怎么赚到钱?

(1)你的注册一个头条账号,然后认证。(2)根据系统给你的要求,创作属于自己的原创作品。作品质量需要有保障,只有源源不断的高质量作品,你的收益肯定不低,赚钱就自然而然了!...

职场 2020-10-16 14:34:06 今日头条,赚到 938
领导压制下属出头 如果领导处处压制你,你会怎样处理?

领导压制下属出头 如果领导处处压制你,你会怎样处理?

领导利用职权压制我们怎么办?如果明明白白这个领导就是欺压员工,那么员工也要奋起反抗,毕竟把自己弄的心理抑郁了也不会有任何人心疼你。当然了,如果你能够找到更好的去处就离开这个让人厌烦的领导,毕竟工作一方...

职场 2020-10-25 11:42:38 领导,老板,能力,员工,公司 755
洗头掉头发严重是什么原因?

洗头掉头发严重是什么原因?

首先,根据您提出的问题,如果您的掉发数量在50-100根以内,属于正常掉发,超过这个根数建议您可以做一下毛囊检测,看一下毛囊生长情况。毛囊状况其次,掉头发的原因与营养有关,与精神紧张或突然的精神刺激也有很大关系,可查血微量元素。改善建议:患者可以适当补充优质蛋白质,B族维生素及维...

健康 2020-10-17 11:32:09 掉头发,洗头,原因,健康 848
我儿子985机械工程,能进铁路局,进去怎么样?

我儿子985机械工程,能进铁路局,进去怎么样?

985院校的毕业生,进入铁路系统还是有点可惜了,如果有更好的选择,建议另外换一个单位试试看。之所以不建议你的儿子去铁路局,主要原因有以下几点:第一,铁路系统的待遇总体不尽如人意。这一点,估计是很多铁路职工最为诟病的。原来在计划经济时代,铁路系统的职工,其福利待遇那是相当的好,但是...

职场 2020-10-18 15:18:21 机械工程,铁路局,985,儿子,职场 190
你觉得2017年以后会有多少程序员失业?

你觉得2017年以后会有多少程序员失业?

首先,会有一部分程序员失业是肯定的,但不会看的太衰。优胜劣汰是社会的本能,程序员逃脱不了,企业公司也是同样。那些一股脑跟风创业的互联网公司注定会被淘汰,技术或者人品差的程序员也会。不仅仅是互联网行业,房地产经过大浪潮之后,慢慢也会平稳下来,但如果说以前做房地产开发的就完全失业也是...

职场 2020-10-19 10:15:02 程序员,2017年,失业,多少,互联网,互联网金融,职场,科技 575
有些人遇到事情就找媒体曝光,电视台真的就会无偿帮助你吗?

有些人遇到事情就找媒体曝光,电视台真的就会无偿帮助你吗?

有一亲戚曾经因为讨薪求助过本地某知名报社,愿意分享这一经历。第一次拨打报社电话求助,报社:事情我们知道了,我看看有没有记者愿意帮助你。之后连续三天没有回音。三天后再次拨打报社电话,希望报社能够帮忙自己把应得的工资拿回来。报社:我再跟他们说一下。第二天,亲戚接到了报社一名记者的电话...

职场 2020-10-17 11:32:07 无偿,有些人,电视台,曝光 737
男朋友压力大,说我们不合适,我该怎么办?

男朋友压力大,说我们不合适,我该怎么办?

男朋友压力大,无外乎两个方面:一是经济条件的压力,房子,车子,票子,很可能他的家境并不宽裕,而且老家在农村,父母也在农村,负担较重,他不但无法啃老,还要独自承担,自感无力应对,所以泄气了……如果你真爱他,就应鼓励他,两个人共同打拚,为爱情共筑暖巢吧。二是门第的差距,你是家庭条件优...

职场 2020-10-20 08:57:42 合适,男朋友,压力,朋友 208
孕期能吃复合维生素吗?

孕期能吃复合维生素吗?

女性在孕期可以吃复合维生素,但不是每个孕妇都需要补充复合维生素,食物中含有很多种维生素,一般不需要刻意去补充复合维生素。建议去医院妇产科和营养科,做一个营养评估,如果需要补充,可以在医生指导下吃复合维生素。如果不需要的话,建议平时补充富含维生素的食物,如:大白菜、油麦菜、菜花、西...

健康 2020-09-29 08:32:45 维生素,孕期,备孕,复合 356