Ačkoliv český právní řád pojem počítačový program výslovně nedefinuje, autorský zákon s ním pracuje jako s předmětem ochrany. Evropský patentový úřad jej v rozhodnutí Clipboard formats I (Microsoft) popsal jako „sekvenci instrukcí, které může počítač vykonat“. Technicky jde o zdrojový kód – soubor příkazů v programovacím jazyce, který po překladu umožňuje provádění konkrétních funkcí.
Autorskoprávní ochrana se vztahuje na každé dílo, které je jedinečným výsledkem tvůrčí činnosti autora a je vyjádřeno v objektivně vnímatelné podobě. Počítačový program tak musí být původní – musí nést autorův osobitý rukopis a představovat jeho duševní výtvor. Ochranu může získat nejen samotný kód, ale i technická dokumentace, pokud sama splňuje podmínky autorského díla.
Autorem je fyzická osoba, která dílo vytvořila – tedy programátor či tým programátorů. V praxi však často vznikají otázky, komu přísluší autorská majetková práva, zejména pokud program vznikl v rámci zaměstnání nebo na zakázku. Základním rozlišovacím faktorem je tedy právní vztah, v jehož rámci byl program vytvořen.
Podle § 58 odst. 1 autorského zákona platí, že pokud program vznikl v rámci pracovního nebo služebního poměru, vykonává majetková práva k dílu zaměstnavatel. Programátor zůstává autorem, avšak právo s programem nakládat – například jej rozmnožovat, prodávat nebo licencovat – náleží zaměstnavateli.
Zákon navíc zaměstnavateli umožňuje program zveřejnit, upravovat, překládat či spojovat s jinými díly, pokud není ve smlouvě uvedeno jinak. Proto je v praxi vhodné vztah mezi programátorem a zaměstnavatelem podrobně upravit smluvně – včetně povinností předání kódu a dokumentace, mlčenlivosti či nakládání s úpravami.
Autorský zákon v § 58 odst. 7 rozšiřuje princip zaměstnaneckého díla i na programy vytvořené na objednávku. Pokud si fyzická osoba objedná vytvoření programu, stává se z hlediska právního režimu obdobou zaměstnavatele – tedy vlastníkem majetkových práv. Toto pravidlo se však nevztahuje na objednávky zadávané právnickým osobám, například IT firmám.
V případech, kdy program vzniká týmově nebo jej vytváří zaměstnanci firmy, jde o kolektivní dílo, a pro výkon práv je třeba uzavřít samostatnou licenční smlouvu.
Pokud program nespadá do režimu zaměstnaneckého nebo objednaného díla, je jeho užití možné pouze na základě licenční smlouvy. Tato smlouva uděluje jiné osobě právo program užívat – buď výhradně, nebo nevýhradně. Uzavírat ji lze písemně, ústně i konkludentně, například potvrzením licenčních podmínek při instalaci. Výjimkou jsou pouze výhradní licence, které musí mít vždy písemnou formu.
Rozsah licence může být časově, územně či účelově omezen, například jen pro konkrétní pobočku, určený počet uživatelů či jeden konkrétní účel. Naopak může být nastaven i zcela bez omezení. Součástí licenční smlouvy by mělo být také vymezení, zda může nabyvatel program upravovat, překládat, spojovat s jinými programy nebo poskytovat sublicence.
Vzhledem k širokým možnostem nastavení je nezbytné, aby licenční smlouvy byly vždy připraveny individuálně a odrážely konkrétní okolnosti případu – univerzální vzory z internetu obvykle nepostačují.
Zajímavou otázkou do budoucna zůstává, jak právo naloží s programy vytvořenými umělou inteligencí bez přímé účasti člověka. Autorem totiž podle současného právního výkladu může být pouze fyzická osoba, jejíž činnost má tvůrčí povahu. Pokud by program vznikl zcela automaticky, nemuselo by jít o autorské dílo a žádná autorská práva by k němu nevznikla. Jde zatím o teoretickou otázku, která však s rostoucí automatizací vývoje softwaru nabývá na významu.