Innenfor informatikken er en tre-adresse-kode (ofte forkortet TAC eller 3ACengelsk) en mellomliggende representasjon som blir benyttet av optimaliserende kompilatorer for å hjelpe til med implementasjonen av kodeoptimaliseringer. Hver instruksjon har maks tre operander og er typisk en kombinasjon av en tildeling og en binær operator. For eksempel t1 := t2 + t3. Navnet er avledet av bruken av tre operander i disse setninger, selv om instruksjoner med færre operander kan forekomme.

Siden tre-adresse-koder blir brukt som et mellomliggende språk av kompilatorer, vil operandene mest sannsynlig ikke være konkrete minneadresser eller prosessorregistere, men snarere symbolske adresser som vil bli oversatt til aktuelle adresser under registerallokering. Det er heller ikke uvanlig at navn på operander blir nummerert sekvensielt ettersom tre-adresse-koder typisk blir generert av kompilatorer.

En avgrensning av tre-adresse-koder er A-normal form (ANF).