1 / 11

Bağlama Duyarlı Diller

Bağlama Duyarlı Diller. Context-Sensitive Languages. Chomsky Hiyerarşisi. Düzenli Diller. Deterministik veya deterministik olmayan sonlu durum otomatlarıyla (FSA) modellenebilirler. Düzenli ifadeler , bu düzeyde yer alırlar.

deepak
Download Presentation

Bağlama Duyarlı Diller

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bağlama Duyarlı Diller Context-Sensitive Languages

  2. Chomsky Hiyerarşisi

  3. Düzenli Diller • Deterministik veya deterministik olmayan sonlu durum otomatlarıyla (FSA) modellenebilirler. • 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. • 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 (S). • Sonlu sayıda terminal olmayan elemanları içeren bir küme vardır (N). • S,Nkümesinin elemanı olup, başlangıç sembolüdü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. S = {a,b} N = {S} R = {S  aSb, S  }

  5. Bağlama Duyarlı Diller • 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β → αγβ • α ve β, terminal veya terminal olmayan dizgiler (string) 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. • 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.

  6. Bağlama Duyarlı Diller • S → ε S → aSBC S → aBC CB → BC aB → ab bB → bb bC → bc cC → cc • Bu gramer, {anbncn | 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

  7. Örnek aaabbbccc aaabbbbcc

  8. Örnek (devam) {anbncn | n ≥ 0}

  9. Örnek (devam) aaabbbccc

  10. Anlamsal Çözümleme • 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. • 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. • Derleyicilerde bağlama duyarlı bilgi kullanılarak analiz safhası tamamlanır.

  11. Anlamsal Çözümleme

More Related