Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Visual Studio 2015'te, ifade değerlendiricileri uygulama yöntemi kullanım dışıdır. CLR ifade değerlendiricilerini uygulama hakkında bilgi için bkz. CLR ifade değerlendiricileri ve Yönetilen ifade değerlendirici örneği.
Ortak Dil Çalışma Zamanı'nı (CLR) hedefleyen Visual Basic ve C# (C-sharp olarak okunur) gibi derleyiciler, daha sonra yerel koda derlenen Microsoft Ara Dili (MSIL) üretir. CLR, sonuçta elde edilen kodun hatalarını ayıklamak için bir hata ayıklama altyapısı (DE) sağlar. Özel programlama dilinizi Visual Studio IDE ile tümleştirmeyi planlıyorsanız, MSIL'e derlemeyi seçebilirsiniz ve bu nedenle kendi DE'nizi yazmanız gerekmez. Ancak, programlama diliniz bağlamında ifadeleri değerlendirebilen bir ifade değerlendirici (EE) yazmanız gerekir.
Tartışma
Bilgisayar dili ifadeleri genellikle bir veri nesneleri kümesi ve bunları işlemek için kullanılan bir işleç kümesi oluşturmak için ayrıştırılır. Örneğin, "A+B" ifadesi, ekleme işlecini (+) "A" ve "B" veri nesnelerine uygulamak için ayrıştırılabilir ve başka bir veri nesnesiyle sonuçlanabilir. Veri nesnelerinin, işleçlerin ve bunların ilişkilendirmelerinin toplam kümesi çoğunlukla bir programda ağaç olarak gösterilir ve işleçler ağacın düğümlerinde ve veri nesneleri dallarda gösterilir. Ağaç formuna ayrılmış bir ifade genellikle ayrıştırılmış ağaç olarak adlandırılır.
Bir ifade ayrıştırıldıktan sonra, her veri nesnesini değerlendirmek için bir sembol sağlayıcısı (SP) çağrılır. Örneğin, "A" birden fazla yöntemde tanımlanmışsa, A değerinin belirlenebilmesi için önce "Hangi A?" sorusunun yanıtlanması gerekir. SP tarafından döndürülen yanıt, "Beşinci yığın çerçevesindeki üçüncü öğe" veya "Bu yönteme ayrılan statik belleğin başlangıcının 50 bayt ötesinde olan A" gibi bir yanıttır.
PROGRAMıN kendisi için MSIL üretmenin yanı sıra, CLR derleyicileri bir Program DataBase (.pdb) dosyasına yazılan çok açıklayıcı hata ayıklama bilgileri de üretebilir. Özel dil derleyicisi, CLR derleyicileriyle aynı biçimde hata ayıklama bilgileri ürettiği sürece, CLR'nin SP'si bu dilin adlandırılmış veri nesnelerini tanımlayabilir. Adlandırılmış bir veri nesnesi tanımlandıktan sonra EE, veri nesnesini bu nesnenin değerini tutan bellek alanıyla ilişkilendirmek (veya bağlamak) için bir bağlayıcı nesnesi kullanır. De daha sonra veri nesnesi için yeni bir değer alabilir veya ayarlayabilir.
Özel bir derleyici, arabirimini (ISymbolWriter) çağırarak, .NET Framework’teki ad alanında System.Diagnostics.SymbolStore tanımlanan CLR hata ayıklama bilgilerini sağlayabilir. MSIL'e derleme yaparak ve bu arabirimler aracılığıyla hata ayıklama bilgileri yazarak, özel bir derleyici CLR DE ve SP kullanabilir. Bu, özel bir dili Visual Studio IDE ile tümleştirmeyi büyük ölçüde basitleştirir.
CLR DE, bir ifadeyi değerlendirmek için özel EE'yi çağırdığında, DE EE'ye bir SP ve bağlayıcıya arabirimler sağlar. Bu nedenle, CLR tabanlı bir hata ayıklama altyapısı yazmak, yalnızca uygun ifade değerlendirici arabirimlerinin uygulanması gerektiği anlamına gelir; CLR bağlamayı ve simge işlemeyi sizin için halleder.