Yukarıdan Aşağıya ve Aşağıdan Yukarıya Ayrıştırma Arasındaki Fark

temel fark yukarıdan aşağıya ve aşağıdan yukarıya ayrıştırma arasında yukarıdan aşağıya ayrıştırma, başlangıç ​​sembolünden giriş dizesine ayrıştırma yaparken aşağıdan aşağı ayrıştırma, giriş dizesinden başlangıç ​​sembolüne ayrıştırma gerçekleştirir. 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 soldan türetmeyi ve aşağıdan aşağıya ayrıştırmanın en sağdan türetmeyi kullanmasıdır..

Üst düzey diller bilgisayar programlarının yazılmasına 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 derleme. Sözdizimi çözümleyicisi veya ayrıştırıcı derleyicide ve ayrıştırma görevini gerçekleştiriyor.

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. Yukarıdan Aşağıya Ayrıştırma Nedir
3. Aşağıdan Yukarıya Ayrıştırma Nedir?
4. Yan Yana Karşılaştırma - Yukarıdan Aşağıya Aşağıya Tabular Formunda Ayrıştırma
5. Özeti

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 girdi dizesini alır ve dilbilgisi üretimlerine göre olup olmadığını kontrol eder. Başka bir deyişle, dilbilgisi bu dizeyi 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.

S -> cAd

A -> ab / a

Yukarıdan aşağıya ayrıştırma gerçekleştirildikten sonra ayrıştırma ağacı aşağıdaki gibidir.

Şekil 01: Yukarıdan Aşağıya Ayrıştırma ile Ayrıştırma Ağacı 1

S, c A d'yi ve A, bir b üretir. Dize cabd. Gerekli dize değil. Bu nedenle, diğer alternatifleri kullanmak için geri izleme yapmak gerekir.

Benzer şekilde S, c A d'yi üretir. A için diğer seçeneği uygulamak a verir. Şimdi gerekli dizeyi veriyor. Bu nedenle, ayrıştırıcı bu giriş dizesini kabul eder. Yukarıdan aşağıya ayrıştırma gerçekleştirildikten sonra ayrıştırma ağacı aşağıdaki gibidir.

Şekil 02: Yukarıdan Aşağıya Ayrıştırma ile Ayrıştırma Ağacı 2

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ırma,

S -> aABe (İkame A -> Abc)

S -> aAbcBe (A -> b yerine koyma)

S -> abbcBe (B yerine koyma -> d)

S -> abbcde

İkame önce en soldaki değişkenle, sonra bir sonraki sağ pozisyonla başlar ve böyle devam eder. Bu nedenle, en soldaki bir türetme yöntemini takip eder. 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 başka şekilde gerçekleşir. Ayrıştırma, giriş dizesinden başlangıç ​​sembolüne gerçekleşir. Aşağıdaki dilbilgisi üretim kurallarını göz önünde bulundurun ve giriş dizgisinin w-cad olmasını sağlayın

S -> cAd

A -> ab / a

Aşağıdan yukarıya ayrıştırma gerçekleştirildikten sonra 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 üretilir. C, A ve d birleşerek başlangıç ​​sembolünü S elde eder.

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ırma,

S -> aABe (B yerine koyma -> d)

S -> aAde (A -> Abc yerine koyma)

S -> aAbcde (Yer değiştirme A -> b)

S -> abbcde

İkame önce en sağdaki değişkenle başlar ve daha sonra bir sonraki sol konuma geçer ve bu şekilde devam eder. Bu nedenle, sol mot derivasyon 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, ilk olarak ayrıştırma ağacının en üst düzeyine bakan ve ayrıştırıcı ağacını resmi bir dilbilgisi kurallarını kullanarak çalıştıran bir ayrıştırma stratejisidir. Aşağıdan yukarıya ayrıştırma, ilk olarak ayrıştırma ağacının en alt düzeyine bakan ve ayrıştırıcı ağacını resmi bir dilbilgisi kurallarını kullanarak çalıştıran bir ayrıştırma stratejisidir. Ayrıştırma, başlangıç ​​sembolünden giriş dizesine, yukarıdan aşağıya ayrıştırmada gerçekleşir. Öte yandan, ayrıştırma giriş dizesinden başlangıç ​​sembolüne, aşağıdan yukarıya ayrıştırmada gerçekleşir.

Ayrıca, yukarıdan aşağıya ayrıştırmadaki ana karar, dizeyi oluşturmak için hangi üretim kuralının kullanılacağını seçerken, aşağıdan aşağıya ayrıştırmadaki ana karar, başlangıç ​​sembolünü elde etmek için dizeyi azaltmak için bir üretim kuralının ne zaman kullanılacağını seçmektir. Ayrıca, yukarıdan aşağıya ayrıştırma en soldan türetmeyi ve aşağıdan aşağıya ayrıştırma sağdan en fazla türetmeyi kullanır.

Özet - Yukarıdan Aşağı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 simgeden giriş dizesine ayrıştırmayı gerçekleştirirken, aşağıdan aşağı ayrıştırma, giriş dizesinden başlangıç ​​simgesine ayrıştırma gerçekleştirmesidir..

Referans:

1. “Derleyici Tasarım Dersi 5 - Ayrıştırıcılara Giriş ve LL (1) Ayrıştırma.” Derleyici Tasarım Dersi 5 - Ayrıştırıcılara ve LL'ye Giriş (1) Ayrıştırma, Ravindrababu Ravula'nın Kapı Konferansları, 22 Mayıs 2014. Buradan ulaşılabilir