首先是,課程大概介紹,那我們這門課程是關於計算機程式設計。
那程式設計是什麼呢?我們可以從兩個層面來看。一個就是程式, 一個就是設計。首先我們來看,什麼是一個程式。
那程式的英文就是program,簡單的說就是所謂的劇本。
那劇本是什麼呢?這劇本里面有一條一條的指令。
這指令是給誰看的呢?是給計算機看的。所以說,我們編一個劇本,讓計算機來看,
那計算機看到這個劇本,就根據這一條一條指令來一項一項來執行。這樣的話,
我們就可以讓計算機做我們想要它做的事情。那這些計算,可能是加法,可能是乘法,可能是 除法,那整個來看,
我們編寫一個劇本之後呢,可以藉由設計不同的計算機程序,就是這些劇本
讓計算機做我們想讓它做的計算,比如說我們要算 表面積,或者說是要遊覽網頁或者聽音樂之類的。
那計算機所能看懂的這些指令非常原始,它們稱為所謂的機器語言。
機器語言非常難開發,如果我們直接用機器語言來寫這個程式的話會非常複雜,因為機器語言 非常所謂的低階,
所謂低階就是說,它們所能做的事情非常非常的原始,可能就是把一些數字加一,
或者說判斷這個數字是不是零這些之類的。那所以,因為這些機器語言非常的原始,所以說 如果真正
用它來開發的話,會要花費相當多的費用,而且這些程式也會很難看得懂,因為非常的低階,
我舉個例子,那如果我們不能看懂這些程式的話,自然也就沒有辦法加以維護。
為了解決這個問題,我們通常都是使用高階語言來開發計算機程式。那這個高階
語言,看起來比較像人類一般寫出來的東西,就是說它比較符合人類的閱讀習慣。
這樣的話,我們既可以減縮開發這些程式的成本跟時間。
也讓程式比較容易維護,因為我們如果看得懂,就知道呃
,它哪裡有錯,哪裡有錯就加以維護。這門, 我們這門課程呢,就是要介紹如何使用高階語言來開發程式。
那我們舉個機器語言的例子, 在計算機裡頭,如果我們要計算兩個數字的和,那這個方法是什麼呢?
我們首先要必須知道說在計算機裡頭有個所謂的記憶體跟暫存器,那數值都是存在記憶體 裡頭的,
那但是呢,如果要做加法的話,它們必須先把它搬到暫存器裡頭才能做加減法,因為只有暫存 器可以做加減法。
所以說,如果說我們要用機器語言表達怎麼樣 加兩個數字就會變成這個樣子。我們就把這個記憶體,
從一個記憶體把一個數字載到一個暫存器叫做A,那把另外一個記憶體的數字
載入到另一個暫存器叫做B,然後因為只有暫存器能夠把數字加起來,我們就把A跟B的
暫存器的內容把它加起來,然後把它放到另外一個暫存器裡頭叫做C,
最後我們再把C放到記憶體裡頭,回去。那這樣的話,你可以看到這個過程
是蠻複雜的,而且寫出來會有相當多的指令,這樣不太好。
所以,相對應的高階語言的例子可能長得像這個樣子,i=j+k,意思就是說,我們把這些 紙拿出來,
我們把k紙拿出來,然後把它加起來,再把它放回去,這樣的話, 很符合我們人類閱讀的習慣,所以說,我們一般而言都是用高階語言來開發這個程式。
所以高階語言,它非常的簡潔, 而且符合我們人類的習慣,這是我們用它的原因。
那我們這門課程要教的高階語言叫做C,那C是有相當
標準的語法跟語意,意思就是說它的語法是非常標準的,
語意也符合我們一般人類的習慣,那開發出來的程式有一個很大的好處就是說它的可遷性,什 麼叫可遷性呢,可遷性的意思就是說
我一個程式寫出來在一台計算機上可以跑, 那同樣的程式在另外的機器上也可以跑,
意思就是說,我們程式只需要寫一次就可以在不同的計算機上
執行。這樣就非常的便利,我們不用為了一台計算機重寫一次程式。
那還有一個理由是C有豐富的程式庫,所謂程式庫就是說
它已經寫好了的程式,我們可以直接調用而不用重新再撰寫。
那另外一個我們使用C的例子就是說,C也可以進行類似機器語言的機械動作,
比如說,C裡頭就有這些能夠直接操作這些位元的 一些的那個指令,那這樣的話,再寫一下系統的東西,
比如說像作業系統或者說是
編系統的時候那這些東西都會很容易來開發,所以說,C也足夠,
讓我們能夠,將來在開發所謂系統程式的時候
能夠很容易的過渡出去。那舉個例子來講,像UNIX作業系統,就是使用C來開發的。
所以有這兩個例子我們就直接從C開始教導,教學。
那剛剛我們提到有兩個觀念,就是一個有高階語言一個有低階,就是機器語言,
那計算機是沒有辦法直接高階語言的,它沒有辦法直接跑,所以說我們需要一個轉換的過程, 意思就是說
我們寫出來的高階語言,那經過一個所謂的編譯器,就是所謂的compiler 把高階語言轉換成功能相同的機器語言,這樣的話機器就可以執行了。
那在學習這個程式設計的同時呢, 我們就必須學習這個編譯程式,因為我們寫出來的高階語言,我們經過轉換,
經過編譯器的轉換,轉換成機器語言,然後才能跑。那我們
現在所使用的編譯環境會是,我們直接使用ideone。
我們使用這個的原因是我們就不用在自己的,
本機這邊另外加裝軟體,這對初學者來講是比較容易接受的。
那我們現在總結我們剛剛提到程式的部分。那簡單的概念就是,計算機程式就是給計算機看的 指令劇本。
那我們現在要做的事就是學習怎麼樣編這些指令劇本, 然後讓計算機能夠做我們
想要做的事情,解決我們想要解決的問題,那這就是關於程式的部分。