Programlamadaki kapsam, kodda bir değişkenin hem tanımlandığı hem de görülebildiği alandır. Kapsam, bir programın bölgelerini ve programın değişkenleri tanımlama ve kullanma şeklini farklılaştırır. Bir değişkenin tüm program boyunca belirli bir tanımı varsa, göründüğü işlevden bağımsız olarak, kapsamı geneldir. Küresel kapsamlı değişkenler, tüm kaynak kodunda aynıdır. Bunun aksine, yerel kapsam belirli bir işlev için bir değişken tanımlar; yalnızca bu işlevin içinde mevcuttur.
Kapsam tanımı biraz yanıltıcıdır; aynı zamanda, sadece değişkenin tanımlanabilir ve görünür olduğu alanı değil, bir değişkenin bir program içinde nasıl çalıştığını ifade eder. Kapsam terimi, gerçekleştirilen eylemi değil, yalnızca kapsanan alanı belirtir; araştırmacılar ve geliştiriciler terimin sınırlamalarını anlar ve kapsamın bir değişkenin hem tanımı hem de davranışı anlamına geldiğini anlar.
Statik ve dinamik kapsam
Statik (sözcüksel) ve dinamik kapsam, programlamada ortaya çıkan iki tür kapsamdır; statik çok daha yaygındır. Bir program durağan veya sözcüksel olarak kapsama alırsa, bir işlev içindeki bir değişken, bu işlev her çalıştığında, o kapsam için atanan değerini döndürür. Örneğin, belirli bir işlevde bir x = 5 değişkeni ve ardından x için bir koşullu tanım sağlanmışsa, programın kapsamının onu böyle tanımladığı her yerde x = 5.
Ancak dinamik kapsam, programın yapısından bağımsız olarak bu değişkenin en son tanımını çağırır. Yukarıdaki örnekte, x = 5, ancak daha sonra x 10 değeriyle tanımlandıysa, dinamik kapsama sahip bir program, bu değer en yakın zamanda kullanılmış olsaydı, x = 10'u çağırırdı. Dinamik kapsam, statik kapsamdan daha az yapılandırılmıştır; değişken tanımlarını mantıksal olarak tanımlanacağı alan yerine çağrı yığınından çeker.