U kontekstu računala i računalnog programiranja, “sudar imena” je tehnički izraz za slučaj u kojem dvije stavke imaju isto ime unutar nekog logičkog okvira. Do sudara imena može doći u mnogim slučajevima, kao što je s imenima datoteka u direktoriju ili u programu u kojem lokalne varijable u funkciji imaju isto ime kao neke globalne varijable. Većinu vremena, kolizija imena mora se odmah riješiti na neki način, bilo automatski od strane operativnog sustava ili prevoditelja ili ručno putem unosa i odluka korisnika. Koncept imenskog prostora ponekad rješava probleme kolizije stvaranjem različitih logičkih područja u kojima stavke sa sličnim imenima mogu koegzistirati bez dvosmislenosti. U određenim programskim slučajevima, kolizija imena možda neće biti odmah evidentna, što povremeno dovodi do teško dostupnih programskih pogrešaka koje mogu proizaći iz toga što prevodilac pravi određene pretpostavke o nazivima korištenih stavki.
Primjer kako može doći do sudara imena uključuje dva direktorija puna datoteka. Ako svaki direktorij sadrži datoteku pod nazivom “DATA”, a sadržaj jednog direktorija se kopira u drugi, tada će računalo koje pokušava kopirati datoteku pod nazivom DATA otkriti da datoteka s istim imenom već postoji u ciljnom direktoriju. To stvara koliziju imena. U tom će slučaju korisniku obično biti zatraženo i dopušteno mu da bira s popisa rezolucija, uključujući preimenovanje jedne od datoteka, ne kopiranje datoteke ili prepisivanje jedne od datoteka.
Jedno najčešće korišteno rješenje za koliziju imena je implementacija imenskih prostora. Imenski prostor je jednostavno način definiranja područja pod kojim se nalaze nazivi objekata. U gornjem primjeru, direktorij je tehnički prostor imena, što znači da više datoteka može imati isto ime sve dok se svaka nalazi u različitim direktorijima.
Iz perspektive programiranja, kolizija imena može se dogoditi u situacijama kao što su višestruko nasljeđivanje, preklapajući opseg varijabli ili čak s uvezenim bibliotekama na nekim jezicima. Općenito, prevodilac će primijetiti sukob i generirati upozorenje ili pogrešku, iako to možda nije uvijek slučaj. Osim korištenja imenskih prostora, kolizije u mnogim programskim jezicima mogu se izbjeći korištenjem kvalifikatora. Kvalifikator je obično prefiks koji se može staviti ispred naziva varijable ili klase kako bi se razlikovao od druge varijable s istim imenom.