大家好,今天小编关注到一个比较有意思的话题,就是关于编程翻译性语言有哪些种类的问题,于是小编就整理了3个相关介绍编程翻译性语言有哪些种类的解答,让我们一起看看吧。
- 计算机语言分为几代?具体都有什么特征?我们平时常见的语言都属于哪代?
- 芯片都是数字电路,编程语言要用到英语,它是怎么识别的,求解?
- 有人说C、C++、java、python编程语言都是高级语言,为什么只有C和C++可以编写单片机程序?
计算机语言分为几代?具体都有什么特征?我们平时常见的语言都属于哪代?
计算机语言的发展大致经过五代。
第一代也称机器语言,它将计算机指令中的操作码和操作数均以二进制代码表示,是计算机能直接识别和执行的语言。机器语言的优点是无需翻译,占用内存少、执行速度快。缺点是随机而异,通用性差,而且因指令和数据都是二进制代码形式,难于阅读和记忆,编码工作量大,难以维护。
第二代语言也叫汇编语言,是用助记符号来表示机器指令的符号指令的符号语言。优点是比机器语言易记。缺点同机器上运行,程序简短易读,便于维护,极大地提高了程序设计的效率和可靠性。
第四代语言又叫面向应用的语言。主要特点是:非过程性、***用图形窗口和人机对话形式、基于数据库和“面向对象”技术,易编程、易理解、易使用、易维护。
第五代语言也称智能化语言。它主要使用在人工智能领域,帮助人们编写推理、演绎程序。
芯片都是数字电路,编程语言要用到英语,它是怎么识别的,求解?
自然语言按特定的语法规则转换为编程语言,编程语言通过编译器或解释器按一定规则转换为机器语言,也就是0和1二进制码,二进制码再按一定规则转换为高电平和低电平信号,即可被电子元件识别
要回答这个问题我们要明确芯片的种类有许多种,并不是所有的芯片都是数字电路,也有些芯片是模拟电路芯片,比如各种运放芯片、功放芯片等这些就属于模拟电路类型的芯片;那么还有相当部分的芯片属于数字类型的芯片,在这些数字类型的芯片当中又可分为不可编程的芯片和可编程的芯片!下面我们着重讲一下数字类型的芯片吧!
数字类型的芯片有一种叫数字功能芯片,它在电路中可以实现一定的功能,比如译码器74LS138、各种编码器以及各种触发器等,这些芯片只识别高电平和低电平也就是所谓的“1”和“0”。这种芯片不需要编写程序,它们都划规到数字逻缉芯片当中,它们也没有记忆功能,只要输入“1”或者“0”以及“1”和“0”的组合,其输出就会有相应的高电平“1”和低电平“0”。当输入高低电平消失时其输出也就没有了!
另一类则是通过编程才能使用的数字芯片,我们一般称它们为嵌入式芯片,比如各种单片机芯片、FPGA(可编程的逻辑阵列)芯片等,这类芯片需要通过编写程序,一般用汇编语言或者C语言,再或者用硬件描述语言(VHDL)等,这些语言数字芯片是不识别的,而我们人类对这些英文编写的语言能读懂。为了使这些可编程的芯片能读懂这些语言,我们要通过一种软件把它编译成芯片能读懂的是由“0”和“1”组成的机器语言,我们称这种程序叫目标程序,它是由一系列“0”和“1”组成的。这种语言芯片能读懂,我们人类很难懂!
就是我对这个问题的解答,欢迎朋友们讨论这个话题,敬请观注电子及工控技术!
大致的思路就是:编程语言转化为二进制机器码,再把二进制机器码转化为高低电平输入给芯片电路。这个问题是计算机原理的问题,编程语言如何被硬件芯片执行?我们很多时候,听过计算机只认识“0”和“1”,除了0和1之外的信息,又是如何被计算机理解执行的呢?聊到这我想到了《易经》“无极生太极,太极生两仪”,“一生二、二生三,三生万物”。挺有意思,0和1可以表示整个世界,和几千年前我们中国哲学思想完全吻合。
如何做到呢?
1、编译。编译器把高级程序语言(英语)编译为二进制可执行文件,存储到[_a***_]上。
2、加载。操作系统通过相应的机制,把二进制加载到内存中。
3、运行。CPU执行指令。
好像说的和电路还是没有什么关系呀?是的,我们没有讲明白这一点。“0”和“1”如何变成高低电平?
“0”和“1”如何变成高低电平?
我们回到打孔机时代,你的01010代码,需要专职的程序录入员将0和1用打孔和不打孔的方法,转换为纸条上的一串孔洞。然后有孔的程序纸通过光照区,有孔无孔转换为光点和暗点,再通过光敏元件,转化为高低电平。以后机器中就再也不会出现0和1,只有高低电平了。
可以说,录入员之前是一个世界,高级语言也好,汇编语言也好,机器代码也好,都是0101的二进制数字世界;光敏传感器之后,都是高低电平的世界。录入员+光电检测完成了这种转换。
现在的计算机,和打孔机时代的区别,只不过是输入变成键盘了,按键接通和断开代替了光线的有和无,在每个键下面的识别电路以后,就完全是高低电平的时代了,010已经不存在了啊。01在哪里?在我们的头脑中,在程序纸上,在键盘表面,在显示器上,就是不在键盘以下的空间中。
靠的是数学思维,抽象,推理,建模!现实中并不存在,是靠人的智慧对自然的理解,抽象出数字,抽象出图形,电的理解和应用也靠数学,数字电路中也没有0和1,是把高低电平抽象成0和1
数字电路的世界只有“0”和“1”
在数字电路中是用二进制来执行指令和处理数据的,所以数字电路的世界只有“0”和“1”。当然,不同长度的“0”和“1”组合起来就可以得到不同的指令或者数据了。
处理器是怎么识别编程语言的?
其实处理器是不认识英文的编程语言的,它只认识“0”和“1”。但如果用“0”和“1”来编写程序,对于人类来说是非常困难的,效率也相当的低,可读性也非常差。于是聪明的人们发明了汇编语言。
比如:“MOV”代表数据传递;“ADD”代表加运算;“JMP”代表跳转等。当然这些用汇编语言编写的程序是不能被处理器直接识别的。需要通过编译器,把我们编写的程序“翻译”为处理器认识的二制进机器码。
编程语言为什么要用英语?
其实汇编语言只是一种符号语言,用于帮助程序员代替机器指令和操作码。不同的机器,不同的芯片都有着不同的机器语言和指令集,用汇编语言编写的程序难以在不同平台中移植。
随着科技的进步,电子产品的功能越来越强大,芯片的处理速度也越来越快,我们编写的程序也越来越复杂了。汇编语言这种低级的语言已经难以满足我们的编程需求,也令程序员大吐苦水。于是聪明的人们又发明了高级的编程语言,比如:C,C++,java,python,PHP,VB等等。高级语言可以对多条指令进行整合,使得编程更为简单,有着较强的操作性。比如用“if”进行判断,用"while"作为循环。
当然高级语言编写出来的程序一样需要翻译为二进制的机器码才可以被处理器识别和执行。
因为目前所有的编程语言都是由外国人发明的,所以基本上都使用了英文。以后中国人发明一种用汉语进行编程的语言也不是不可能的。我们可以拭目以待哦!
如果发明一种汉语进行编程的语言,你会学习吗?不妨留言讨论一下哦!
欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习
- 记得点赞和评论哦!非常感谢!
有人说C、C++、JAVA、Python编程语言都是高级语言,为什么只有C和C++可以编写单片机程序?
感谢邀请!
C、C++、j***a、python都可以写单片机程序,只有C、C++写单片机程序的日子早已经过去了,现在j***a和python也可以编写单片机程序了。
C/C++出来的早,早起有很多来写这两者的编译器,我们都知道编译器是可以把C/C++直接编译为二进制进气语言,也就可以编写单片机程序了。
J***A/Python是解释型的语言,什么意思呢,这两种语言并不是直接编译成二进制的机器语言,而是通过解释器(通常称为虚拟机)在运行时来翻译成机器语言执行。那么如果要完成j***a和python编写单片机程序,就必须把解释器搬到单片机上,这样才能实现j***a和python在单片机上运行。
可喜的是已经有人完成了这些工作,在开源网站github上可以找到这些项目。
microPython 是python在单片机上的一直项目,很多单片机都已经适配
NanoVM 是j***a在***R单片机上的移植
单片机没有操作系统,手工直接把机器码写到内存里执行。因此,Python之类使用实时编译的语言无法在单片机上执行。按照执行方式可分成三类:
- 编译方式 将源代码翻译成机器码后执行的方式。这种方式执行速度快,但对操作系统有依存性。
- 混合方式 将源代码翻译成中间码(如,字节码)后,在有各OS上的虚拟机翻译成其他语言或命令执行。或者,使用实时编译(JIT)转换成机器码后执行。
- 解释方式 将源代码逐行翻译成其他语言或命令后,加载该语言或命令的机器码并执行相应的处理。该方式执行速度慢,但编码灵活,不用编译直接执行比较方便。
解释方式,混合方式都需要在操作系统中配置执行环境,不能在单片机上执行。只有编译方式的程序能在单片机上运行。
1.非常重要的一点,就是***限制。单片机,全称为单片微型计算机,是一种处理器芯片,其原理上和我们手机的和电脑处理器芯片是一样的。只是这是一种针对比较小的电路系统所制造的,出于成本考虑,很多单片机只有几K的ROM和不到1K的RAM,在这么小的平台上运行其它语言是不太实际的事情。虽然现在的单片机***已经扩大了很多,但是由于其特定的使用环境,实在是没有必要为了运行其它高级语言而浪费***。如果你真有这样的需求,你可以考虑其它更高级的处理器,厂家并没必要为了这样的需求而开发一款单片机。
2.C/C++
的特性决定。C/C++已经很好地满总了嵌入式程序开发,同时还具备其它语言所没有的特性——可以使用指针,直接对地址操作,这非常符合底层硬件的使用环境。到此,以上就是小编对于编程翻译性语言有哪些种类的问题就介绍到这了,希望介绍关于编程翻译性语言有哪些种类的3点解答对大家有用。