Syntax Nedir? Ne İşe Yarar?
Syntax Nedir? Ne İşe Yarar?
Doğru ve hızlı bir şekilde kod yazmayı öğrenmek kariyerinde birçok avantaja kapı aralamanı sağlayabilir. Kodlama, günümüzün teknoloji odaklı iş dünyasında ilerlemene yardımcı olur, problem çözme becerilerini geliştirir ve yaratıcılığını üst seviyelere taşır. Bununla birlikte teknoloji alanında devrim yaratacak bir sonraki uygulamayı veya yazılımı oluşturmadan önce programlamaya dair bazı temel noktaları bilmen gerekir. Bu temel noktaların başında gelen syntax, diğer adıyla syntax (sözdizimi), programlama söz konusu olduğunda en az dilin işlevi kadar değerli bir konuma sahiptir. Syntax kurallarının programlama dillerininin yapısını nasıl yönettiğini, syntax ana bileşenlerini, syntax sözdizimi hatalarının nasıl önleneceğini ve çok daha fazlasını keşfetmek için okumaya devam edebilirsin.
Syntax Nedir?
Dilbilimde sözdizimi, dilbilgisi açısından doğru cümlelerin oluşumunu yöneten kuralları ifade eder. Peki programlamada syntax ne işe yarar? Benzer şekilde bilgisayar programlamada sözdizimi, programlama dillerinde bulunan sembollerin, kelimelerin ve noktalama işaretlerinin yapısını yöneten kuralları ifade eder.
Konuştuğumuz dillerin syntax ifadeleri olmasaydı anlam ve kavramada bozulmalar olurdu. Bunun nedeni ise herkesin kelime sırası ve cümle yapısı konusunda kendi kurallarını oluşturmak zorunda kalması. Benzer şekilde programlama dillerinde bulunan syntax, çeşitli sembol kombinasyonlarının ne anlama geldiğini tanımlar. Syntax ayrıca bir geliştiricinin kaynak kodunu yazmak için kullanabileceği geçerli anahtar sözcükleri ve simgeleri de tanımlar. Nasıl gramer kuralları her dilin temelini oluşturuyorsa benzersiz sözdizimi de programlama dillerinin temelini oluşturur, onları adeta yönetir. Yine de iş okumaya gelince bilgisayarlar oldukça titizdir; programlama dilinin sözdizimine sıkı sıkıya bağlı kalmak için kodları çok dikkatli yazman gerekir. Syntax üzerinde meydana gelen herhangi bir sapma söz dizim hatasına neden olur ve bilgisayar kodu çalıştıramaz.
Programlamada Syntax Neden Önemli?
Bir programlama diline hakim olmak için sözdizimini anlaman gerekir. Kodun belirlenmiş yapısal kurallara göre yazılması hem makinelerin hem de insanların anlamasını kolaylaştırır. Bu durum yazılım camiasında kod okunabilirliği (code readability) olarak bilinir.
Okunabilir kod kendi kendini açıklayıcı niteliktedir ve farklı kişiler tarafından kolaylıkla anlaşılabilir. Bu özellikle işbirliğini ve yeniliği ekip içerisinde kolayca uygulamana hatta teşvik etmene yardımcı olabilir. Meslektaşların kodu geliştirebilir ve gelecekte kodu güncellemek isteyen programcının işi, kodu temiz ve okunabilir olursa çok daha kolay olacaktır. Okunabilir kod, kodlamanın dört C’sine uyar: code integration (kod entegrasyonu), communication (iletişim), consistency (tutarlılık) ve clarity (netlik). Aşağıda her kod kalitesi metriğinin bir dökümü yer alıyor:
- Kod entegrasyonu: Okunabilir kod, derleyiciler ve yorumlayıcılar (tercümanlar) tarafından kolayca anlaşılabilir. Geliştirici veya kullanıcı, bir programlama dilinde yazılan kodu başka bir programlama diline çeviren bilgisayar programıdır. Bu sırada bir tercüman, çalışma zamanında Pyhton ve Java gibi programlama dillerini aktive eder.
- İletişim: İyi yazılmış kod, kendi kendini açıklar niteliktedir, belirsizliğe yer bırakmaz. Bu özellik, farklı ortak çalışanların kodu paylaşması, birleştirmesi ve güncellemesi gereken açık kaynaklı projeler için önemlidir.
- Tutarlılık: Kod, yerleşik sözdizimine sadık kaldığında tutarlıdır. Örneğin, noktalama işaretlerinin tutarlı kullanımı ve nesnelerin/değişkenlerin adlandırılması gibi. Böylelikle öngörülebilir sonuçlar ortaya çıkar ve kodun anlaşılması kolaylaşır.
- Açıklık: Tüm kodlar temelde bir dizi talimat olduğundan, bu talimatları net bir şekilde iletmeye yardımcı olur. Diğer bir deyişle, okunabilir kod, işlevini ve amacını açıkça belirtir.
Programlamada Syntax Ana Bileşenleri
Bilgisayar programlama dillerinde syntax genel olarak 3 düzeye ayrılır:
Kelimeler: Bu sözcük karakterlerin nasıl belirteç oluşturulacağını belirler. Belirteç, kaynak kodun temel bir bileşenidir. Karakterler 5 belirteç sınıfından birine (tanımlayıcılar, işlemler, sabitler, ayrıcılar, ayrılmış sözcükler) aittir. Her sınıf, tokenin işlevini o programlama dilini kurallarına göre belirler.
İfadeler: Bu dilbilgisi düzeyi, belirteçlerin ifadeleri nasıl oluşturduğunu belirler. Her programlama dilinin kendine özgü bir anlatımı vardır.
Bağlam: Bu bağlamsal düzey, adlandırma kurallarını (örneğin adların atıfta bulunduğu değişkenler veya nesneler) ve türlerin geçerliliğinin belirler.
Bilgisayar programlama sözdiziminin 9 ana bileşeni şunlardır:
İfadeler
Bir ifade, zorunlu bir programlama dilinin sözdizimsel bir bileşenidir. Tek bir kod satırı kullanan bir ifade, gerçekleştirilecek bir eylemi ifade eder. Perl’de yazılmış bir ifadeden örnek verecek olursak:
$a = 3;
Bu ifadede $a değişkenine bir dize olan 3 değeri atanır. Dizeler, sıralı bir karakter dizisinden oluşan ve değerleri için kullanılan veri türleridir. Bu tür bir ifade, değişkene değer atfedildiği için atanmış bir ifadedir.
Değişkenler
Değişken, belirli koşullarda veya programa iletilen bilgiye bağlı olarak değişebilen bir değerdir. Genellikle bir program talimatlardan (bilgisayara ne yapması gerektiğini söyleyen) ve verilerden (program çalışırken kullanılan) oluşur. Verilen değişken ve sabit değerlerden meydana gelir. Sabit değerler, değiştirilmediği için sabit değer olarak adlandırılır. Programın son kullanıcısı gerçek sayıları sağladığından, değişken değerler genellikle 0 veya başka bir varsayılan değerle başlatılır. Hem değişkenler hem de sabit değerler genellikle türüne göre kategorize edilir. Veri türlerine örnek olarak karakter sınırlaması olan bir dizi metin karakteri ve ondalık sayı olarak ifade edilen tamsayılar verilebilir.
Operatörler
Operatör, genellikle bir eylemi veya süreci temsil eden karakter veya karakter dizisidir. Operatörler, derleyiciye veya yorumlayıcıya belirli matematiksel, ilişkisel veya mantıksal işlemleri gerçekleştirmesini ve nihai bir sonuç üretmesini söyler. Yüksek seviyeli programlama dillerinde 3 ana operatör vardır:
- Matematiksel operatörler: Hesaplamalar (örneğin toplama, çıkarma ve çarpma) gerçekleştirmek için matematiksel operatörleri kullanılır.
- Karşılaştırma operatörleri: Atamalar ve karşılaştırmalar yapılmasını karşılaştırma operatörleri sağlar. Karşılaştırma operatörleri, doğru veya yanlış bir sonuç elde etmek için giriş verileri üzerinde Boole mantığını uygular. Karşılaştırma operatörleri arasında <, >, >=, <=, === ve !== bulunur.
- Mantıksal operatörler: Daha karmaşık karar almayı kolaylaştırmak için ilişkisel operatörleri birleştiren mantıksal operatörler kullanılır. Mantıksal operatörler VE, VEYA ve DEĞİL'i içerir.
Anahtar Kelimeler
Anahtar kelimeler temel sözdiziminin bir parçasını oluşturur. Derleyici için özel anlamlara sahip, önceden tanımlanmış kelimelerdir. Anahtar kelimeler, tanımlayıcı olarak kullanamayacağın ayrılmış kelimelerin tersidir. Bir programlama dilinde bulunan anahtar kelimelerin sayısı, onun karmaşıklığını açıkça gösterebilir. Elixir'de yaklaşık 15 anahtar kelime bulunurken Visual Basic'te yaklaşık 217 anahtar kelime bulunur. Her programlama dilinde bulunan anahtar kelimelerin listesi için GitHub tarafından derlenen bu listelere göz atabilirsin.
Tanımlayıcılar
Tanımlayıcılar değişkenler, sabitler, tür tanımları ve yapılar gibi belirli varlıklara verilen adlardır. Her programlama dilinin varlıklara açıklayıcı adlar atamak için kuralları olsa da tanımlayıcıların o dilin teknik sınırlamalarına uyması gerekir. Tanımlayıcıların ayrıca evrensel programlamanın en iyi uygulamalarını takip etmesi önemlidir.
Veri tipleri
Veri türleri, bir değişkenin hangi tür değere sahip olduğunu belirtir. Veri türleri ayrıca sözdizimi hatalarına neden olmadan değişkenlere ne tür matematiksel, ilişkisel veya mantıksal işlemlerin uygulanacağını da belirtir. Veri türleri, değişkeni başka bir hesaplamada oluşturmak, dönüştürmek ve kullanmak için hangi işlemlerin gerçekleştirileceğini tanımlar.
Şartlılar
Şartlılar (koşullu ifadeler olarak da bilinir), bilgisayara kod belirli koşulları karşıladığında hangi kararları vermesi gerektiğini söyler. Önceden belirtilen koşullar doğru veya yanlış olarak değerlendirilmelidir. Koşullu Boolean ifadesi örneği verecek olursak:
( money < 7 )
( loop_counter < length_of_loop )
( rent > 700 )
( test_score > 70 && grade_level == 7 )
“If” ifadesinin parantez içindeki bilgi koşuludur. Bir koşulun doğru veya yanlış olarak değerlendirilmesi gerekir. <, > ve == genellikle Boole değerleri oluşturmak için kullanılır.
Fonksiyonlar
İşlevler olarak da bilinen fonksiyonlar, birden çok kez yazmak yerine tekrar tekrar kullanabileceğiniz kod parçalarıdır. Programcıların bir sorunu daha küçük, daha yönetilebilir parçalara ayırmasına veya ayrıştırmasına olanak tanır. Her parça sırayla belirli bir görevi yerine getirir. Bir işlev oluşturduğunda, nasıl çalıştığına ilişkin ayrıntıları belgelemene gerek yoktur. Böylelikle büyük resme odaklanarak bütünü kolaylıkla ortaya çıkarabilirsin.
Döngüler
Döngü, belirli bir koşulu karşılayana kadar sürekli olarak tekrarlanan bir talimat dizisi veya kod bloğudur. Bir döngünün yapısı iki kısma ayrılabilir: kontrol ifadesi ve gövde.
Kontrol ifadesi, döngünün gövdesini çalıştırmadan önce kodun karşılaması gereken koşulları içerir. Döngünün her yinelemesinde kontrol ifadesinde bulunan koşulların doğru olması gerekir. Döngünün gövdesi birden çok kez yürütülecek mantıksal ifadeler dizisini veya kod bloğunu içerir. Farklı programlama dillerinde farklı döngü türleri bulunur. Ayrıca döngülerin eylemlerini belirlemek için farklı kurallar uygularlar.
Syntax Hataları Nasıl Önlenir?
Bilgisayarlar kod okuma ve yürütme konusunda çok titizdir. Kullanıcılar, bir cümledeki yazım hatalarını veya dilbilgisi hatalarını kolaylıkla tespit edip gerekli değişiklikleri yapabilirken bilgisayarlar bu düzeyde bir zekaya sahip değildir. Bir komut yanlış yazıldığında veya programda hatalar oluştuğunda bilgisayar nasıl ilerleyeceğini bilemez ve programı çalıştıramaz. Kod yazarken sözdizimi hatalarını önlemek için ana ifadelerin ve işlev çağrılarının sözdizimini not etmeyi düşünebilirsin. Kodunu yazarken bu kısa notları pratik bir referans olarak kullanabilirsin.
Sözdizimi hatalarının kodunda nerede göründüklerini anladıktan sonra düzeltilmesi kolay olsa da hata mesajları bu avantajı tersine çevirebilir. Örneğin Python'ın hata mesajları arasında SyntaxError: invalid syntax ve SyntaxError: invalid token bulunur. Bu hata mesajları sana sorunun programın neresinde olduğunu söyler. Bazen hata, hata mesajının bulunduğu yerde değil önceki satırda olur.
Aşamalı olarak bir program oluşturuyorsan hata genellikle eklediğin son satırda olur. Kodu bir kitaptan yeniden oluşturuyorsan, bir satırı veya sembol ve karakter dizisini yanlış kopyalamış olabilirsin. Yazdığın her kod satırını kitaptaki kod satırlarıyla karşılaştırarak bu hataları tespit edebilirsin. Kitabın kodunun yanlış veya güncelliğini kaybetmiş olabileceğini, bunun da kitap tarafından önerilmeyen değişiklikler yapmanı gerektirebileceğini unutmamalısın.
Derleyici hatalar rapor ediyorsa ve sen bunu göremiyorsan, bunun nedeni senin ve derleyicinin aynı koda bakmaması olabilir. Düzenlemekte olduğun programın derleyicinin çalıştırmaya çalıştığı programla aynı olup olmadığını doğrulamak için programlama ortamını kontrol etmen gerekir. Emin değilsen programın başına bariz bir sözdizimi hatası eklemeyi deneyebilirsin. Daha sonra kodu tekrar çalıştır veya içe aktar. Derleyici yeni hatayı tespit edemiyorsa muhtemelen programlama ortamının ayarlarında bir sorun vardır.
Artık programlama dillerinde hem syntax hem de anlambilim bakımından nasıl bir işlevler topluluğunu olduğuna dair temel bir anlayışa sahipsin. Bir sonraki adımda sen de Techcareer.net’in yazılım geliştirme hakkındaki Bootcamp eğitimlerine kayıt olabilir ve syntax alanında öğrendiklerini başarılı ekiplerle birlikte geliştirme fırsatına sahip olabilirsin.
Sıkça Sorulan Sorular
Hangi programlama dillerini öğrenmeliyim?
Hedeflerine ve ilgi alanına bağlı olarak çeşitli programlama dillerinde uzmanlaşman mümkündür. Yeni başlıyorsan Pyhton, öğrenmesi kolay ve çok yönlüdür. Web geliştirmeyle ilgileniyorsan HTML, CSS ve JavaScript öğrenmeyi düşünebilirsin. Yazılım geliştirme veya uygulama geliştirme için ise genellikle Java, JavaScript veya Swift dilleri önerilenler arasındadır.
SQL bir programlama dili midir?
Evet, SQL (Structured Query Language) bir programlama dilidir. İlişkisel veritabanlarını yönetmek, sorgulamak ve değiştirmek için özel olarak tasarlanmıştır. SQL, kullanıcıların bir veritabanına veri ekleme, güncelleme, silme ve alma gibi görevleri gerçekleştirmesine ve ayrıca veritabanının genel yapısını yönetmesine olanak tanır.
Kaç tane programlama dili vardır?
Sürekli olarak yenileri oluşturulduğundan ve eskileri kullanım dışı kalabileceğinden kesin bir programlama dili sayısı yoktur. Bununla birlikte farklı popülerlik ve kullanım düzeylerine sahip, belgelenmiş 700'den fazla programlama dili bulunur. Bu dillerin yalnızca bir kısmı yaygın olarak tanınır ve sektörde yaygın olarak kullanılır.
Bootcamp eğitimleri ücretli midir?
Bootcamp, yazılım teknolojileri, veri bilimi gibi bilişim alanındaki konularda Techcareer.net tarafından düzenlenen ücretsiz bir öğrenme etkinliğidir. Bootcamp'in amacı katılımcıları güncel yazılım teknolojileri alanında eğitip işe başlayabilecek bilgi ve donanım seviyesine eriştirmektir.