每種編程語言和標記語言都有自己的源代碼形式,有時簡單地稱為"源代碼"。這些代碼包括對計算機要執行的任務的描述,并以人類易于閱讀的文本格式編寫和存儲。有些代碼在使用前進行編譯,這是轉換源代碼的過程用機器語言編寫...
每種編程語言和標記語言都有自己的源代碼形式,有時簡單地稱為"源代碼"。這些代碼包括對計算機要執行的任務的描述,并以人類易于閱讀的文本格式編寫和存儲。有些代碼在使用前進行編譯,這是轉換源代碼的過程用機器語言編寫的一組指令。標記語言(如HTML)中的文本在技術上不是純粹意義上的源代碼,而是經常被稱為源代碼。源代碼也有不同的法律類別,其中最重要的劃分是在開放源代碼和封閉源代碼之間。

所有真正的源代碼必須通過編譯器運行并轉換為機器語言,然后才能由計算機執行。
每種編程語言都使用不同的語法來表示底層這些差異意味著源代碼從語言到語言都是不同的。一些語言,如C和C++,是相關的,并且共享某些樣式和語法元素。C++是一種常用的計算機程序設計語言。
編程風格的一些約定在大多數語言中出現。例如,幾乎每種語言都包含一些系統來表示注釋。或代碼的一部分,這些代碼是供人觀看的,而不是供編譯器處理的部分。這是源代碼的一個共同特點,在不止一種編程語言中會出現幾種注釋符號。
所有真正的源代碼都必須在編譯器中運行并轉換為機器語言才能執行在某些情況下,例如Python在交互模式下,這個任務是動態執行的在其他情況下,編譯器會生成一個可執行文件,該文件以機器語言存儲指令,以備日后使用。
在Web內容中占很大一部分的標記文本在技術上不是源代碼,但存在一定的相似性,由于HTML和其他相關標記語言傳達意義并描述計算機要執行的任務,特別是文本和其他信息的格式和顯示方式。因此,用HTML標記的文本通常稱為源代碼。
從法律上講,有兩種源代碼所有權模型開源軟件是一種軟件,它的代碼是提供的,有時不附加任何條件,有時是在開源許可協議下為作者保留一些基本權利。有些這樣的協議限制了可以對源代碼進行的修改,但是有些人只是簡單地規定,必須給予原作者以信任。
封閉源代碼是另一種主要的源代碼法律變體。在這種模式中,只有一個可執行文件提供給許可證持有人。禁止用戶試圖反編譯可執行文件以揭示底層代碼。這種法律模式主導了商業軟件領域,盡管一些開源商業模式也被證明是可行的。