31 Ağustos 2016

Programlama

Kodlamaya Başlamadan Önce

Yazılım programlamaya henüz yeni giriştiğinizde öğrenmeniz gereken birçok şey vardır ve bunlar bazen zorlayıcı olabilir. Yeni öğrendiğiniz bir programlama dilini tamamen öğrenmeye çalışırken aynı zamanda oldukça fazla sayıda yeni konseptler, prensipler, pratikle, teknik terimler, yardımcı yazılımlar ve daha bir çok şey keşfedersiniz. Tabi bunların hepsini aynı anda öğrenmek mümkün değil ve zaman alacaktır.

Bu sebeple bana göre bir programlama dilini öğrenip de kod yazmaya başlamadan evvel bu dilin artı ve eksilerini öğrenmek kayda değer bir iş olacaktır. Burada yer alan temel bilgiler bu konuda siz yol gösterecek olan programlama dünyası içindeki ortak terimleri, pratikleri ve yardımcı yazılımları içermekte.

Bu yazıda size bu yolda öğrenmek istediğiniz dil farketmeksizin yukarıda da bahsettiğimiz ortak yönleri ve genel temel bilgileri açıklayacağım.

Yeni Başlayanlar İçin Kod Düzenleme/Yazma Programları

Bir kelime işlemci programında (Office Word gibi) kod yazamazsınız çünkü yarattığınız dökümanın formatı yazıldığı programın formatındaki kodlarla olacaktır. Bu sebeple bir çok bilgisayar yüklü olarak gelen (Not Defteri gibi) ve herhangi bir format içermeyen programları kod yazmak için kullanabilirsiniz ancak bunun yerine bir kod editörü edinmeniz sizin daha çok hayrınıza olacaktır. Bu konuda endişelenmeyin işiniz çok kolay. Ücretsiz olarak edinebileceğiniz birçok kod editörü bulunmakta.(Bazılarını birkaç paragraf aşağıda bulabilirsiniz, bunlar en bilinenlerden.)

Kod editörleri programlama yapmanıza olanak sağlamanın yanında sizin için bu işi daha da kolaylaştırır, kodunuzu gözden geçirirken okunmasını kolaylaştırır ve size birçok kolaylık sunar. Bir kod editörü kullanırken dikkatinizi ilk çekmesi gereken şey satırların numaralandırılmasıdır. Yazdıklarınızı bulmanızı kolaylaştırır, kod hatalarınızı incelerken hata olan satırı bulmanızda yardımcı olur. Numaralandırılmış satırlar kodunuzda yaptığınız değişiklikler hakkında “log” tutmanızı kolaylaştırır ve çoklu kişilerce yapılan yazılımlarda (yazılım şirketi çalışanları gibi) belli noktaları bulma konusunda işiniz kolaylaşacaktır.

Programlamaya başladığınızda farkedeceğiniz diğer bir şey de kullandığınız programın yazdığınız kodları okunabilirliğinin artması açısından renklendirmesidir. Çünkü birçok kod türünde açma-kapama şeklinde uygunsuz kullanımda hata yapılabilecek olan parantezler kullanılır. Bu konuda editörlerin birçoğu açma ve kapama parantezlerini renklendirerek size bu konuda yardımcı olur. Bazen ise otomatik şekilde uygun yerlerde kodları tamamlayarak size zamandan kazanma olanağı kazandırabilir.

Aşağıdaki kod editörü fotoğrafına baktığınızda kod parçacıklarının satır kenarlarında +,- içeren karecikler göreceksiniz. Bu parçacıklar kodlarınızı gizlemek ve açmaya yardımcı olur. Bu sayede o an işiniz olmayan kısımları kapatarak kod kalabalığından sıyrılabilirsiniz.

Aynı zamanda birçok kod editörü kodunuzu çalıştırmak için tarayıcılar, eklentiler gibi olanaklar sağlayarak bu şekilde editörünüzü zenginleştirip kişileştirmenize yardımcı olur. Bu sebeple bir editörü edinmeden önce size sağlayacağı olanaklara bakıp beyaz eşya seçer gibi ince eleyip sık dokumanız işinize gelecektir.

