Merhabalar, yeni bir seri başlangıcında beraberiz. Bu serimiz merak ettiğiniz ya da bugüne kadar hiç duymayıp ilk defa burada duyacağınız IT Kavramlarını içeriyor olacak.

Bu yazılarımda, moda mod tanımlardan ziyade, IT Sektöründe geçen 7 yılda geliştirme süreçlerinde edindiğim tecrübelerden öğrendiklerimi içine alan anlatımlar şeklinde olacak.

Kavramların benim için hikayelerinden de zaman zaman bahsetmeye çalışacağım, ama en sonunda kavramın teknik olarak karşılığını öğrenerek bu yazılardan ayrılıyor olacaksınız.

Bugün Syntax Kavramını ele alacağız.

Syntax Nedir?

Syntax programlama dilinin kod yazma kurallar bütünüdür. Türkçe karşılığı olarak sözdizimi kavramını görürsünüz.

Python Syntax’ı diye bir ifade duyduğunuzda, burada Python’ın kod yazma kuralları ifade edilmiş demektir.

Programlama dillerine gelmeden önce gerçek hayatta iletişim dillerimize bakarsak hepsinin kendisine göre bir yapısının, kurallarının olduğunu görürüz.

Örneğin; yüklemi olmayan bir cümleden anlamlı bir cümle olarak bahsedemeyiz.

“Ben yarın okula” diye bir cümle kursam, cümleyi duyan kişi için bir belirsizlik ve anlamsızlık yaratacağı aşikardır. Çünkü dilin kurallarına uygun bir cümle kurup cümleyi tamamlamadım.

Programlama dillerinin de kodu derleyecek ya da yorumlayacak motorları için, kodu anlamlı hale getiren kuralları ve kısıtlamaları vardır.

Python Dili İle Syntax’ı Anlamak

Python programlama dilini ve bazı Syntax kurallarını ele alalım.

En temel Syntax kuralları tanımlamalarla alakalıdır. Mesela bir Python değişken ismi sayı ile başlayamaz. Eğer sayı ile başlayan bir değişken yazmaya çalışırsanız, kod yorumlayıcısı bu adımda size bir hata bildirimi dönecektir.

Bu tür hatalara Syntax Error ismi verilir.

Yine bir başka kural if, for gibi kod basamaklarında for içine yazılması beklenen kod 4 karakter kadar içeriye girinti oluşturarak başlamalıdır.

for i in list:
    return i

Bu şekilde dilin kurallarına Syntax kuralları diyoruz.

Semantik Syntax

Programlamada önemli konulardan biri de standartlara uygun kod geliştirmektir. Burada devreye Semantik Syntax kavramı girer. Bu kavram sektörde kullanılıyor mu bilmiyorum ama bu yazıda bunu böyle ifade etmek istedim. Aşağıda okuyacağınız kavramın farklı bir ismi varsa yorumlarda belirletebilirseniz sevinirim.

Semantik Syntax yani dilin derleyicileri ya da yorumlayıcıları için zorunlu olmasa da uygulandığında okuması ve bakımı daha kolay kodlar yazmamızı sağlayan anlamlı kurallar bütünüdür. Bu tür Semantik Syntax diyebileceğimiz yapılar dilin yaratıcıları tarafından Best Practices olarak ifade edilmiş olabilir. Tamamen buna uygun geliştirme de yapabilirsiniz. Ancak kendi Semantik Syntax’larınızı da yaratabilirsiniz.

Örneğin Python kendi kod yapısında bir fonksiyon isimlendirmesini snake_case Notasyonuna göre yapar. Yani her anlamlı kelime için arasına bir alt çizgi koyar. sayi_topla gibi bir fonksiyon ismi böyle yazılır.

Ama bu zorunlu bir kural değildir. Ekipçe biz fonksiyon isimlerini camelCase Notasyonuna göre yazacağız diyerek bir karar verip sayiTopla şeklinde bir yazımı kural olarak kendiniz belirleyebilirsiniz.

Semantik olmasının anlamı sözde anlamlı olmasıdır. Dil için yapıda hiçbir değeri yoktur.

Bunlar katı kurallar olmasa da uygulandığında ve hatta ekipçe belirlenmiş bir standart haline getirildiğinde, anlaşılması kolay, kodlamaktan da daha çok zevk aldığınız programlar yazmanızı sağlar.

Aman Tanrım Her Dilin Syntax Kurallarını Nasıl Öğreneceğim!!!

Aklınıza bu soru gelmiş olabilir. Sektörde pek çok dil var, hepsinin kurallarını nasıl ezberleyeceğiz ya da aklımızda tutacağız?

Bu noktada hiç korkmanıza gerek yok değerli arkadaşlar. Bir kere çoğu programlama dili birbirinden çok fazla esinlenmelere sahip olduğu için genelde %80-90 oranlarında bir benzerliğe sahiptir. Zaten ayrıştıkları en önemli noktalar birisi için olmazsa olmaz ve sürekli kullanılan yapılarda oluyor. Bir dili öğrenmeye başladığınızda duymaya başladığınız ilk Syntax kuralı bu oluyor zaten.

Mesele C# programlama dilinde her kod satırı noktalı virgül ile bitmek zorundadır. Ancak Python’a geçtiğinizde noktalı virgül diye bir kod tamamlama yöntemi yoktur. Bir alt satıra geçmek o kod satırının bittiği anlamına gelir.

Eğer C#’dan Python’a geçiyorsanız, neredeyse ilk duyduğunuz şey bu oluyor. “Python’da noktalı virgül yok.”

Bunun dışında ufak tefek farklılıklar varsa bunlar zaten dili öğrenmeye başladığınız Tutorial’larda ifade edilir ve sıklıkla tekrar ettiğinizde hızlıca oturmaya başlar. Ayrıca programlama yaparken en önemli konunun şu olduğunu düşünüyorum hata yapmaktan korkmamalı. Çünkü bütün derleyiciler ya da yorumlayıcılar müthiş bir Trace(Hata Yakalama) sistemine sahipler ve hangi satırda hata yaptığınızı size hemen bildirirler. 2 defa hata yaptığınızda zaten çoktan öğrenmiş oluyorsunuz kuralları. O yüzden, başlangıçta temel kuralları öğrenmeye çalışın. Geri kalanını yolda öğrenmeye devam…

Snippets

Bununla birlikte kod editörlerine eklenebilen Snippets eklentileri sayesinde, kodlarımızı daha hatasız yazabilmekteyiz. Çünkü bir kodun nasıl tamamlanacağını, örneğin bir fonksiyonun hangi parametrelere sahip olduğunu bize bu eklentiler gösterebilmektedir. Ayrıca Kod editörleri o kadar gelişmiş durumdaki, örneğin kapatmanız gereken bir parantezi kapatmadınız, daha kodu çalıştırmadan bu hatayı size gösterebilmektedir. Satır numarasına kadar gösterip neden hata aldığınızı ve hatta bunu nasıl çözebileceğinize kadar gösterebilmektedir. Hatta daha ileri gidip Error bildiriminin olduğu satırda o Error’a çift tıkladığınızda eksiği sizin yerinize tamamlayabilmektedir.

Yani Syntax kurallarını ezberlemek diye bir şey yok. O yüzden hiçbir dilin Syntax’ından korkmak diye de bir şey yok.

Syntax ile alakalı söyleyebileceklerim bu kadardı.

Keyifli kodlamalar.

Bir sonraki kavramda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.