C语言中的各种语句是怎么编出来的

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:05:44
我已经学过C语言了;但是我有一个问题想不通;那就是C语言的语句是怎么编出来的;我的意思是;打个比方说;它最初是怎么使电脑认识FOR语句;WHILE语句等;这些语句最初又是通过什么形式使电脑来识别的;当能、现在我们知道编程序;知道各个语句是在用汇编语言告诉电脑我们想干什么;但我就想不通;最初你C语言又是怎么告诉电脑我要你定义一个什么(比如FOR)语句;它应该具有什么功能;这就是说最原始是怎么来实现C语言被电脑知道你准备要开发一个什么东西。不知道我这样讲有哪位高人能看得明白;希望指点迷津。 (那些什么都不知道的麻烦你别在这灌水)

我的认识是,我说的可能不正确,但是我觉得大概道理是这个:

你看编程基础的时候,会给你讲计算机最开始出现的时候,并不是发命令来控制他的,而是发一串二进制数据给电脑让电脑工作。

1.最初cpu设计时就规定了一些最简单的指令,如“加”,“减”等
而当你从总线发一串数据如“01110100”给cpu时,cpu就知道这个是用来进行

“加”的运算(这个是cpu定义好的,一收到这个东西就会作出相应的响应)

然后cpu通过硬件的一些电路进行对高低电平的处理,得出相应的结果返回回来。如返回回来的是“10010101”,计算机就知道这个是加运算的结果。

2.WHILE
语句是高级语言,开发平台会把while语句转化成相应的硬件语言(汇编指令),这些指令就是由很多加减乘除和对内存地址的分配组成的,最终转换成很多加减乘除指令传给cpu(传的也是类似“01110100”的数据流,cpu会识别它),cpu作处理后返回相应的结果

大概就是这个结果。其实就是cpu定义了最简单的指令和相对应的2进制符号表示(这些定义也是由硬件电路实现的,如cpu收到特定的东西电路才会作出相应的反应)。它的上一层是更高级的指令,这个指令可能是这些简单指令的混合使用。再上一层是这些高级指令的混合使用。一直到c语言一个while是这些混合使用的混合使用。
这就是指令的工作原理,是由最基础的东西,经过人们不断努力定义出来的

电路电平 -> 机器码 -> 汇编语言 -> 更高级的语言(如:basic、c/c++....)

我们用的C语言编译器通常只是作为一个翻译器,就是将C语言这种易于让我们理解的文字翻译成机器码

到底是先有鸡还是先有蛋?

机器能识别的语言是二进制的,比如说 1001000100100010 这样的数据被电脑cpu读取后,它会根据这列数组的上下文识别这是一个指令还是一个数值,然后进行相关操作,其实就是简单的加法,或者把一个数移动到那个寄存器里。无数个这样简单的操作实现了任务的运行。c语言通过编译器编译成机器能识别的语言。就是二进制的。