Bazı Ücretsiz Kod Editörleri
Notepad++
Android için DroidEdit
Mac ve FTP için Bare Bones Software | TextWrangler

PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ

Programlama dili, programcının belli bir algoritmayı ifade etmek  için kullandığı standartlaşmış bir notasyondur. Bir programcı komutları yazmak için farklı programlama dilleri kullanabilir. Programlama dilleri, programcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 2500’den fazla programlama dili yapılmıştır.

Programlama dilleri insanların algılamasına yakın olmasına göre 3 gruba ayrılır.

Alt seviye programlama dilleri: Makine koduna oldukca yakın programlama dilleridir.Makina hakimiyeti oldukca gelişmiştir.Bu programlama dillerini bilen kişilerin mikro işlemciler hakkında bilgi sahibi olması gereklidir.(Assembly programlama dili gibi)

Orta seviye programlama dilleri: Oldukça esnek olan bu diller hem üst hem alt seviye programlama yapabilirler. Alt seviye dillere oranla biraz daha anlaşılırdır. (C programlama dili gibi.)

Üst seviye programlama dilleri: Olay tabanlı programlama dilleri olarak da adlandırılırlar yalnız bu programlama dilleri sadece belirli fonksiyonlar etrafında çalışırlar ve programlama hakimeyitini azaltırlar. En hızlı ve en etkili programlama dilleri bu kategoridedir. (visual basic ve pic basic pro gibi) Diğer programlama dillerine kıyasla daha kolay öğrenildiği ve uygulandığı için yeni başlayanlara en uygun diller üst seviye programlama dilleridir.

Yüksek seviyeli programlama dillerinde yazılan programın çalışabilmesi için makine diline çevrilmesi gerekir. Bunun için program hangi yüksek seviyeli dil ile yazıldıysa o dilin derleyicisi kullanılır. Böylece yüksek seviyeli programlama dili ile yazılmış olan kaynak program, makine dilindeki amaç programa dönüştürülür. Kaynak programın içeriğinin değiştirilmesi mümkündür, ancak derlenmiş olan amaç programın içeriğine müdahale etme imkanı yoktur.

programlama_dilleri

Assembly Programlama Dili
Assembly dili alt seviye bir programlama dilidir ve karmaşık programlar yazmak için kullanılır. Assembly insanlar tarafından anlaşılması zor olan makina dilinin sayısal ifadelerini, daha kolay anlaşılır ve programlanabilir olan alfabetik ifadelerle değiştirip alt seviyede programlama için bir ortam oluşturur.

Assembly dil programları, genellikle platformdan bağımsız olan üst seviyeli programlama dillerinin aksine bir hedef bilgisayar mimarisine sıkı sıkıya bağlıdır.Assembly kullanmanın amacı, ilk bilgisayarlarda yazılan programların daha az hata içermesi ve daha az zaman almasını sağlamaktır.

Assembler, assembly dilini makina koduna çeviren programlardır ve assembler’ı derleyiciden ayıran en önemli özellik bire bir dönüşüm yapmasıdır.

Bir zamanlar programlamada çok fazla kullanılmakta olan assembly dili günümüzde daha az kullanım alanına sahiptir. Öncelikle doğrudan donanım manipülasyonunun veya anormal performans hususları söz konusu olduğu zaman bu dil kullanılmaktadır. Tipik uygulamaları cihaz sürücüleri, alt seviyeli dahili (embedded) sistemleri ve gerçek zaman uygulamalarıdır.

Basic Programlama Dili
Basic (Beginner’s All Purpose Symbolic Instruction Code) dili 1964 yılında John Kemeny ve Thomas Eugene Kurtz tarafından geliştirilmiş olup, eğitim amaçlı bir programlama dilidir. Mikrobilgisayarlar için ilk Basic uygulamasını Microsoft ‘un kurucuları olan Paul Allen ve Bill Gates yazmıştır. Öğrenmesi ve kullanımı kolay bir dil olan Basic dilinin zamanla QBasic, Turbo Basic, Power Basic, BasicA, Visual Basic, Visual Basic.Net gibi türevleri geliştirilmiştir.
C Programlama Dili
1970’lerin başında Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi için 1972 yılında geliştirilmiş bir C programlama dili , günümüzde neredeyse tüm işletim sistemlerinde kullanılmaktadır. Dünya’nın en çok kullanılan sistem programlama dilidir.

