ソースコード
機械が生成したコードは人が書いたものではなく、また機械の生成物であって生成元(ソース)ではないため、上記の定義からするとソースコードではない。ただし従来ソースコードだったものが生成されているので、この種の中間コードもソースコードと呼ばれることがある(c.f. 自動プログラミング § ソースコード生成)。現代のソフトウェア開発では大元の高水準ソースコードが幾重にもわたって中水準のソースコードまたは中間表現にコンパイル/トランスパイルされ、最終的に機械語のコード/プログラムとなる場合が多い(例: C#→CIL→機械語、TypeScript→JavaScript ES6→JavaScript ES5→機械語)。
アセンブリ言語のような低水準言語のプログラムを、ニーモニックを使って手作業で記述したものはソースコードと言えるが、プログラムの規模が増大した現代では保守性の観点から、低水準言語を直接使ってプログラムを記述する機会は少ない。通例ソースコードは高水準言語を使って記述・保守されるようになっている。
ソースコードの定義は明瞭でない。しかし様々な定義が試みられている。
Linux Information Project (LINFO) はソースコードを「プレーンテキストの形で1から人間によって書かれたソフトウェア。例えば人が読めるアルファベットの形であったり、人によってコンピュータにタイプされたりするもの」と定義している。すなわちソースコードはプレーンテキスト(人の言葉)で書かれたもので、機械が生成・変換したのではなく人が1から書いてできているソフトウェアの実体を指す。ソース(源)という語が示すように、ソフトウェアはソースコードを変換(コンパイル)して生成した機械語によって動作するため、ソースコードはソフトウェアの源/ソースである。
ソースコードは人が書くものだが、より抽象度の高い表現でソフトウェアを記述し、それを基に従来人が書いていたソースコードを機械に書かせる(機械に生成させる)ことが古くからおこなわれてきた(トランスパイラ、自動プログラミング)。