Derleyici Tasarımı

Derleyici Tasarımı ile lisans 4. sınıf 1. dönemindeki seçmeli ders ile asıl başlangıcı yaptık. Fakat Derleyici Tasarımı dersine ön hazırlık olan Otomata Teorisi ile de bir önceki dönem girişi yapmıştık. Bu derste dönem projesi olarak CYK(Cocke–Younger–Kasami) Algoritmasının uygulamasını yaptık. Bu uygulama CFG(Context Free Grammer)‘den CYK’ ya dönüşüm yapılıp girilen string’in CFG’ ye uygun olup olmadığı test ediliyordu. Seçilen CFG üzerinde öncelikle NULL yani boş olabilecekler bulunuyor. Daha sonraki adımda bu NULL olabilecekler yok ediliyor. Tabi bunlar belli algoritmalara göre yapılan işlemler. NULL olabilecekler yok edildikten sonra ara işlem olan CFG’ den CNF(Conjunctive Normal Form)‘ ye dönüşüm yapılıyor.

Bu dönüşüm işleminin ardından CYK algoritması kullanılarak girilecek olan string’ in seçilmiş olan CFG’ ye uygun olup olmadığı test edilecektir.

Bu proje ile alakalı biri C# ile benim yaptığım diğeri de arkadaşım Ramazan Özgür DOĞAN’ ın JAVA ile yapmış olduğu iki örneği buradan indirebilirsiniz.

Böylelikle Derleyici Tasarımı ile alakalı kısma bir hazırlık yapmış olduk. Bu dersin bir sonraki döneminde asıl Derleyici ile alakalı projemiz oldu. Bu dersin dönem projesi de Türev Yorumlayıcı idi. Bu projede girilen bir ifadenin türevini alma işlemi yapılacaktı. Bu projede çeşitli işlem adımlarından geçmektedir. İlk adımı Gramer’in çıkarılması. Gramer çıkarıldıktan sonra JAVACC ile gerekli Class (sınıf)’ lar oluşturuluyor. Bunun ardından bu sınıfları kullanarak ağacın dalları üzerinde gezecek bir kod yazılıp türev işlemi gerçekleştirilmektedir.

Görüldüğü gibi girilen matematiksel bir fonksiyonun türevi yapılan yorumlayıcı ile alınıyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.