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.
Söz dizimi ağaçları , kaynak kodun sözcük temelli ve söz dizimi yapısını gösterir. Bu bilgiler yalnızca kaynaktaki tüm bildirimleri ve mantığı açıklamak için yeterli olsa da, nelerin başvurulmakta olduğunu belirlemek için yeterli bilgi değildir. Bir ad şunu temsil edebilir:
- tür
- alan
- yöntem
- yerel değişken
Bunların her biri farklı olsa da, bir tanımlayıcının aslında neye atıfta bulunduğunu belirlemek genellikle dil kurallarının derinlemesine anlaşılmasını gerektirir.
Kaynak kodda temsil edilen program öğeleri vardır ve programlar derleme dosyalarında paketlenmiş daha önce derlenmiş kitaplıklara da başvurabilir. Derlemeler için kaynak kodu olmasa ve bu nedenle söz dizimi düğümleri veya ağaçları olmasa da, programlar yine de içindeki öğelere başvurabilir.
Bu görevler için Anlam modeline ihtiyacınız vardır.
Kaynak kodun sözdizimsel modeline ek olarak, anlamsal model dil kurallarını kapsüller ve doğru program öğesi ile tanımlayıcıları kolayca eşleştirmenizi sağlar.
Derleme
Derleme, tüm derleme başvurularını, derleyici seçeneklerini ve kaynak dosyaları içeren bir C# veya Visual Basic programı derlemek için gereken her şeyin bir gösterimidir.
Tüm bu bilgiler tek bir yerde olduğundan, kaynak kodunda yer alan öğeler daha ayrıntılı olarak açıklanabilir. Derleme, bildirilen her türü, üyeyi veya değişkeni simge olarak temsil eder. Derleme, kaynak kodda bildirilen veya bir derlemeden meta veri olarak içeri aktarılan simgeleri bulmanıza ve ilişkilendirmenize yardımcı olan çeşitli yöntemler içerir.
Söz dizimi ağaçlarına benzer şekilde, derlemeler sabittir. Derlemeyi oluşturduktan sonra, siz veya paylaştığınız başka biri tarafından değiştirilemez. Ancak, var olan bir derlemeden yeni bir derleme oluşturabilir ve bunu yaparken bir değişiklik belirtebilirsiniz. Örneğin, var olan bir derlemeyle her şekilde aynı olan bir derleme oluşturabilirsiniz, ancak ek bir kaynak dosya veya derleme başvurusu içerebilir.
Semboller
Sembol, kaynak kod tarafından bildirilen veya bir derlemeden meta veri olarak içeri aktarılan ayrı bir öğeyi temsil eder. Her ad alanı, tür, yöntem, özellik, alan, olay, parametre veya yerel değişken bir simgeyle temsil edilir.
Türdeki Compilation çeşitli yöntemler ve özellikler sembolleri bulmanıza yardımcı olur. Örneğin, bildirilen bir tür için ortak meta veri adına göre bir simge bulabilirsiniz. Ayrıca, sembol tablosunun tamamına kökü ana ad alanı olan bir semboller ağacı olarak erişebilirsiniz.
Simgeler ayrıca, derleyicinin kaynaktan veya meta verilerden belirlediği, başvuruda bulunılan diğer simgeler gibi ek bilgiler içerir. Her bir simge türü, derleyicinin topladığı bilgileri açıklayan kendi yöntemlerine ve özelliklerine sahip, ISymbol'den türetilmiş ayrı bir arabirimle temsil edilir. Bu özelliklerin çoğu doğrudan diğer simgelere başvurur. Örneğin, IMethodSymbol.ReturnType özelliği size yöntemin döndürdüğü gerçek tür simgesini bildirir.
Simgeler, kaynak kod ve meta veriler arasında ad alanlarının, türlerin ve üyelerin ortak bir gösterimini sunar. Örneğin, kaynak kodunda bildirilen bir yöntem ve meta verilerden içeri aktarılan bir yöntem aynı özelliklere sahip bir IMethodSymbol ile temsil edilir.
Simgeler kavram olarak CLR tür sistemine API tarafından System.Reflection gösterildiği gibi benzerdir, ancak yalnızca türlerden daha fazla model oluşturmaları bakımından daha zengindir. Ad alanları, yerel değişkenler ve etiketler sembollerdir. Ayrıca simgeler CLR kavramlarının değil dil kavramlarının bir gösterimidir. Çok fazla çakışma vardır, ancak birçok anlamlı ayrım da vardır. Örneğin, C# veya Visual Basic'te yineleyici yöntemi tek bir simgedir. Ancak, yineleyici yöntemi CLR meta verilerine çevrildiğinde bir tür haline gelir ve birden çok yöntem içerir.
Semantik model
Anlamsal model, tek bir kaynak dosya için tüm semantik bilgileri temsil eder. Aşağıdakileri keşfetmek için bunu kullanabilirsiniz:
- Kaynakta belirli bir konumda anılan simgeler.
- Herhangi bir ifadenin sonuç türü.
- Hatalar ve uyarılar içeren tüm tanılama.
- Değişkenlerin kaynak bölgeleri içinde ve dışında nasıl aktığı.
- Daha kurgusal soruların yanıtları.