C ‘ nin ilk gelişme safhaları 1969 ile 1974 arasında AT&T Bell Laboratuvarları’nda gerçekleşti. Ritchie’ye göre, en yaratıcı devre 1972 idi. Dilin pek çok özelliği “B” adlı bir dilden türediği için, yeni dile ” C ” adı verildi.1983’te Amerikan Ulusal Standartlar Enstitüsü (ANSI) bir C standardı oluşturmak için bir kurul oluşturdu ve bu kurul standardı 1989’da tamamladı ve standart ANSI X3.159-1989 ” Programming Language C (C Programlama Dili) ” olarak yayımlandı. Dilin bu versiyonu genellikle ANSI C olarak adlandırılır.

Günümüzde yazılmakta olan C programlarının çoğunluğu ANSI C standardına uygun olarak yazılmaktadır. Yalnızca standart C kullanılarak yazılmış bir program, standarda uyumlu her derleyici ile doğru bir biçimde derlenip çalıştırılabilir. Ancak, standart olmayan kütüphaneler kullanılarak yazılmış programlar belli bir platform ya da derleyici gerektirebilirler.

C++ Programlama Dili
1980’lerin başlarında Bjarne Stroustrup tarafından geliştirilen C ‘yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir. Genel olarak her C programı aynı zamanda bir C++ programıdır, ama her C++ programı bir C programı değildir. C++’ı C ‘den ayıran ve C++’ın nesne yönelimli bir dil olmasına da olanak sağlayan en temel özellik, sınıflardır. Sınıflar sayesinde yeni veri türleri yaratılabilir ya da varolan türlerden yenileri türetilebilir.

Operatörler; C++’ın C’den devraldığı ve geliştirdiği yapılardan biridir. Özel olarak anlamlandırılmış fonksiyonlar kümesidir. Ancak bu fonksiyonlar, alışılmış şekilde çağırılmaz, dilin semantik yapısı içerisinde özel olarak değerlendirilir. Operatörler çoğunlukla iki nesnenin arasına özel bir işaret konulmasıyla çağırılır. Örneğin, iki nesnenin toplanması için iki nesnenin arasına ‘+’ işareti konulması yeterlidir. Bu işaret, derleyiciye ‘+’ operatör fonksiyonunun çağırılacağını ifade eder. C’den farklı olarak, C++’ta operatörlerin çoğunu aşırı yükleme yoluyla özelleştirebilirsiniz.

C++ Program kaynak kodlarının derlenmesi üç aşamadan oluşur: Önişlemci, kodun dönüştürülmesi ve bağlama. İlk aşama olan önişlemciyi basit bir yorumlayıcı olarak görülebilir. Bu aşamada, bir takım direktifler yardımıyla derlenecek kodlarda basit sözcüksel değişiklikler yapılabilir. Önişlemci direktifleri # karakteriyle başlar, bu karakterden sonrası önişlemci tarafından yorumlanır ve bu özel karakterden önce beyaz boşluk(tab ve boşluk) dışında bir şey olmaması gerekir. Bu direktifler yardımıyla derlenecek kodlar üzerinde bir takım kurallar belirlenebilir. Ayrıca dosyaya bir başka dosyayı dahil etmek veya işlemciye özel direktifler vermek gibi işlemler içinde kullanılabilir.

C# Programlama Dili
C# dili de C++ gibi bir C türevidir. C programlama dilinde bir tamsayı değişkeni 1 attırmak için ++ soneki kullanılır. C++ dili adını, C diliyle Nesneye Yönelimli Programlama yapabilmek için eklentiler (C With Classes) almıştır. Benzer şekilde C++ diline yeni eklentiler yapılarak ((C++)++) bir adım daha ileriye götürülmüş ve tamamen nesneye yönelik tasarlanmış C# dilinin isimlendirilmesinde, + karakterlerinin birbirlerine yakınlaşmış hali ve bir melodi anahtarı olan C# Major kullanılmıştır.

