Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Lexical analyzer derleyicinin ön yüzünü oluşturmaktadır. Kaynak koddaki symbolleri veya karakterleri belli bir sırada alarak, çıktı olarak syntax analysis kısmını oluşturacak token ’ların oluşturulmasını sağlamaktır.

Parsing işlevi ise semboller toplamının dil için verilen gramere uygun olup olmadığını anlamak açısından yapılan parse işlevidir. (Parse ‘ın türkçesi parçalama olabilir) Lexical analyzer parser ‘ın bir rutini olabileceği gibi beraber çalışan rutinlerde olabilirler.

Lexical analyzer birçok işlev de gerçekleştirebilmektedir. Örneğin kaynak koddaki boşlukların (white spaces) ve yorumların dikkate alınmaması gibi. Aslında en önemli ek görevi derleyiciden gelen hataların kaynak kod ile eşleştirilmesidir. Yani hatanın kaynak kodda nereye tekabül ettiğini göstermesidir. Hatta bunun için kaynak kodun bir kopyasını dahi alabilir.

Lexical analyzer kısmına önyüz oluşturması açısından scanner olarak tabir edilen programlar da kullanılabilir. Bu programlar lexical analzer kısmına girmeden önce kaynak kodda değişiklik yapılmasını sağlar. Örneğin Fortran dilinde kaynak kod önce boşlukları temizlemek için scanner tarafından incelenirdi. Fakat scanner kullanımı tamamiyle isteğe bağlıdır.

Tam olarak lexical analzer ile parser ‘ın ayrılması derleyici tasarımı açısından bir çok kolaylık getirmektedir. Aşağıda bunun sebepleri bulunmaktadır.

• Basit Tasarım

Örneğin boşlukların parser tarafından gözardı edilmesi, lexical analyzer tarafından göz ardı edilmesinden daha kolaydır. Böylece lexical analzer üzerinde fazladan işler yapılmadan parser ile bu ek görevler halledilebilir.

• Derleyici Verimliliği

Ek görevlerin lexical analyzer üzerinden parser tarafına geçmesi performansı arttırır çünkü lexical analzer tüm zamanını token oluşturmaya ayırabilir. Aksi takdir de derleme işleminin zaman açısından çoğunluğu lexical analzer ksımında geçebilir.

• Derleyici Taşınabilirliği

Makine veya dil bağımlılıkları lexical analzer kısmında tutulabilir. Böylece tam anlamıyla sadece lexical anayzer değiştirilerek taşınabilirlik sağlanır
MrOK
15 Haziran 2005 21:05
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?
» lex


Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
» yacc » posix

© 2005, Bilişim Kulübü. (1125 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen