NTP C# Dersi 0: Programlama Dili Nedir ?

Merhaba arkadaşlar ben Muhammet Aygün, C# programlama dili ile ilgili bilgilerimi sizinle paylaşmak ve bununla alakalı bir yazı dizisi hazırlamak istiyorum. Meslek liselerinde nesne tabanlı programlama derslerinde dersi anlatmada bazı yanlışlıkların olduğunu düşünüyorum. Herkes A konusundan derse başlıyorsa, biz Z konusundan derse başlangıç yapacağız. Yani konuları daha faydalı olduğunu düşündüğüm bir sıralama ile öğrenmeye, işlemeye başlayacağım. Allah izin verirse derslerimizin sonunda konsol uygulaması, Windows form uygulaması ve C# (C Sharp) kütüphanesi (class library) yapabiliyor olacağız.

Bence nesne tabanlı programlama derslerinde yapılan yanlışlardan biri, kodlamaya “event” denen olay metodlarını oluşturmayla başlamaktır. Private ne demek, void nedir, class ne demektir gibi sorulara cevap bulmadan blokların (“{}”) içini doldurmaya, metodları oluşturmaya başlıyoruz. Evet, programlamaya bu şekilde başlamak kolay fakat ilerletmek ve devamını getirmek zordur.

Biz metodu oluşturmadan öce programlamada “Metot nedir ? “, “Class nedir ? ” bunları anlayacak sonra class ve metot oluşturacağız. Çünkü class yapısı başta anlatılmadığı taktirde ileride, konu içinden çıkılmaz bir hal alıyor.

Derse “Programlama dili nedir ? ” gibi bir soruyla başlayacağım. Bunun giriş için gerekli olduğunu düşünüyorum fakat ileride ki derslerimiz daha çok mantık ve kod ağırlıklı olacak.

 

Programlama Dili Nedir ?

Bildiğimiz gibi bilgisayarlar elektronik devrelerden oluşur. Elektronik devreler, aletler neyden anlar ? Çalış veya dur komutlarından anlar mı? Tabii ki, hayır. Düğmesini açarsınız yani elektriği verirsiniz çalışır, keserseniz çalışmaz. Bu olayı daha karmaşık ve kapsamlı düşünelim. Mesela bir flüt çalıyoruz. Ve bu flütten “Re” sesini çıkarabilmek için 1. ve 4. delikleri parmaklarımızla kapatıyoruz. 1. ve 4. delikte temas var yani elektrik var diğer deliklerde temas yok yani elektrik yok gibi düşünürsek bir bilgisayar hoparlöründen “Re” sesini duyabilmemiz için 1. ve 4. noktada elektriğin olması gerekir. Burada bir benzetme yaptık bu tabii ki bu kadar kolay değil burada daha karmaşık bir kombinasyon düşünmemiz gerekiyor.

Bilgisayar dünyasında elektriğin varlığını 1, olmayışını 0 ile gösteriyoruz. 8 ayaklı bir entegre düşünelim ve bu entegre bilgisayar hoparlöründen “Re” sesinin çıkmasını sağlayan entegre olsun. Bu entegrenin “Re” sesini oluşturması için 1. ve 4. ayağında elektriğin olması gereksin. Bunu “10010000” şeklinde gösterebiliriz.

Görüldüğü gibi bilgisayara her ayrıntıyı bildirmemiz gerekiyor. Yani 8 ayaklı bir entegrenin tüm ayaklarında elektriğin olup olmadığını tek tek belirtmemiz gerekiyor. İşte yapılan bu işe programlama, kullandığımız bu ifadeye de programlama dili denir. Ayrıca, burada ki kullandığımız programlama diline de makine dili deniyor.

Burada sadece “Re” sesini oluşturan kodu yazdığımızı var saydık. Başka bir örnekte 1 saatlik bir film düşündüğümüzde işler tamamen karışacak. Her saniyedeki sesleri, her karedeki pikselleri düşündüğümüzde bunu 0 ve 1’lerle oluşturmak çok ama çok zor. Bu yüzden daha hızlı ve daha az kodla daha çok iş yaptırabilen üst seviyeli programlama dilleri geliştirilmiştir. Programlama dillerini bir piramit şeklinde düşünürsek. En düşük seviyeli dil yani piramidin tabanındaki dil, makine dilidir. Bir sonraki seviye ise Assembly dilidir.

Assembly dilinde kodlamaya harfler ve diğer rakamlar da dahil oluyor. Bu sayede daha kısa kodlamayla daha çok işi bilgisayara anlatabiliyoruz.  Assembly’de Re sesini çıkaran kodun “re” olduğunu varsayalım. “re” “10010000” ‘e göre daha kısa değil mi ? Fakat şu da unutulmamalıdır ki bir bilgisayar ancak ve ancak 0 ve 1’lerden anlar. O zaman Assembly dilinde yazılan kod makine diline çevrilmelidir. Bu diğer programlama dilleri için de geçerlidir. Üst seviyedeki dilden alt seviyedeki dile çeviri yapan programa derleyici denir. Assembly dilinin derleyicisi Assemblyer’dir. Derleyici programın çalışma mantığı matematikteki taban dönüşümüne benzetilebilir.

Assembly dilinden sora gelen ve orta seviyeli programlama dili olarak da geçen dil, “C” dilidir. C programlama dilinde konuşma dili belirmeye başlamaktadır. Programlama dili piramidinin tabanından tavanına doğru çıkıldıkça

Yüksek Seviyeli Programlama Dillerinin Avantajları

  • Kodlamaya harcanan süre azalır
  • Kodlamada konuşma dili kendini daha fazla göstermeye başlar
  • Hatalı kod yazma olasılığımız azalır
  • Kodların ezberlenmesi kolaylaşır
  • Kodları anlamlandırmak kolaylaşır
  • Donanımdan uzaklaşılır

Yüksek Seviyeli Programlama Dillerinin Dezavantajları

  • Sistem kaynaklarına müdahale olanağı azalır
  • Kodlamadaki özgürlüğünüz kısıtlanır
  • Yaptırabileceğiniz işler azalır
  • Kodları makine diline dönüştürme derdi artar, derleyiciye ihtiyaç duyulur

C# (C Sharp) Programlama Dili

Programlama dili piramidinin en üstünde çok yüksek seviyeli diller yer alır. Bu programlama dilleri çoğunlukla görsel programlamaya olanak tanıyan dillerdir. Yüksek seviyeli programlama dilleri arasında C# (C Sharp) da bulunur.

C# (C Sharp) Microsoft tarafından geliştirilmiştir ve 2000 senesinden sonra kendini piyasada göstermeye başlamıştır. C#, C programlama dilinin eklentilerle güçlendirilmiş üst sürümü olan C++ (C Plus)’ın da eklerle güçlendirilmiş üst sürümüdür. C#, C++ ve yine C++ (C Plus)’ın türevi olan Java ile geliştirilmiştir. Kod hiyerarşisi “{}” (blog operatörü) ile sağlanır. Donanımdan çok uygulama (oyun veya Ofis Word gibi programlar) oluşturmak için kullanılır.

Önerilen diğer yazılar:
NTP C# Dersi 1: Kodlama Yapısı ve Hiyerarşi

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>