Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bağlama Duyarlı Diller Context-Sensitive Languages.

Benzer bir sunumlar


... konulu sunumlar: "Bağlama Duyarlı Diller Context-Sensitive Languages."— Sunum transkripti:

1 Bağlama Duyarlı Diller Context-Sensitive Languages

2 Chomsky Hiyerarşisi TipDil Makine KarmaşıklıkÖrnek 3 Düzenli Diller FSADoğrusal a* a* 2 Bağlam- Bağımsız Diller PDAPolinomial a n b n a n b n 1 Bağlama Duyarlı Diller LBAÜstel a n b n c n a n b n c n 0 Özyinelemeli Sayılabilir Diller TuringMakinesi Karar verilemez Herhangi bir hesaplanabilir fonksiyon

3 Düzenli Diller Deterministik veya deterministik olmayan sonlu durum otomatlarıyla (FSA) modellenebilirler. Deterministik veya deterministik olmayan sonlu durum otomatlarıyla (FSA) modellenebilirler. Düzenli ifadeler, bu düzeyde yer alırlar. Düzenli ifadeler, bu düzeyde yer alırlar. Derleyicilerde, düzenli ifadeler kullanılarak, sözlüksel çözümleme aşamasında tokenlar belirlenir. Derleyicilerde, düzenli ifadeler kullanılarak, sözlüksel çözümleme aşamasında tokenlar belirlenir. Eğer A bir düzenli ifade ise, L(A) bu ifade ile tanımlanan dildir. Eğer A bir düzenli ifade ise, L(A) bu ifade ile tanımlanan dildir.

4 Bağlam – Bağımsız Diller Sonlu sayıda terminal elemandan oluşan bir alfabe vardır (  Sonlu sayıda terminal elemandan oluşan bir alfabe vardır (  Sonlu sayıda terminal olmayan elemanları içeren bir küme vardır (  Sonlu sayıda terminal olmayan elemanları içeren bir küme vardır (  S,  kümesinin elemanı olup, başlangıç sembolüdür. S,  kümesinin elemanı olup, başlangıç sembolüdür. Dilin üretebileceği ifadeleri içeren kurallar kümesi vardır (R). Dilin üretebileceği ifadeleri içeren kurallar kümesi vardır (R). Derleyicilerde, sözdizim çözümlemesi aşamasında bağlam bağımsız diller belirtilirken BNF notasyonu kullanılır. Derleyicilerde, sözdizim çözümlemesi aşamasında bağlam bağımsız diller belirtilirken BNF notasyonu kullanılır.  = {a,b}  = {S} R = {S  aSb, S  } R = {S  aSb, S   }

5 Bağlama Duyarlı Diller G = (N, Σ, R, S) G = (N, Σ, R, S) A bir terminal olmayan sembol olmak üzere (A є N), bağlama duyarlı bir gramere ait üretim kuralları şu şekilde ifade edilir A bir terminal olmayan sembol olmak üzere (A є N), bağlama duyarlı bir gramere ait üretim kuralları şu şekilde ifade edilir αAβ → αγβ α ve β, terminal veya terminal olmayan dizgiler (string) olmak üzere, α ve β, terminal veya terminal olmayan dizgiler (string) olmak üzere, α,β є (N U Σ)* γ, terminal veya terminal olmayan sembollerin boş olmayan bir dizgisi olmak üzere, γ є (N U Σ)+ γ, terminal veya terminal olmayan sembollerin boş olmayan bir dizgisi olmak üzere, γ є (N U Σ)+ |u|≤|v| olduğu sürece, u → v şeklindeki her üretim kuralı bağlama duyarlı bir gramere dahildir. |u|≤|v| olduğu sürece, u → v şeklindeki her üretim kuralı bağlama duyarlı bir gramere dahildir. Bağlama duyarlılık kavramı, α ve β dizgileri A’nın bağlamını oluşturduğundan ve A’nın γ ile değiştirilip değiştirilemeyeceğini belirledikleri için ortaya çıkar. Bağlam-bağımsız gramerlerde, terminal olmayan bir sembolün bağlamı dikkate alınmaz. Bağlama duyarlılık kavramı, α ve β dizgileri A’nın bağlamını oluşturduğundan ve A’nın γ ile değiştirilip değiştirilemeyeceğini belirledikleri için ortaya çıkar. Bağlam-bağımsız gramerlerde, terminal olmayan bir sembolün bağlamı dikkate alınmaz. Deterministik olmayan Turing makineleri olan LBA’lar ile ayrıştırılabilirler. Deterministik olmayan Turing makineleri olan LBA’lar ile ayrıştırılabilirler.

6 Bağlama Duyarlı Diller S → ε S → ε S → aSBC S → aBC CB → BC aB → ab bB → bb bC → bc cC → cc Bu gramer, {a n b n c n | n ≥ 0} şeklindeki bir dili üretir. Bu dil karmaşıklık açısından bağlam-bağımsız düzeyden yukarıdadır. Bu gramer, {a n b n c n | n ≥ 0} şeklindeki bir dili üretir. Bu dil karmaşıklık açısından bağlam-bağımsız düzeyden yukarıdadır. S → aSBc → aaSBcBc → aaabcBcBc → aaabBcBcc → aaabbBccc → aaabbbccc S → aSBc → aaSBcBc → aaabcBcBc → aaabBcBcc → aaabbBccc → aaabbbccc

7 Örnek aaabbbcccaaabbbbcc

8 Örnek (devam) {a n b n c n | n ≥ 0}

9 Örnek (devam) aaabbbccc

10 Anlamsal Çözümleme Programlama dilleri sadece bağlam-bağımsız yapılarla oluşturulamaz. Programlama dilleri sadece bağlam-bağımsız yapılarla oluşturulamaz. Örneğin; bir değişkenin kullanımdan önce tanımlanmış olması veya ilerideki işlemlerde kullanılırken bu değişkenin tipinin bilinmesi gerekliliği yazılan kodda bağlamı oluşturur. Örneğin; bir değişkenin kullanımdan önce tanımlanmış olması veya ilerideki işlemlerde kullanılırken bu değişkenin tipinin bilinmesi gerekliliği yazılan kodda bağlamı oluşturur. Yazılan kodda belirli bir sözdizim kuralı sağlandığında, bu kuralın yorumlanması ve sonucunda neler yapılacağı da belirtilmelidir. Yazılan kodda belirli bir sözdizim kuralı sağlandığında, bu kuralın yorumlanması ve sonucunda neler yapılacağı da belirtilmelidir. Bu yorumlama işi de belirlenen bir yapının bağlamı içinde ne anlama geldiğinin çözümlenmesine bağlıdır. Bu yorumlama işi de belirlenen bir yapının bağlamı içinde ne anlama geldiğinin çözümlenmesine bağlıdır. Derleyicilerde bağlama duyarlı bilgi kullanılarak analiz safhası tamamlanır. Derleyicilerde bağlama duyarlı bilgi kullanılarak analiz safhası tamamlanır.

11 Anlamsal Çözümleme ÜRETİM KURALI ANLAMSAL KURAL E: E ‘+’ E { $$ = $1 + $3; } E: E ‘*’ E { $$ = $1 * $3; } E: ‘(‘ E ‘)’ E { $$ = $2; } E: intcon { $$ = $1.val; }


"Bağlama Duyarlı Diller Context-Sensitive Languages." indir ppt

Benzer bir sunumlar


Google Reklamları