所有程序里的最底层是不是都是if else呢?

苏白衣


绝大多数人情况上可以说是的

目前所有程序语言的目的都是和cpu沟通,通过软件来控制硬件,也就是说软件编程是需要服从于硬件理解规则的。

而硬件的基础就是这些晶闸管,现在是晶体管,目前我们说的CPU工艺10纳米12纳米等指的也都是晶体管尺寸,晶体管只有两种状态,就是相对的高电平和低电平,也就是汇编语言的二进制,同样的也就是各个程序语言二进制的1和0。所有的软件语言都是通过0和1来与cpu沟通。

最早的电脑是一堆大体积晶闸管来构成的,编程人员需要在纸上打孔来实现编程,然后对应这些孔手动打开和关闭晶闸管来实现对应动作。也就是实现打开0和关断1。但是这样一来编程会变得极为繁琐,比如实现一个加法减法需要浪费一整张纸,于是有人把这张纸保存起来,以后需要使用时就把这张纸拿出来直接对应编程就可以了,有没有感觉很熟悉?没错这就是软件最早的汇编语言的指令和由此而来的高级语言的库函数。硬件可以理解为一个模块,比如74hc138等电子器件。

而if else很大程度上也是0和1的延伸,if中的条件为1则该点对应晶体管为1输出高电平则该晶体管后续的晶体管可以的电,也就是继续运行,else为0则对应的晶体管低电平,跳转到其他晶体管,也就实现了二进制控制晶体管进而控制cup的目的。

所以大多数情况下,如果你理解的if else指的是0和1,而0和1是所有语言最基础的部分那么也可以说它是最底层语言。


王浩然646


只有if/else是不够的,编程语言的底层处理至少要包括以下部分:

  1. 数据传送 连续不断地从内存中取出操作指令传送给不同的寄存器,并从寄存器取出结果写入内存。
  2. 整数和逻辑运算 整数的加减乘除以及逻辑的与或非等基本的运算
  3. 位操作 一个字节有八位,每一位上要么0要么1,数位左移右移取反等操作
  4. 条件设置 这是题主说的if else它是通过设置条件寄存器不同数位的状态实现控制的
  5. 控制转移 程序的跳跃,循环,子程序调用,返回,中断等等
  6. 输入输出 从硬盘读取,写到屏幕上等等

日冲信息 黄


不是,现在的主流语言基本都是类C语言,什么是类C语言,即语法上和C语言相似的语言,这样的编程语言基本都有 条件判断语句即if else, 循环语句等for while, 各种类型的变量等。。。。其他类的不知道,但是很底层的汇编语言就没有if else for while switch 等。。但是基本思维逻辑不变,汇编语言有自己的条件判断和循环语句,并且可以非常随意的组合,汇编也没有变量的概念,更没有数据类型的概念,咋一看好像汇编不强大很好学的样子,其实不然,非常难学,高级语言的一条语句,转化成汇编代码就是几条,几十条,几百条.……代码,也就是说你要完成高级语言的一条if语句,用汇编的话至少需要几条以上的汇编代码,并且由于没有变量 没有数据类型,所有的数据都需要你自己按地址去读写,按需求去使用,由此可见不同的语言都有不同代码的处理方式


连山易


不是,底层的语言都是寄存器、加法器、寻址、出入站等之类的指令性语句,跟高级语言不一样。


分享到:


相關文章: