用BASIC語言編寫了好多程式,大多數都是一次性的,寫完之後刪掉又重來。他將自己各種各樣的奇思妙想都用程式設計實現出來,他享受到了無線電之外的樂趣。並且他開始嘗試著將計算機和他的無線電臺聯絡起來。畢竟都是電子產品,兩者之間還是有著一些聯絡的,他將自己的零花錢省下來,購買了一些資料線和轉換介面,將計算機和自己的電臺連線起來。並且開始嘗試使用BASIC語言編寫一個程式,想用這個程式完成英文字元和摩斯電碼之間的相互轉換。
也就是說只要將需要傳送的文字內容輸入進去,這個程式就會自動將這些字元轉化為摩“嘀嗒”模式的摩斯電碼,然後透過連線在計算機上的電纜線傳遞給發報機,從而將訊號傳送出去。
這是一個非常實用的程式,有了這個,大大簡化了他和別人進行通聯的效率,將自己電鍵按鈕中解放出來。
花了大概一個月的時間,他的程式的確是編寫好了,英文字元可以順利轉換為“嘀嗒”訊號,但是他遇到了一個比較頭疼的難題,他不知道如何將這些訊號透過資料線傳遞給發報機。
這需要搞清楚資料傳輸的底層原理,但是BASIC語言在這一塊卻根本沒有這方面的內容。
他花了大量的時間來研究這個問題,但是卻一直沒有頭緒。直到有一天,他從一位業餘無線電朋友那裡得到了這樣一個程式。
這個程式的功能和LUS之前構想的功能是一樣的,而且可以正常工作,順利將CW等幅報傳送出去。對LUS來說,最重要的並不是這個程式的功能,而是編寫這個程式的語言。
在此之前,他一直以為計算機程式設計就是BASIC程式設計,以為計算機裡面有且只有BASIC一種程式語言。對於計算機底層到底如何工作,他並沒有一個非常清晰的理解。
而這小程式向他開啟了計算機底層原理的大門。
那個火腿朋友不但將編譯好的程式給了他,與之附帶的還有這個小程式的原始碼。
LUS驚訝地發現,這個程式並不是由BASIC語言編寫的,而是一些奇怪的數字,剛開始的時候他一點兒也看不懂,但這並沒有影響他對其進行深入研究的興趣。後來他才知道,原來這些數字是一種十六進位制的被稱為“機器碼”的語言。這些數字,按照固定的換算關係,可以很容易地將其轉換為僅僅由“0”和“1”組成的數字串。
而“0”和“1”才是計算機中最本質的原理所在。
BASIC語言只是建立在“機器碼”之上的一種高階語言,之所以發明出來,是為了讓程式設計師能夠更好的記憶,降低程式設計的難度。
這個道理,就如同那些成語典故一樣,雖然只有短短的幾個字,卻可能包含著一大段的內容。程式設計師之前早就學過這些“典故”,所以他們編寫程式的時候,就如同在寫文章,隨心所欲地使用著這些成語典故。但是計算機卻比較“笨”,他無法直接理解這些典故,必須透過“編譯器”這種工具翻譯一下,將成語典故解釋為一大段比較淺顯易懂的文字,這樣它才能理解。
程式設計師甚至不用關心這些典故的詳細內容,如典故發生的時間地點和涉及到的具體人物,他們只需要大概知道這個典故可以在什麼時候使用就行了。反正還有“編譯器”這個翻譯人員在,他最終會將具體的細節和計算機說清楚的。
這樣的好處是顯而易見的,程式設計師可以節省大量的時間和精力,透過使用“典故”,可以很迅速地就可以編寫出字所需要的程式。
不過,這也有很大的弊端。因為如果程式設計師不瞭解這些“典故”的來龍去脈的話,就無法做一些比較細緻的東西。就如同LUS之前那樣,他只學過BASIC,而並不知道BASIC最終到底會被翻譯成什麼樣的機器碼