ソースコード
ソースコードはソフトウェアの開発段階を経て機械語を生成した後でもそのソフトウェアの保守に不可欠であり、類似ソフトウェアの新たな開発や既存ソフトウェアの改善に有用であり、また、ソフトウェアに制御されるハードウェアの内容を知る大きな手がかりともなるため、ソースコードを独占あるいは逆に公開することは大きな意味を持つ。
一般に人間には機械語は扱いがたく、20世紀末から始まったPCで使用されている大規模なOSや、アプリケーション・プログラムを機械語で書くことはほとんど不可能である。そのため、通常は人間にとって理解のしやすいプログラミング言語によって書かれたソースコードとしてプログラムを作成し、その後にコンパイラなどを用いてまとめて機械語に変換する。変換された機械語プログラム(バイナリ)は数値の羅列にすぎず、人間には理解が極めて困難である。機械語を各プロセッサに対応するアセンブリ言語のニーモニックに変換して表示することで、命令レベルのプログラム内容を把握することも可能ではあるが、読解の効率や保守性の点で問題がある。従って、既存のプログラム上の誤りであるバグを修正したり、改良を加えたりするためには元のソースコードが必須である。
知的財産権を収益の根幹とするソフトウェア産業では、ソースコードを企業秘密として保持し、使用者には機械語プログラムの複製の使用権を販売することで利益を得ていることが多い。このような考え方の下に開発されているソフトウェアはプロプライエタリソフトウェアと呼ばれる。
ソースコードはプログラミング言語を用いて書かれるものであり、各種コンピュータハードウェア(プロセッサ)のための機械語や仮想機械のための中間表現(バイトコード)よりも、人間が読み書きするのに適している。
ソースコードをコンピュータがどのように処理するかは、そのプログラミング言語の処理系によってさまざまである。与えられたソースコードをそのまま、インタプリタによって逐次的に実行する処理系もあるし、事前にソースコードをコンパイラによって機械語(またはアセンブリ言語)で書かれたオブジェクトコードに変換し、リンカによってライブラリやリソースと結合して実行可能ファイル(ロードモジュール)を生成し、オペレーティングシステムがその実行可能ファイルをメモリに読み込んでプログラムを実行するケースもある。コンパイル時に機械語には直接変換せず、いったん仮想機械向けの中間表現に変換しておき、実行時コンパイラによってプログラム実行時に環境に合わせた機械語にコンパイルする処理系もある。
設計から実装へ、というプログラミングの過程(詳細は「プログラミング 」の記事を参照)で、ソースコードを記述することを特に指してコーディングという。
ソースコードの量は通例ソフトウェアの規模に比例して増大する。ごく小規模のソフトウェアではソースコードが単一のソースファイルに収まるケースもあるが、大規模なソフトウェアでは通例機能ごとにソースコードを分類し、複数のソースファイルに分散して記述することでソースコードのメンテナンス性を確保する。ソースコードの行数をもとにソフトウェア開発プロジェクトの規模を見積もる手法も存在する。
プログラムを「算譜」等とした過去の日本語訳の類例として、ソースコードを原算帳と訳した例がある。