Programlama Dillerinin Elemanları
Bir programın söz dizimi, simgelerin geçerli olarak kabul edilebilmesi için hangi düzende yazılması gerektiğini belirleyen kurallar kümesidir. Söz dizimi için en bilinen formal notasyon, Excended Backus Naur Form” (EBNF) olarak bilinir. Anlambilim bir programlama dilindeki bir ifadenin ne anlama geldiğidir. Ayrıca bir programlama dilinin temel elemanları arasında atama deyimi, tür kontrolü, alt programlar gibi kavramlar da bulunmaktadır.
Sözdizimi- Yazım (Syntax)
Sıradan dillerde olduğu gibi programlama dillerinin de bir sözdizimi (syntax) vardır. Bir program sözdizimi, simgelerin geçerli olarak kabul edilebilmesi için hangi düzende yazılması gerektiğini belirleyen kurallar kümesidir. Sözdizimi için en bilinen formal notasyon “Excended Backus Naur Form” (EBNF) olarak bilinir. Sözdizimi olarak yazılmış bir kod anlamsal olarak doğru olmayabilir.
Sözdizimi kuralları şekildeki sözdizimi diyagramları şeklinde verilirse anlaşılması daha kolay olacaktır. Daire ve oval şekiller gerçek karakterleri, dikdörtgenler ise sözdizimsel ifadeleri göstermektedir.
Sözdizimsel hataların hemen hemen tümü, derleyici tarafından yakalanıp raporlanacaktır. Ancak bazı hatalar derleyicinin yakalayamayacağı türden olup çalışma esnasında hatalara neden olabilir. Aşağıda bu tür hatalar ile ilgili bazı notlar verilmiştir.
- Belirleyicilerin uzunlukları ile ilgili sınırlamalara dikkat edilmelidir. Örneğin ilk 10 karakter dikkate alınıyorsa “”Ogrencinin_Numarasi” ile “Ogren-cinin_Notu” değişkenleri aynı değişkenler olarak alınacaktır.
- Birçok dilde küçük büyük harf ayrımı yoktur. Buna göre “SAYI” ile “sayi” aynı değişkenlerdir.
- Açıklamalar için iki kullanım tarzı vardır. Fortran, Ada ve C++ açıklamalar sırasıyla C, — ve // ile başlar. C’ de /*…*/ şeklinde, Pascal’da {….} veya (*….*) şeklindedir.
- Birbirine benzer ama farklı simgelere dikkat edilmelidir. Matematikten bilindiği gibi, “=” simgesi C ve Fortran’ da atama operatörü olarak kullanılırken, C’deki “==” ve Fortran’daki “.eq” simgesi eşitlik operatörü olarak kullanılır.
Anlambilim(Sematics)
Anlambilim, bir program dilindeki bir ifadenin ne anlama geldiğidir. Dilin sözdizimi çok iyi anlaşılır olsa da, anlamını kavramak daha zordur. Aşağıdaki cümlelerde, “yüz” sözcüğünün ilkinde sayı, ikincisinde yüzmek, üçüncüsünde bedenimizdeki yüzümüz olduğunun anlaşılması gerekir.
En büyük sayı yüz olmalıdır.
Çabucak yüz ve gel.
O bir yüz güzelidir.
Veri(Data)
Bir dili öğrenirken, insanların iki şeye odaklanmaları gibi bir eğilim vardır: Deyimlere ve komutlara. Bu konular üzerinde çalışıldığında ve öğrenildiğinde, verinin yapısı ile ilgili konulara eğilim gösterilmelidir. Programlamadaki asıl kavramı tanımlayalım.
Tür, bir değerler ve bu değerler üzerinde yapılabilecek işlemler kümesidir.
Atama Deyimi (Assignment Statement)
Tüm sıradan programlama dillerinde bulunan deyim atama deyimidir. Atama deyimi genel olarak üç işin yürütülmesini sağlar:
- Deyimin sağ tarafındaki ifadenin değeri hesaplanır.
- Deyimin sol tarafındaki ifadeyi hesapla. İfade bir bellek hücresinin adresini değerlendirmelidir.
- Adım(1) de hesaplanan değeri, adım (2) de elde edilen bellek hücresine kopyala.
Tür Kontrolü (Type Checking)
Atamanın sonunda, sol taraftaki hesaplama bir bellek hücresinin adresini üretirken, ifade belirli bir türde bir değer üretir. Adresin ilişkilendirilmiş olduğu değişkenin türüyle, ifade türünün aynı olacağı konusunda bir garanti yoktur. Hatta, üretilen değerin, değişkenin değer sınırları içinde olacağının da garantisi yoktur.
Tür kontrolü hedef değişkenin türüyle, ifade türünün uyumlu olup olmadığının kontrol edilmesidir. Bu, bir alt program çağrıldığında, gerçek parametrenin bir formal parametreye atanması durumunda da geçerlidir.
Tür kontrolü ile ilgili olası yaklaşımlar:
- Hiçbir şey yapma; atamanın anlamlı olmasını sağlamak, programcının sorumluluğundadır.
- İfadeden ortaya çıkan değeri, sol tarafın gerektirdiği türe dönüştür.
- Güçlü tür kontrolü: Türler uyumlu değilse, atamayı yapma.
Burada esneklik ile güvenik arasında bir çelişki durum bulunmaktadır. Ne kadarçok tür kontrolü yapılırsa, program o denli güvenilir olacak ancak, uygun bir tür kümesi tanımlamak için daha fazla çaba sarf etmek gerekecektir. Tersi düşünülecek olursa, daha az tür kontrolü, daha kolay program yazılmasını sağlayacak ancak, hataları bulmak zorlaşacak ve programın güvenirliği azalacaktır.
Kontrol Deyimleri (Control Statements)
Atama deyimleri normal olarak yazıldığı şekilde yürütülürken, kontrol deyimleri yürütmenin sırasını değiştirmek maksadıyla kullanılır.
Yapısal programlama, kontrol deyimlerinin sınırlandırıldığı program stiline verilen addır. İyi yapılandırılmış bir kontrol deyimi, iki şekilde olabilir:
- İki ya da daha fazla seçenekten birinin seçilmesi. if yada case deyimlerinde olduğu gibi.
- Tekrarlı ifadelerin çevrim durumları. for yada while deyimlerinde olduğu.
Döngü deyimleri özellikle iki sebepten dolayı önemlidir. Yürütme zamanının çoğu, döngü deyimlerinde harcanır ve, çoğunlukla döngünün başında yada sonunda yanlış kodlama yapılmış olabilir.
Alt programlar (Subprograms)
Alt program, programın farklı yerlerinde defalarca çağrılabilen, içinde veri tanımlamalarının ve yürütülebilir deyimlerin bulunduğu program birimleridir. Alt programlar başlangıçta aynı program parçalarının tekrar kullanılması gerektiğinde kullanılırken, modern bakış açısına göre programlamanın temel elemanlarından biri olarak kullanılır olmuştur. Bir alt program çağrıldığında, parametre olarak isimlendirilen değerler alt programa gönderilmiş olur.
Modüller (Modules)
Buraya kadar ele alınan elemanlar, program yazmak için yeterli olan ancak, yazılım sistemi oluşturmak için yeterli olmayan elemanlardır. Büyük programlar, bir programcı takımı tarafından geliştirirler. Bir alt program 40-50 satırdan olmamalıdır. Aynı şekilde 1600-2500 satırdan, daha büyük kodları kontrol etmek de anlamak da zordur. Modern programlama dilleri, fazla miktarda veri ve alt alt program içeren modüller içerir. Hataların önlenmesi ve yanlış anlamalara yol açmayı önlemek için, derleme süresince modüller arasındaki ara yüzden kontrolü avantaj sağlar.
Programlama Ortamı
Bir programlama ortamı, programlama dili ile birlikte, birçok bileşenden oluşur. Bu bileşenler, sembolik olarak kodlanmış programın bilgisayar donanımı tarafından istenilen işlevleri yerine getirmesi için gereken tüm unsurlardır.
Aslında programlama dili tek başına, ardışık olarak dizili olan sembollerden başka bir şey değildir. Aşağıda bir programlama ortamının temel unsurları sıralanmıştır.
Editör (Editor) : Kaynak kodu oluşturmak ve gerektiğinde değişiklik yapmak için gerekli olan araçtır. Editörde yazılanlar, seçilen dilin komutlarından oluşan metinlerdir.
Derleyici (Compiler) : Editör ortamında bir programlama dilinde yazılmış olan kaynak kodu makine koduna çeviren bir bilgisayar programıdır. Şekilde bir derleyicinin genel yapısı verilmiştir. Ön uç (front end), kodun söz diziminin ve anlam yapısının, kullanılan dile uygunluğunu kontrol ederken, arka uç makine kodunu üretir. Ön uç, dile bağımlı iken son uç, makineye bağımlıdır.
Kütüphane (Librarian) : Nesne dosyalarından (object files) oluşan kütüphanelerdir.
Bağlayıcı (Linker) : Programın içerdiği tüm nesne dosyalarını birleştirerek tek bir yürütebilir dosya haline getirir.
Yükleyici (Loader) : Yürütülebilir dosyayı, diskten belleğe kopyalar.
Hata Ayıklayıcı (Debugger) : Programcının hataları anlayabilmek için programın yürütülmesini adım adım kontrol edebilmesini sağlar.
Yorumlayıcı (Interpreter) : Bir programın kaynak kodunu doğrundan satır satır yürüten programdır.
Kaynakça: Robotistan, Tutorialspoint, Wikipedia,
Rifat Ç. (2018).Bilgisayar Mühendisliğine Giriş. İstanbul: Papatya Basım Yayın Dağıtım (86-90)
Yorum Yap