所有程序裡的最底層是不是都是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語句,用匯編的話至少需要幾條以上的彙編代碼,並且由於沒有變量 沒有數據類型,所有的數據都需要你自己按地址去讀寫,按需求去使用,由此可見不同的語言都有不同代碼的處理方式


連山易


不是,底層的語言都是寄存器、加法器、尋址、出入站等之類的指令性語句,跟高級語言不一樣。


分享到:


相關文章: