O Projeto de Informação do Linux define código-fonte como:<blockquote>O código-fonte (também chamado de '''fonte''' ou '''código''') é uma versão do software da forma em que ele foi originalmente escrito (digitado em um computador) por um humano em texto puro (caracteres alfanuméricos humanamente legíveis)<ref>{{citar web|url = http://www.linfo.org/source_code.html|título = Source Code Definition|data = |acessadoem = 2016-01-19|publicado = }}</ref>.</blockquote>A noção de código-fonte também pode ser aplicada de maneira mais abrangente, incluindo linguagem de máquina e notações em linguagens gráficas, nenhuma delas são textuais por natureza. Um exemplo desta definição extraído de um artigo publicado na conferência anual IEEE e na Source Code Analysis and Manipulation<ref>{{Citar web|título = SCAM|url = http://www.ieee-scam.org/|obra = www.ieee-scam.org|acessadoem = 2016-01-19}}</ref>.<blockquote>Com o propósito de ser claro, o termo código-fonte é usado significando qualquer definição completamente executável de um sistema de software. Desta forma ele inclui código de máquina, linguagens de alto nível e representações gráficas executáveis de sistemas<ref>{{citar web|url = http://www.cs.ucl.ac.uk/staff/M.Harman/scam10.pdf|título = Why Source Code Analysis and Manipulation Will Always Be Important|outros = 12-13 de Dezembro de 2010|autor = Mark Harman|publicado = 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010)}}</ref>.</blockquote>Frequentemente são necessárias algumas etapas de tradução ou minificação entre o código-fonte original digitado por um humano e o programa executável. Enquanto algumas entidades como a FSF argumentam que um arquivo intermediário “não é um código-fonte real e não conta como código-fonte”<ref>{{Citar web|título = gnu.org|url = https://www.gnu.org/philosophy/free-sw.en.html|obra = www.gnu.org|acessadoem = 2016-01-19}}</ref>, outras acham conveniente tratar cada arquivo intermediário como código-fonte para a próxima etapa.
== História ==
Os primeiros programas feitos para computadores capazes de armazená-los eram passados para a máquina em código binário através dos interruptores presentes no painel frontal do computador. Esta [[linguagem de programação de primeira geração]] não tinha distinção entre código-fonte e [[código de máquina]].
Quando a empresa [[IBM]] começou a fornecer softwares que funcionavam em conjunto com suas máquinas, o código-fonte era provido sem qualquer custo adicional. Na época, o custo de manutenção e suporte do software estava embutido no preço do hardware. Por décadas, a [[IBM]] distribuiu o código-fonte juntamente suas licenças de uso de software, até o ano de 1983<ref>{{Citar livro|título = Computerworld|url = https://books.google.com/books?id=hSBrPSYgjI4C|editora = IDG Enterprise|data = 1988-02-08|nome = I. D. G.|sobrenome = Enterprise}}</ref>.
A maioria das primeiras revistas sobre informática publicavam códigos-fonte impressos para que os leitores os digitassem em seus computadores para executá-los. Ocasionalmente o código-fonte completo de um programa extenso é publicado em forma de livro impresso.