SORU
26 HAZİRAN 2009, Cuma


Sözlü kapsamı nedir?

Biri bana sözlü kapsayan kısa bir giriş verir misin?

CEVAP
26 HAZİRAN 2009, Cuma


Ben örnekler :) onları anlamak

İlk olarak, Sözlü Kapsam (Static Scope), C-gibi sözdizimi:

void fun()
{
    int x = 5;

    void fun2()
    {
        printf("%d", x);
    }
}

Her iç düzey dış seviyesine erişebilir.

Başka bir yol, Dinamik Kapsam Lisp ilk uygulama tarafından kullanılan adı var yine C-gibi Sözdizimi:

void fun()
{
    printf("%d", x);
}

void dummy1()
{
    int x = 5;

    fun();
}

void dummy2()
{
    int x = 10;

    fun();
}

Burada fun x fun ilan Ara herhangi bir işlevi dummy1 dummy2 x x erişebilir.

dummy1();

Yazdır 5

dummy2();

Yazdır 10

İlk derleme zamanında çıkarılabilir çünkü statik denir, ikinci dış kapsam dinamik için dinamik denir ve fonksiyonları zinciri çağrısı bağlıdır.

Göz için statik ölçüm daha kolay buluyorum. Çoğu dil bu yol sonunda bile Lisp (her ikisini de yapabilir, değil mi?) gitti. Dinamik kapsama çağrılan işlev için tüm değişkenleri başvuruları geçen gibidir.

Derleyici eğer böyle bir şey yazsak bir işlevi dış dinamik kapsamını anlamak, bizim son örneği ele alalım, neden bir örnek:

if(/* some condition */)
    dummy1();
else
    dummy2();

Çağrı zinciri çalıştırma durumuna bağlıdır. Eğer bu doğru ise, o zaman çağrı zinciri gibi görünüyor:

dummy1 --> fun()

Eğer koşul yanlış ise:

dummy2 --> fun()

Her iki durumda da eğlenceli dış kapsam arayan kişiayrıca arayanın arayan çok.

Sadece C dili söz ne de dinamik ölçüm fonksiyonları iç içe izin vermiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bmarian22

    bmarian22

    22 Aralık 2007
  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • spederson7

    spederson7

    17 Temmuz 2006