A számítógép-programozásban a hatókör (angolul scope) alatt azt a kontextust értjük, amelyekben a változókat és a kifejezéseket értelmezzük.
Az egyes nyelvekben többféle hatókör típussal találkozunk.
A hatókör típusa határozza meg, hogy a változó milyen egyedeket tartalmazhat és hogy hogyan hat rájuk vagy a szemantikára.
A hatókör
- tartalmazhat deklarációkat vagy azonosítók definícióit.
- tartalmazhat utasításokat és/vagy kifejezéseket amelyek végrehajtható algoritmust vagy annak részét definiálják.
- lehet beágyazott, vagy tartalmazhat más elemeket.
A névtér olyan hatókör, amely a hatókör behatároló természetét kihasználva csoportosít logikailag rokon azonosítókat egyetlen azonosítóba. Ezáltal a hatókör befolyásolhatja a tartalmának névfeloldását.
Az egyes változóknak is megvan a maguk hatóköre.
Az eltérő hatókörtípusoktól függ, hogy a helyi azaz lokális változók hogyan kötődnek. Ennek különböző hatásai lehetnek attól függően, hogy a nyelvben statikus vagy dinamikus a hatókörök kiosztása azaz statikus kötést ill. dinamikus kötést használ-e az adott nyelv.
A fejlesztők esetenként sorbehúzással adnak hangsúlyt a hatóköröknek a forráskódban a könnyebb olvashatóság érdekében, ill. egyes nyelvek esetén a behúzás nyelvi szinten is jelenti a hatókörök határát (pl. Python nyelv).