首页编程语言编程语言的发展史,编程语言的发展史简述

编程语言的发展史,编程语言的发展史简述

cysgjjcysgjj时间2024-05-23 01:35:01分类编程语言浏览111
导读:CPU是如何识别代码的?他的工作原理是怎样的?CPU是如何识别代码的?他的工作原理是怎样的?首先谢谢邀请。其实,CPU也不知道我们敲得代码是什么意思。想要让一段代码编程可执行的程序,需要进行一系列的操作。关于CPU识别程序的问题,细讲起来是比较麻烦的一件事情,我们来分步骤逐一解释。在具体将这个问题之前,我们先来了解一下半导体的特性。顾……...
  1. CPU是如何识别代码的?他的工作原理是怎样的?

CPU是如何识别代码的?他的工作原理是怎样的?

首先谢谢邀请。

其实,CPU也不知道我们敲得代码是什么意思。想要让一段代码编程执行程序需要进行一系列的操作。

关于CPU识别程序的问题,细讲起来是比较麻烦的一件事情,我们来分步骤逐一解释。

编程语言的发展史,编程语言的发展史简述
图片来源网络,侵删)

在具体将这个问题之前,我们先来了解一下半导体的特性。

顾名思义,半导体就是一种介于导体和绝缘体中间的物质,它具有以下特性。

比如上图,如果电流是从A端流向C端,则电路通畅;反过来的话就不行了。大家可以把它理解一种单方向控制电流的设备

编程语言的发展史,编程语言的发展史简述
(图片来源网络,侵删)

电流只有两种情况:开路和闭路,将开路规定为0,闭路规定为1,这也就是我们所熟知的二进制。

根据这种特性,设计者们开发出了“与”,“或”,“非”,“异或”四种情况:

1+1=1; 1+0=0; 0+1=0; 0+0=0

编程语言的发展史,编程语言的发展史简述
(图片来源网络,侵删)

1+1=1; 1+0=1; 0+1=1; 0+0=0

我是电子及工控技术,我来回答这个问题。作为中央处理器的CPU是无法识别我们人类编写的程序代码的,而CPU所能够识别的“语言”其实很简单,就是由“1”和“0”组成的数字串。而由“1”和“0”组成的数字串对于我们人类来说“读懂”它的含义也会感觉到一脸的茫然。鉴于这种在人脑和电脑CPU两者无法直接“交流”的情况下,人类又一次发挥了他极具创造性的想法发明编译器编译器的出现搭起了人类大脑和电脑CPU的沟通的桥梁与纽带。

由于CPU是一个极为庞大的集成电路,为了说明问题我们用其中一个极为简单的数字处理电路为例来说明CPU是如何“认识”我们人类编写的代码的。我们知道CPU中包含着数量众多的绝缘栅晶体管(MO***ET),在这些众多的绝缘栅晶体管(MO***ET)中分为两类,一类是P沟道的绝缘栅晶体管、另一类是N沟道的绝缘栅晶体管。

对于P沟道的绝缘栅晶体管来说,当给它的输入端加一个“1”时(高电平)时该管子就会处于“关闭”状态,当给它的输入端加一个“0”时(低电平)时该管子就会处于“打开”状态。

对于N沟道的绝缘栅晶体管来说,当给它的输入端加一个“0”时(低电平)时该管子就会处于“关闭”状态,当给它的输入端加一个“1”时(高电平)时该管子就会处于“打开”状态。因此根据这些MOS管的特点在任何一种输入条件下PMOS和NMOS都不会处于同时打开的状态。因此在CPU中就有用这些MOS管组成的与非门电路和或非门电路。因此就可以执行逻辑运算所以说逻辑运算也是CPU的功能之一。

那么下一个问题是我们使用计算机语言编写的程序,比如常用的C语言或者汇编语言等等都有逻辑表达式或者逻辑指令,编写好一个逻辑运算的程序后要通过刚才讲的编译器对源程序进行编译生成CPU能够识别的“语言”(二进制代码)。又由于这个机器语言(二进制代码)与我们编写的逻辑运算程序是一一对应的,因此只要把这段代码“灌进”CPU的内部他就会按照我们人类的要求运作起来了,从而也就能够“认识”我们人类所写的代码了。

提前备注:回答比较硬核,我会尽量软化,但想了解知识还是需要耐心。CPU内传输信号有两种:高电压和低电压,分别代表数字信号“1”和“0”,因此CPU唯一能理解(问题中的“认识”)的语言就是由“1”和“0”写成的机器语言。

由于程序(代码)存储在电脑硬盘中时,也是“1”和“0”的形式是否就意味着,只要程序存到硬盘中,CPU就能认识呢?

答案是CPU仍然看不懂这些程序,因为以“1”和“0”形式存储的程序和以“1”和“0”写成的语言完全是两回事,两者的区别类似于汉语书和英语书都用纸和油墨印制,但依然是两种不同的语言,不会英语的依然看不懂英语书。

要让CPU能看懂代码,要做相当多的工作。

现在的程序都是由C++Java高级语言写成,这些语言是为方便人类编程发明的,不是为方便电脑执行而设计。

说到这里,需要进一步说说机器语言和高级语言的差别。机器语言的最大特点是面向计算硬件编程,简单说就是程序员需要通晓计算机硬件知识,写的程序要真实表示数据是如何被计算机操纵的。对程序员来说这就比较头大,毕竟上得了“厅堂”下得了“厨房”只有少数大神能做到,加上机器语言纯用“0”和“1”序列组成,既对视力是一种摧残,也是对编程趣味的扼杀。

于是,有一帮人开始琢磨了:能不能将计算机硬件从编程中分离出来,让硬件知识小白也能编程?

最先开窍的是蓝色巨人IBM,它在其System/360计算机中引入了ISA(Instruction Set Architecture)概念,将编程所需要了解的硬件信息从硬件中抽象出来,这样编程人员就可以面向ISA编程。由于ISA是用来描述编程时用到的抽象机器(不是具体的电脑CPU),包括了一套指令集和一些寄存器,因此,程序员只要知道ISA,不需要了解具体的硬件知识(每一两年硬件都会换新),就可以编写程序,在ISA相同的电脑上运行

这样一来,程序员不必了解过于[_a***_]的计算机硬件知识,不需要下得了厅堂,可以专心在“厨房”烹调程序大餐。

由此也可以看出,程序员很多都是不了解计算机硬件的,所以妹子们不要指望自己的程序员男朋友给你DIY电脑,或者电脑坏了,他能给你省下一笔修理费。他说不会修,那就是真的不会修

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/13602.html

程序语言代码
蓝创新科技 科技和创新的作文800字