回覆列表
  • 1 # 藍丘

    當我們想和別人溝通時,靠的是我們自己所說的語言;而當我們想和電腦溝通,命令它去做我們要求做的事情的時候,如果對著電腦說,“你幫我把這個算一算”,它肯定就聽不懂了。

    電腦雖然能用來聊天,購物,甚至下棋,做各種各樣的事情,其實它是很“笨”的,只能理解有電和沒電這兩種狀態,人是鐵,電是鋼嘛!電腦的大腦(CPU)中的每一個最小的邏輯單元在有電的時候表現為一種狀態,沒有電的時候表現為另一種狀態,電一會有一會無,每一個單元也就只能在這兩種狀態之間反覆切換。

    人類為了讓笨笨的電腦能夠聽懂我們想說的話,就把我們靈活的人類語言翻譯為電腦的語言,即所謂的程式語言。這種程式語言在本質上就是為了操控要不要給電腦裡面的每一個單元通電。我們用黑色方塊代表給它通電,白色方塊代表不給它通電,人們為了更方便的表示給不給通電,就採用了二進位制來表示,用1(0)來表示通電,0(1)表示不通電。0和1為了區分兩種狀態的不同,只具有相對意義,而沒有絕對意義,0和1的存在相輔相成。

    而這種二進位制是怎樣控制電腦來運作呢,我們可以假設自己搭好了一個電路,把這個電路模組當成一個簡單的電腦CPU。這個電路模組可以實現的功能是,如果你讓這個模組有電,沒電,再有電,用我們上面介紹的二進位制表示就是101,那這個模組就會說“你好”;如果你讓它有電,有電,再沒電,用二進位制表示就是110,那這個模組就會說“再見”。現在我想讓自己的這臺“小電腦”說“你好再見你好”,那麼我就要把剛剛規定的“你好”和“再見”的有電無電全都操作一遍,所以就是要給這個“小電腦”發“有電、沒電、有電(你好)、有電、有電、沒電(再見)、有電、沒電、有電(你好)”,這時,程式設計師為了更方便的記錄有沒有電,就會拿一條打好孔的紙帶依次穿過,紙袋上沒有孔代表1(有電),有孔代表0(沒電),透過特殊儀器來識別紙帶上是否有孔,其實就是類似於光敏感測器,有光透過和沒有光是兩種狀態。製作好的紙帶依次穿過,小電腦就依次接收了有沒有電的資訊。這就是最早的程式設計師做的事情,這也是最早的紙帶“程式語言”,我們稱它為機器語言。

    後來,每次都寫一大串0和1,一不小心看岔了就要重新來,一不小心又看岔了把不該有孔的打上了孔就要換一條新的紙帶,隨著我們讓電腦做的事情越來越多,程式設計師們為了提高效率,開始有了簡寫。例如,我們用字母“A”代替“101”,字母“B”代替“110”,然後再透過專門的翻譯程式(這種翻譯程式一開始也應當是用二進位制寫的)將我們的簡寫翻譯為機器語言,這樣下次再讓小電腦說“你好再見你好”的時候,就只需要把“ABA”丟給翻譯程式,它就能自動將一連串1和0們送到CPU了。隨著程式規模的不斷增大,以及對高效精簡和方便的不懈追求,人們就這樣層層包裝,層層抽象,對中間的翻譯不斷輔之以完善,終於出現了現在流行於世的各種高階語言,包括C++、Java、PHP等。使用這些語言,人們也終於實現了最初的設想,像和人說話那樣和電腦說話。這就是現在的“程式語言”。

  • 中秋節和大豐收的關聯?
  • 如何評價seventeen成員尹淨漢?