Loading AI tools
使用人類可讀的電腦語言,撰寫的電腦指令的集合 来自维基百科,自由的百科全书
原始碼(英語:Source code),是指一系列人類可讀的電腦語言指令[1]。
「原始碼」的各地常用名稱 | |
---|---|
中國大陸 | 源代碼、源碼、源程序 |
臺灣 | 原始碼、原始程式碼、來源碼 |
港澳 | 原始碼 |
星馬 | 原始碼 |
在現代程式語言中,原始碼可以是以書籍或者磁帶的形式出現;但最常用的格式是文字檔案,這種典型格式的目的是為了編譯出電腦程式。電腦原始碼的最終目的是將人類可讀的文字翻譯成為電腦可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
原始碼主要功用有如下2種作用:
需要指出的是,對於編譯語言來說,例如C/C++/Java,原始碼的修改不能改變已經生成的目的碼。如果需要目的碼做出相應的修改,必須重新編譯。但是目前有許多流行的手稿語言,例如Perl/Python都不需要重新編譯,修改完代碼可以直接執行看到修改的結果。
原始碼作為軟體的特殊部分,可能被包含在一個或多個檔案中。一個程式不必用同一種格式的原始碼書寫。例如,一個程式如果有C語言庫的支援,那麼就可以用C語言;而另一部分為了達到比較高的執行效率,則可以用組合語言編寫。就目前的情況而言,很少有需要直接用組合語言來編寫的軟體了,因為很多時候編譯器生成的最佳化程式的執行效率已經很好了,更多的時候是用C/C++這樣的編譯語言來寫核心需要速度的部分,用Perl、Python和Lua等這樣的動態語言來做核心的擴充,例如介面,管理組態等等。這樣既不會損失效率,也增加了程式的靈活性。
較為複雜的軟體,一般需要數十種甚至上百種的原始碼的參與。為了降低種複雜度,必須引入一種可以描述各個原始碼之間聯絡,並且如何正確編譯的系統。在這樣的背景下,版本控制系統(VCS)誕生了,並成為研發者對代碼修訂的必備工具之一。
還有另外一種組合:將為一種平台編寫的軟體移植到另外一種平台上,例如將Windows下的軟體移植到Linux或者MacOS下,專業術語叫做軟體移植。一般可以執行在多個平台下的軟體叫做跨平台軟體。
如果按照原始碼類型區分軟體,通常被分為兩類:自由軟體和專有軟體。通常,自由軟體不僅可以免費得到,而且公開原始碼;相對應地,非自由軟體則不公開原始碼。通過非正常手段獲得非自由軟體原始碼的各種行為都將被視為非法。
對於電腦而言,並不存在真正意義上的「好」的原始碼;好的源程式,首先要是正確的代碼。然後是源程式的可維護性,好的程式風格將可以增強代碼的可維護性。原始碼是否具有可讀性,成為代碼品質/品質的標準之一。也有人將程式的效率放在可維護性之前。根據程式所要實現的功能和應用領域很多人對原始碼品質/品質有著不同的看法。但是普遍達成一致的是品質/品質高的源程式就是正確的程式。
雖然我們可以通過不同的語言來實現電腦的同一功能,但在執行效率上則存在不同。普遍規律是:越進階的語言,其執行效率越低。這也是組合語言生成的檔案比用VB語言生成檔案普遍要小的原因。然而,使用低階語言雖可提高執行效率,卻會大大降低程式的開發效率,可能導致開發工作變得非常困難,因此多數程式設計師並不在意高階語言帶來的執行效率損失,最多只在關鍵處使用低階語言。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.