如果程式影像在載入前便確立並儲存,那麼是靜態語言[If the image of program which including op code and data is static in disk before loaded, we call it 'static language'.]。這句話對學過作業系統概論或組合語言的人比較容易理解。因為在組合語言中,要求程序員設置 code 節區, data 節區等內容載入記憶體的位置。所以我們很容易聯想記憶體中的程式影像儲存在檔案系統中的情形。與之相對的是,若程式影像在載入後才建立,則是動態語言。
在靜態語言中,軟體公司透過編譯動作(compile),事先建立程式影像並儲存在磁碟中。如此一來,便可以簡化使用者系統的載入器(loader)設計,甚至內建在作業系統之中。進而有效降低載入器和作業系統的磁碟空間需求。嗯,這些內容聽在現在的資訊科系學生耳中,想必是無法理解。一套 Windows 就要 1GB 磁碟空間,什麼載入器要簡化云云,簡直不可思議。但我玩過記憶體 640K 、磁碟空間 1.2MB 的 DOS 環境,還在這環境中用組合語言寫過程式。所以我親身體驗過那種以 KB 為單位在計較的情形。