Java

Syntax (Sentaks) nedir?

21 Nisan 2018

Merhabalar. Java ile “Hello, World!” programı yazdıktan sonra, sürekli uymamız gereken bazı kurallardan bahsetmek istiyorum. Bu zamana kadar kullandığımız tüm dillerde aslında “syntax” mevcuttur. Ancak programlama dillerinde farklı olarak bu kurallara kesin bir şekilde uymamız gerekiyor. Çünkü, karşınızdaki bir insan değil, bir bilgisayar. Doğal olarak bilgisayarın anladığı dil sabittir ve yazılan bir şeyi yazıldığı gibi yorumlar. Örneğin, bir insan mecazi anlamda kullanılan bir sözcüğü anlayabilir ama bilgisayarda aynı durum söz konusu değil. Bu nedenle bazı kurallara uymanız gerekiyor.

Daha kolay anlamanız için Türkçe’deki bazı yazım kurallarından örnek vermek istiyorum. Örneğin, cümle bittikten sonra nokta işaretini koyarız. İşte Java’da kod yazarken de, satırın bittiğini söylemek için noktalı virgül (;) işaretini kullanıyoruz. Bunun dışında, bir bağırma cümlesi kurduğumuzda, cümlenin sonuna ünlem (!) işareti koyarız. Java’da bir kod bloku yazdığımız zaman süslü parantezleri ({ ve }) kullanırız. Son bir örnek daha vermek istiyorum. Benzer nesneleri aynı cümlede kullanırken aralarına virgül koyuyoruz. Örneğin, “Pazardan elma, armut, çilek ve şeftali aldım.” cümlesinde meyveleri ayırt etmek için virgül işaretini kullandık. Java’da dizi (array) tanımlarken de elemanları ayırt edebilmek için bu şekilde virgül kullanıyoruz.

Eğer, kodunuzda bir syntax hatası yaparsanız, programınız ya çalışmaz, ya da çalıştığında beklediğiniz sonucu vermez. Örneğin, kod yazarken noktalı virgül koymayı unuttunuz. Bilgisayar, “Sanırım burada syntax hatası yapmışsın. Ama ben ne demek istediğini anladım.” demez. Bunun yerine programı çalıştırmaz ve ne söylediğinizi anlayamaz.

Peki, binlerce satırlık bir kodda küçük hataları bulmak çok zor olmaz mı?

Güzel haber şu ki, Java ve bir çok programlama dilinde sizin hatalarınızı “büyük ölçüde” söyleyen bir mekanizma bulunur. Öyle ki, size kaçıncı satırda ne hatası yaptığınızı söyler. Syntax hatası aslında en kolay bulunan hatadır. Program direkt olarak size hatanın nerede olduğunu söyler ve siz baktığınız zaman çok çabuk bir şekilde bulabilirsiniz. İleride bahsedeceğim, mantık hataları gibi hataları bulmak çok daha zordur.

İsterseniz bir canlı örnek yapalım. Bir önceki yazıdan “Hello, World!” kodumuzu alalım ve satır sonundaki noktalı virgülü silelim. Yani kodumuz şu şekilde:

Bunu yaptıktan sonra Eclipse ekranımız şöyle oluyor:

Sanırım hepiniz kırmızı çarpıyı fark ettiniz. İşte Eclipse bize anlık olarak uyarı veriyor. Çarpı işaretinin olduğu satırda bir hata olduğunu söylüyor. Eğer o çarpının üzerine gelip biraz beklerseniz, size hatanın ne olduğunu da söylüyor.

Bu noktada yeterli düzeyde İngilizce bilginiz varsa, hatayı çok çabuk fark edersiniz zaten. Mesela yukarıdaki hatada bize şunu söylüyor:

“Sentaks hatası, blok açıklamayı tamamlamak için “;” koyun”

Yani, satırın bittiğini Java’ya söyleyin diyor. Bu şekilde programda hata varken, programı çalıştırmayı denerseniz karşınıza aşağıdaki gibi bir ekran çıkar:

Bu ekranda Eclipse size programınızda bir hata olduğunu söylüyor. Eğer bu hataya rağmen programı çalıştırmak isterseniz “Proceed” butonuna tıklamanız gerekiyor. Buradan çıkarmamız gereken sonuç ise, Eclipse, programımızı hata varken de çalıştırabiliyor. Ama bunu yaptıktan sonra da konsolda şöyle bir hata mesajı veriyor:

Hata mesajının sonunda “HelloWorld.java:6” yazdığını fark etmişsinizdir. Sonraki “6” sayısı, hatanın kaçıncı satırdan kaynaklandığını söylüyor. Bizim kodumuzda, noktalı virgülü unuttuğumuz satır da 6. satırdı. Bu sayede hatamızı çok rahat bir şekilde bulabiliyoruz. Ama dediğim gibi, syntax hataları bulunması en kolay hatalardır. Kodumuzdaki bir hatayı bulmak her zaman kolay olmayacaktır. İleride bu hataları bulmaya çalışma işlemine “debugging” diyeceğiz.

Eclipse hataları bulmada bize yardımcı oluyor mu?

Aynı kodda bir başka hata daha yapalım. Normalde programımız konsola “Hello, World!” yazıyor ve biz bu cümleyi tırnak içine aldık. Eğer bu tırnaklardan birini unutursak programımız yine bizi uyaracaktır. Yani kodumuz şu şekilde olursa:

Bu sefer Eclipse ekranımız şöyle oluyor:

Dikkatinizi çektiyse bu seferki çarpı işareti biraz daha farklı. Bunun anlamı, Eclipse programı bu hatayı sizin yerinize düzeltebilir. Tek yapmanız gereken çarpı işaretine bir kere tıklayıp, programın önerdiği çözümlerden doğru olanını seçmek. Ancak bazen Eclipse size aradığınız çözümü sunmayabilir. Öyle durumlarda elle kodunuzu düzeltmeniz gerekiyor. Mesela, bu örnekte bize doğru çözümü sunmayacak.

Yukarıdaki resimde “Insert missing quote” yazısını görebilirsiniz. Gerçekten de tırnaklardan biri eksik. Ama sağ taraftaki ekrana, yani hatayı düzelttikten sonra bize verilen koda bakarsanız, tırnak işaretini satır sonuna koyduğunu görebilirsiniz. Normalde bunu son parantezin soluna koyması gerekiyordu. Bana göre bu Eclipse’in bir eksiği ama programcı olarak bu tarz hataları kendimiz de fark edebiliyor olmamız gerekiyor. Sonuç olarak böyle bir hatayı görüp, kendimiz düzeltmemiz gerekiyor. Eclipse bize sadece ufak bir kopya veriyor aslında.

Bu yazıyı şimdilik burada kesmek istiyorum. Aslında syntax konusu sürekli karşımıza çıkacak. Siz sadece nasıl bir şey olduğunu bilin, yeter. İleride anlatacağım bir çok konunun başında o konuyla alakalı kısa bir syntax bilgisi vereceğim. Doğal olarak bu konu aslında hiçbir zaman bitmiyor. Bir sonraki yazımda değişkenlere hızlı bir giriş yapıp, ikinci programımızı yazacağız.

Bir Cevap Yazın

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

TR
EN TR
%d blogcu bunu beğendi: