「我們剛剛在腦中想了要怎麼寫出一支程式,但那是我們的語言——也就是用中文描述。現在我們要來講如何講電腦聽的懂得語言。」小光凝重的說道。
「你幹嗎臉色那麼凝重」我有點嘲弄意味看著他。
「恩...因為我不太清楚該如何講起...就是要怎樣教你程式語言是什麼」男孩苦笑著。
「你就講啊!反正我聽不懂就叫你在講一次」嘖嘖,就不能跟我一樣大方嗎?
「好吧!我盡量!」
「那麼我從最基礎的開始講起喔!」
小光在紙上開始寫了一堆符號:
fn main() {
let hello_str = "Hello World";
println!("{}", hello_str);
}
我的媽呀,他到底在寫什麼東西!我喃喃自語。
「這是一支最簡單的程式,叫做 Hello World,基本上所有學程式語言的人第一支程式都是這個喔!」小光說道。
「好...喔...」我困惑。
「這是一段 Rust 程式語言的程式碼,不過是什麼程式語言其實也不是很重要,重點是這段程式碼,他可以被電腦讀懂,然後電腦就成開始做事情。」
「那他可以幹嗎?!」
「你猜猜呀 :P」
「嘖嘖。我想想喔。恩...我只看到 "Hello World",然後下面那個 println!()
不知道是幹嗎的?」我答道。
「println!()
的意思就是讓電腦知道要『印出(print)』東西。第一行程式碼先是『宣告』了 hello_str
等於一串字串 Hello World
,然後因為我們寫了 println!("{}", hello_str)
,所以電腦知道要印出的東西是 hello_str
所代表的文字,因此會印出 Hello World
在螢幕上喔!」
fn main() {
let hello_str = "Hello World";
// 先宣告 hello_str 代表字串 "Hello World"
println!("{}", hello_str);
// println!() 會印出東西,並且說要印得東西是 hello_str
}
「於是我們會看到這樣的結果喔」小光拿出他的香蕉電腦。 (明明就是 SolidHard 員工,還用對手家的產品,嘖嘖 XD)
小光打開電腦,在電腦中把這段文字輸入進去,然後又做了一些步驟。
「我們可以看到這樣的結果」 小光手指著螢幕
【有興趣的讀者可以點進去跑跑看:連結】
螢幕上的內容:
「你覺得人類是怎麼理解別人說的話?」
「我想想喔,耳朵聽到聲音,聲音在耳膜上共振,然後神經傳送訊號給大腦,大腦去解析這段訊號代表什麼意思,然後我們的意識就理解剛剛的話是什麼意思了」我故意批哩啪啦講了一串。
「哇!你越來越有工程師的樣子了喔」小光笑道。
「當然!」嘿嘿,我好歹以前都有好好上生物課。
「電腦理解程式碼也是差不多呢!」小光輕輕說道。
「恩?」
「程式碼是給人類看的,所以電腦會先把程式碼解析編譯成機械碼,也就是機器看的懂得語言,通常就是 0 和 1 組成的一大堆數字,就像你看電影中駭客橋段那樣。然後電腦要跑程式的時候,就是去讀機械碼,然後就能執行原本程式碼中要做的工作」
「等等。解析、編譯是什麼意思?」
「簡單來說,程式碼就像是人類聽到聲音,是最初的東西。耳朵把聲音變成訊號,讓大腦可以理解,對於電腦來說,就是把程式碼『轉換』成機械碼。而大腦能理解得東西,換成電腦的話,就叫做機械碼。剛剛提到的轉換,就是解析編譯在做的事情。這邊大概理解就行了,總之就是要讓電腦能懂」
「恩...好像稍微能懂了。」其實我還是懵懵懂懂,但我覺得以後就會懂了吧?!
「所以你看螢幕,上面那串印出來的資訊
Compiling playground v0.0.1 (/playground)
Finished dev [unoptimized + debuginfo] target(s) in 0.64s
Running `target/debug/playground`
其實就是電腦在把程式碼轉成電腦看的懂得語言的過程。
最後電腦能讀懂程式碼了,就開始執行工作。而我們剛剛給他的工作就是印出「Hello World」,所以你看最下面,這不就印出來了嘛!
Hello World
」小光很仔細地講。
「哇!好酷喔!!!!!」我想,我開始對『程式』這個東西感到興趣了呢!
嗨,喜歡本系列的話,可以追蹤作者粉專「微中子」喔!