Özellikle nesne  yönelimli programlama kavramının gelişmesine katkıda bulunan en aktif programlama dillerinden biri olan C# , basit, modern, genel-amaçlı, nesneye yönelik bir programlama dili olarak tasarlanmıştır.

Visual Basic Programlama Dili
Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir.Microsoft Visual Basic dilinin değişik türevleri oluşturulmuştur:

VBA (Visual Basic for Applications); Microsoft Office gibi, değişik yazılımlar içerisinde çalışabilecek yazılımlar geliştirilmesinde kullanılır.

VBScript ; Internet Explorer, ASP ve Windows Script Host üstünde Visual Basic betikleri çalıştırılmasında kullanılan türevi.

Visual Basic.NET ; Visual Basic 6.0 Platformunun varisi olmakla birlikte farklı bir yapıdır ve .NET Framework üzerinde çalışır ve geriye doğru, Visual Basic 6.0 ve öncesi sürüm kodlarla uyumsuzdur.

Pascal Programlama Dili
Pascal programlama dili, bilgisayar bilimcisi Niklaus Wirth tarafından 1970 ‘te yapısal programlamayı derleyiciler için çok daha kolay hale getirmek amacıyla geliştirilen, bir çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hala yaygın olarak kullanılmaya devam eden önemli programlama dillerinden biridir. Adını matematikçi ve düşünür Blaise Pascal’dan alan Pascal, Algol programlama dilinden türemiştir.

Pascal’da tüm programlar “Program” anahtar sözcüğü ile başlar, ve ardından “Begin” / “End” anahtar sözcükleri ile sınırlanan bir blok gelir. Pascal dilinde harflerin büyüklüğü-küçüklüğü önemli değildir. İfadeler noktalı virgül ile ayrılır, ve programlar bir nokta ile bitirilir. Bazı derleyiciler için “Program” satırı zorunlu değildir.

Orijinal halinde Pascal, tümüyle prosedürel bir dildir ve programlar if, while, for ve benzeri yapılardan oluşur.

Pascal ve C dilleri yaklaşık aynı zamanlarda geliştirilmişlerdir ve aralarında önemli benzerlikler vardır. Orijinal Pascal ile C’nin ikisi de yapısal programlama fikrini gerçekleştiren küçük ve prosedürel dillerdir. İkisinde de dinamik bellek ayırma ve işaretçi işleme mümkündür. Ancak, bu iki dil dışarıdan bakıldığında farklı görünürler.

Delphi Programlama Dili
Delphi programlama diline, özellikle nesne yönelimli programlama anlayışıyla yapılandırılmış Turbo Pascal dilinin görsel sürümü denilebilir. Nesne, sınıf, kalıtım, fonksiyon, aşırı yükleme gibi temel nesneye yönelim programlama tekniklerini ve daha fazlasını içeren güçlü ve esnek bir programlama dilidir.
Pic Basic Pro Programlama Dili
PIC Basic Pro , Micro Engineering Labs firması tarafından PIC mikrodenetleyicileri için geliştirilmiştir ve BASIC programlama dilinin kolay öğrenilebilme özelliğinden dolayı dnyanın en çok kullanılan programlama dillerinden biridir.

PIC Basic Pro programlama dilini kullanabilmeniz için algoritma ( algorithm ) , akış diyagramı ( flowchart ) oluşturmayı ve QBASIC ile basit programlar yazmayı bilmeniz yeterlidir. Daha önce PICassembly ile programlama yapmış olanlar PIC Basic Pro’nun kullanımının ne kadar kolay olduğunu göreceklerdir.

PIC Basic Pro derleyici program kodlarını Assembly dili programlarıyla karışık kullanmak da mümkündür. Özellikle bir işlemi daha hızlı çalıştırmak , program belleğinde daha az yer tutmak ya da PIC Basic derleyicilerinin yapabildiğinden daha farklı bir işlem için program içinde Assembly kodlarını kullanmak gerekebilir.