Proje iki kısımdan oluşuyor. İlk kısımda BNF (Backus Normal Form) ile yeni bir dil için sözdizimi(syntax) tasarımı yapılıp lex aracı
kullanılarak yazılım dili için bir sözlüksel çözümleyici (lexical analyzer)
tasarlanıp, gerçekleştirilmiştir. Linkteki Proje1 adlı dosyada; tasarımı anlatan ve ayrıntılı bnf tanımını içeren rapor dosyası + bu bnf'e uygun biçimde gerçekleştirilmiş lex kütüğü + örnek bir deneme kütüğü + makefile mevcuttur.
İkinci kısım için YACC kullanılmıştır. YACC temel olarak BNF (Backus Normal Form) kullanarak cümle dizimini belirtmektedir. LEX ile birlikte kullanıldığında bir dil tasarımının neredeyse yarısı olan lexical (kelime) ve syntax (cümle) analizi tamamlanmış olur. Bundan sonra dildeki her kelime ve cümle diziliminin anlamını (semantic) kodlamak kalır. Biz bu proje ile birlikte kelime ve cümle analizini tamamlamış olduk. Linkteki Proje2 adlı dosyada yacc+lex+makefile+deneme kütüğü mevcuttur. YACC'da karşılaşılan conflictleri düzeltecek şekilde bnf tanımı yeniden yapılmış ve ufak değişikliklere gidilmiştir.
Kaynakça
- O’Reilly - Lex and Yacc
- http://www.bilgisayarkavramlari.com/2008/12/12/yacc/
- http://www.cs.utk.edu/~eijkhout/594-LaTeX/handouts/parsing/yacc-tutorial.pdf
0 yorum:
Yorum Gönder