Yukarıdan aşağıya ve aşağıdan yukarıya ayrıştırma arasındaki temel fark, yukarıdan aşağıya ayrıştırmanın, bakış sembolünden giriş dizesine ayrıştırmayı gerçekleştirmesi, aşağıdan aşağıya ayrıştırmanın ise giriş dizesinden başlangıç sembolüne ayrıştırmayı gerçekleştirmesidir. Ayrıca, yukarıdan aşağıya ve aşağıdan yukarıya ayrıştırma arasındaki bir diğer önemli fark, yukarıdan aşağıya ayrıştırmanın en soldaki türetmeyi kullanması ve aşağıdan aşağıya ayrıştırmanın en fazla türetmeyi kullanmasıdır.
Üst düzey diller bilgisayar programları yazmaya yardımcı olur. Programcı tarafından anlaşılması daha kolaydır, ancak bilgisayar tarafından anlaşılmazlar. Bu nedenle, üst düzey program makine koduna dönüşür. Derleyicinin görevi, insan tarafından okunabilen kaynak kodunu makine tarafından okunabilen makine koduna dönüştürmektir. Bir program, makine koduna dönüştürmek için birkaç adımdan geçer. Tüm bu sürece Dil işleme Sistemi denir. Bunlardan biri derlemedir. Sözdizimi çözümleyici veya ayrıştırıcı derleyicidedir ve ayrıştırma görevini gerçekleştirir.
Yukarıdan Aşağıya Ayrıştırma nedir?
Her programlama dilinin, dili temsil eden bir dizi kuralı vardır. Sözdizimi çözümleyicisi veya ayrıştırma, giriş dizesini alır ve dilbilgisi üretimlerine uygun olup olmadığını kontrol eder. Başka bir deyişle, dilbilgisi bu dizeyi bir ayrıştırma ağacı kullanarak üretmelidir.
Yukarıdan aşağıya ayrıştırmada, ayrıştırma başlangıç sembolünden gerçekleşir ve verilen giriş dizesine ulaşır. Aşağıdaki dilbilgisi üretim kurallarını göz önünde bulundurun. Giriş dizesi (w) cad'dir.
S -> cAd
A -> ab /a
Yukarıdan aşağı ayrıştırma gerçekleştirdikten sonra ayrıştırma ağacı aşağıdaki gibidir.
Şekil 01: Yukarıdan Aşağıya Ayrıştırma ile Ağaç 1 Ayrıştırma
S c A d üretir ve A a b üretir. Dize cabd'dir. Gerekli dize değil. Bu yüzden diğer alternatifleri kullanmak için geri izleme yapmak gerekiyor.
Benzer şekilde, S c A d üretir. A için diğer seçeneği uygulamak, a verecektir. Şimdi gerekli dizeyi veriyor. Bu nedenle, ayrıştırıcı bu girdi dizesini kabul eder. Yukarıdan aşağıya ayrıştırma gerçekleştirdikten sonra ayrıştırma ağacı aşağıdaki gibidir.
Şekil 02: Yukarıdan Aşağıya Ayrıştırma ile Ağaç 2 Ayrıştırma
Giriş dizesi (w) abbcde olduğunda
Aşağıdaki dilbilgisi üretim kurallarını göz önünde bulundurun.
S -> aABe
A -> Abc/b
B -> d
Yukarıdan aşağıya ayrıştırmada, S -> aABe (A -> Abc'yi Değiştirerek)
S -> aAbcBe (A -> b ile değiştirilerek)
S -> abbcBe (B ->d ile değiştirilir)
S -> abbcde
İkame, önce en soldaki değişkenle, ardından bir sonraki sağ konumla başlar ve bu şekilde devam eder. Bu nedenle, en soldan türetme yöntemini izler. Ayrıca, bir değişken olduğunda hangi üretim kuralının seçileceğine karar vermek önemlidir.
Aşağıdan Yukarıya Ayrıştırma nedir?
Aşağıdan yukarıya ayrıştırma işlemi diğer şekilde gerçekleşir. Ayrıştırma, giriş dizesinden başlangıç sembolüne kadar gerçekleşir. Aşağıdaki dilbilgisi üretim kurallarını göz önünde bulundurun ve giriş dizesinin w ɛ cad olmasına izin verin
S -> cAd
A -> ab /a
Aşağıdan yukarıya ayrıştırma gerçekleştirdikten sonraki ayrıştırma ağacı aşağıdaki gibidir.
Şekil 03: Aşağıdan Yukarıya Ayrıştırma ile Ayrıştırma Ağacı
Verilen dize cad'dir. a, A tarafından oluşturulur. c, A ve d, S başlangıç sembolünü elde etmek için birleşir.
Giriş dizesi(w) abbcde olduğunda
Aşağıdaki dilbilgisi üretim kurallarını göz önünde bulundurun.
S -> aABe
A -> Abc/b
B -> d
Aşağıdan yukarıya ayrıştırmada, S -> aABe (B ->d ile değiştirilerek)
S -> aAde (A -> Abc'yi Değiştirerek)
S -> aAbcde (A -> b'nin Değiştirilmesi)
S -> abbcde
İkame, önce en sağdaki değişkenle başlar ve ardından bir sonraki sol konuma geçer ve bu şekilde devam eder. Bu nedenle, bir sol mot türetme yöntemini takip eder.
Yukarıdan Aşağıya ve Aşağıdan Yukarıya Ayrıştırma Arasındaki Fark Nedir?
Yukarıdan aşağıya ayrıştırma, önce ayrıştırma ağacının en üst düzeyine bakan ve ayrıştırma ağacında resmi bir dilbilgisi kurallarını kullanarak çalışan bir ayrıştırma stratejisidir. Aşağıdan yukarıya ayrıştırma, ilk önce ayrıştırma ağacının en alt düzeyine bakan ve ayrıştırma ağacını biçimsel bir dilbilgisi kurallarını kullanarak işleyen bir ayrıştırma stratejisidir. Ayrıştırma, yukarıdan aşağıya ayrıştırmada, başlangıç sembolünden giriş dizesine kadar gerçekleşir. Öte yandan, aşağıdan yukarıya ayrıştırmada, giriş dizesinden başlangıç sembolüne kadar ayrıştırma gerçekleşir.
Ayrıca, yukarıdan aşağıya ayrıştırmadaki ana karar, diziyi oluşturmak için hangi üretim kuralının kullanılacağını seçmekken, aşağıdan aşağıya ayrıştırmadaki ana karar, diziyi az altmak için bir üretim kuralının ne zaman kullanılacağını seçmektir. başlangıç sembolünü alın. Ayrıca, yukarıdan aşağıya ayrıştırma en soldaki türetmeyi kullanır ve aşağıdan aşağıya ayrıştırma en sağdaki türetmeyi kullanır.
Özet – Yukarıdan Aşağıya ve Aşağıdan Yukarıya Ayrıştırma
Yukarıdan aşağıya ve aşağıdan yukarıya ayrıştırma arasındaki fark, yukarıdan aşağıya ayrıştırmanın, bakan sembolden giriş dizesine ayrıştırmayı gerçekleştirmesi, aşağıdan aşağıya ayrıştırmanın ise giriş dizesinden başlangıç sembolüne ayrıştırmayı gerçekleştirmesidir.