Biçimsel dil kuramı

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Biçimsel dil kuramı, teorik bilişimin temel dallarından biridir. Bir biçimsel dil, abece denilen belli bir küme Σ üzerinde kurulan dizilerden oluşur. Biçimsel dilleri tanımlamak için ifadeler, gramerler ya da tanımlanan dile ait olan dizileri kabul eden otomatlar kullanılır. Bunun yüzünden otomat kuramı ile ilişkisi çok önemlidir.

Biçimsel diller, Chomsky sınıflandırmasına göre 4 sınıfa ayırılır:

  • Tip 3 Düzenli diller
  • Tip 2 Bağlamdan bağımsız diller
  • Tip 1 Bağlama duyarlı diller
  • Tip 0 Özyinelemeli sayılabilir diller

Her sınıf, daha küçük sayılı sınıfların bir alt kümesidir. Tip 0 en genel sınıftır, Turing makina ve bilgisayar programıyla sayılanan her dilli kapsar.

Bu sınıflandırma (hiyerarşi), dillerin dizilerini türeten gramer ya da kabul eden makinaların hesaplama gücüne göre yapılmıştır.

Uygulama[değiştir | kaynağı değiştir]

Teorik bilişim bilimi bakımından önemli olan bu madde pratikte programlama dilleri kullanarak bilgisayar programları üretilmesini sağlayan derleyici ve yorumlayıcı yazılımlarının hazırlanmasında önemli bir rol oynar. Biçimsel dil kuramı, sıfırdan bir programlama dili geliştirmek isteyen bir bilgisayar programcısının ilk öğrenmesi gereken konulardan biridir. Mesela alttaki Tip 2 grameri Java,C,C++ de kullanılan floating point sayılarından oluşan biçimsel dili tanımlar; bu dil 3.1415 ya da 1.40239846e-45f gibi sayıların yazılış şekillerini gösterir.

FloatingPointLiteral:
       Digits . [Digits] [ExponentPart] [FloatTypeSuffix]
       . Digits [ExponentPart] [FloatTypeSuffix]
       Digits ExponentPart [FloatTypeSuffix]
       Digits [ExponentPart] FloatTypeSuffix
Digits:
       Digit
       Digits Digit
Digit:
       0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
ExponentPart:
       ExponentIndicator SignedInteger
ExponentIndicator: one of
       e E
Si gnedInteger:
       [Sign] Digits
Sign: one of
       + -
FloatTypeSuffix: one of
       f F d D