Java 1.5 Programlama Dili İçin Bir Ayrıştırıcı Tasarımı ve Gerçekleştirimi


Tezin Türü: Yüksek Lisans

Tezin Yürütüldüğü Kurum: Çanakkale Onsekiz Mart Üniversitesi, Fen Bilimleri Enstitüsü, Türkiye

Tezin Onay Tarihi: 2012

Tezin Dili: Türkçe

Öğrenci: Mümüne ÖZÇETİN

Asıl Danışman (Eş Danışmanlı Tezler İçin): İSMAİL KADAYIF

Açık Arşiv Koleksiyonu: AVESİS Açık Erişim Koleksiyonu

Özet:

Ayrıştırıcı, bazı özel kurallara göre yazılan bir metni ayrıştıran ve metni bellekte özel bir veri yapısıyla temsil eden bir programdır. Ayrıştırıcılar bilgisayar biliminde değişik alanlarda kullanılabilir. Onlar bir programlama dilinde yazılan programı başka bir programlama dilinde yazılan programa dönüştüren derleyicilerde ara bir adım olarak kullanılabilir. Ayrıca onlar doğal dil işlemede de yaygın olarak kullanılmaktadır.Bu tezde, Java 1.5 belirtimine dayalı programlar için bir ayrıştırıcı tasarlamaya ve gerçekleştirmeye çalıştık. Yazılım araçları olarak otomatik tarayıcı üreteci olan JFlex ve otomatik ayrıştırıcı üreteci olan CUP'ı kullandık. JFlex, tokenları tanımlamak için düzenli ifadeleri kullanır. CUP, dilin sözdizimsel kurallarını belirtmek için içerikten bağımsız gramerleri kullanır. CUP, çoğu programlama dilini ayrıştırabilen yukarıdan aşağı LALR ayrıştırıcıları üretir. Bizim ayrıştırıcımız birden fazla Java dosyasını ayrıştırabilir ve onları tek bir ayrıştırıcı ağacı olarak temsil edebilir. Ayrıştırıcımızın doğru çalıştığını test etmek için şu adımlar uygulanır. Orijinal Java dosyalarını ayrıştırdıktan sonra, ayrıştırma ağacını dolaşarak yeni Java dosyaları diske yazdırılır. Bu yazdırılan dosyalar, dosyalarımızın ilk grubunu oluşturur. Daha sonra ilk grupta yazdırılan Java dosyaları, ayrıştırıcımıza girdi teşkil eder ve ilgili ayrıştırma ağacı dolaşılarak ikinci grubu oluşturan yeni dosyalara yazdırılır. Birinci gruptaki her bir Java dosyası ikinci gruptaki ilgili Java dosyası ile karşılaştırılır. Her iki gruptaki karşılıklı dosyaların birebir aynı olduğu görülür.