12 Şubat 2012 Pazar

C++ 'a başlarken öğrenilmesi gerekn bazı terimler...

Compiler Nedir?

     Bir dilde kullanıcı tarafından girilen kodu (kaynak kodu yada source code) istenilen başka bir kod haline dönüştüren programdır. Genelde üretilen bu kod ortama göre çalıştırılabilir kod (executable code) olarak üretilmektedir. Ancak bir derleyicinin daha doğru tanımı bir dildeki kodu başka dile çeviren program olarak yapılabilir. Örneğin C dilinde yazılan bir programı PASCAL diline çeviren programlara derleyici adı verilebilir.
     Diğer bir ifadeyle daha üst seviye bir dilden daha alt seviyeli bir dile tercüme olarak kabul edilebilir. Buna göre örneğin C dilinden Assembly veya makine dili gibi daha alt dillere tercüme ile derleyici kavramı daha da sınırlandırılmış olarak kabul edilebilir.
     Derleyiciler günümüzde daha çok bir dilde yazılmış koddan, işletim sistemi ve donanım bağımlı kodların üretilmesinde kulllanılmaktadırlar.

GNU Nedir
GNU, çekirdeği, sistem araçlarını, açıcılarını, kütüphanelerini ve son kullanıcı yazılımlarını içeren bir işletim sistemidir. İsminin açılımı "GNU's Not Unix" (GNU Unix değildir) dir. Bu ismi almasındaki sebep de tasarımının Unix'e benzerken kendisinin özgür yazılım olması ve herhangi bir UNIX kodunu içermemesidir.
GNU işletim sistemi planı 1983 Eylül'ünde Richard Stallman tarafından duyurulmuş, 1984 Ocak ayında işleyişe başlamıştır. 2006 itibarıyla GNU hâlâ etkin olarak gelişmektedir. GNU'nun geliştirilmesi GNU Tasarısı tarafından gerçekleştirilmektedir ve bu tasarı altında birçok GNU belgeleri ve yazılımları bulunur.
Günümüz itibarıyla hâlâ tamamlanmış bir GNU sistemi sunulmamıştır. Resmi çekirdeği GNU Hurd'dür ancak Hurd henüz bitmemiştir zira geliştirilmesi aşamasında bazı lisans sorunları yaşanmış ve yapısal değişikliğe gidilmiştir. Linux'un da devreye girmesiyle birçok GNU kullanıcısı Linux çekirdeğine geçiş yapmış böylece Linux, Hurd'ün yerini doldurmuştur. GNU resmi olarak başka yazılımları da desteklemektedir. (Xorg ve TeX gibi)
Sistemin başlıca içeriği GNU Compiler Collection (GCC), GNU Binary Utilities (binutils), bash kabuğu, GNU C kütüphanesi (glibc) ve coreutils'den oluşur. Görsellik açısından X.Org'u; yazım açısından da TeX yazılımlarını kullanır. Tüm GNU yazılımları halen GNU Hurd çekirdeğiyle uyumlu değildir.
Linux çekirdeğini kullanan kullanıcılar sistemlerine Linux demektedir ancak GNU project GNU/Linux denmesini önerir. Bu konudaki tartışma uzun süredir devam etmektedir.
Birçok GNU yazılımları diğer işletim sistemlerinde de kullanılmıştır. (Windows, BSD, Solaris ve Mac OS gibi)
GNU Genel kamu lisansı (GPL), GNU Lesser General Public License (LPGL) ve GNU Free Documentation License (GFDL) GNU tarafından yazılmıştır ancak bambaşka birçok diğer konuda da kullanılmaktadır.GNU kamu mali olarak gorulmektedir ve basarisinin arkasinda olan da herkese olan acikligidir. Her kullanici GNU'yu daha gelistirebilir.

GPL Nedir 

Gpl' nin açılımı General Public License yani Genel Kamu Lisansıdır.  Çıkış sebebi açık kaynaklı kodların kapatılıp ticaret için kullanılması durumundan hoşlanmayan Richard Stallman tarafından oluşturulmuştur. Anlıyacagınız üzere Gpl özgür yazılımı koruyan bir belgedir.
Kısa ve öz olarak Gpl özgür yazılımın koruyucusu ve "her şey insanlık için"  felsefesi içinde bulunduran önemli bir lisans anlaşmasıdır

Açık Kaynak Kod Nedir ? (Open Source)

Açık kaynak kod istenildigi zaman bir programın hangi kodlardan oluştugu göstereni içinde zararlı ya da istemedigimiz bir kodun olup olmadıgını ögrenebilmemiz sağlanan ticari bir durumun gütmeyen kodlara açık kaynak kodu diyoruz . En iyi avantajı ücretsiz olması ve istemedigimiz yada zararlı bir kodu görüp silebilmemiz ve istedigimiz gibi kodları degiştirebilmemizdir  Gpl lisansıyla birlikte açık kaynaklı programlar hızla çoğalmaya başlamıştır.
Açık kaynak kodları genelde daha güvenlidir daha önce dedigimiz gibi zararlı kodları görüp silme özelligi ile birlikle programı geliştirenler tarafındanda programın açıkları kapatılabilir

Açık kaynaklı birkaç program
  • Linux
  • Mozilla Firefox
  • 7-zip
  • Gimp
  • Open Office
 

GCC Nedir?

GNU Compiler Collection (GNU Derleyici Koleksiyonu, genelde GCC olarak kısaltılır), GNU Projesi tarafından üretilen ve çeşitli programlama dillerini destekleyen bir derleyici sistemidir. GCC, GNU araç zincirinin önemli bir parçasıdır. Henüz tamamlanmamış GNU işletim sisteminin resmî derleyicisi olmanın yanı sıra, diğer bir çok modern Unix benzeri işletim sistemleri tarafından standart derleyici olarak benimsenmiştir (örneğin GNU/Linux, BSD ailesi ve Mac OS X). GCC, çok çeşitli işlemci mimarilerine taşınmış; ticari, parakende ve kapalı kaynak yazılım geliştirme ortamlarında yaygın bir araç olarak konuşlanmıştır. GCC, bir çok gömülü platformlarda kullanılabilir (örneğin Symbian, AMCC ve Freescale Power Architecture tabanlı çipler). Derleyici, PlayStation 2 ve Dreamcast gibi video oyun konsolları dahil çok çeşitli platformları hedef alabilir.
Orijinal adı, sadece C programlama dilini desteklediği için GNU C Compiler (GNU C Derleyicisi) olan derleyicinin ilk sürümü 1987 yılında piyasaya sürüldü. Aynı yılın Aralık ayında C++ programlama dilinin de derleyicisi oldu. Daha sonra FORTRAN, Pascal, Objective-C, Java, Ada ve diğer diller için geliştirildi.
GCC, Özgür Yazılım Vakfı tarafından GNU Genel Kamu Lisansı altında dağıtılmaktadır. Hem bir araç, hem de bir örnek olarak özgür yazılımın gelişmesinde önemli rol oynamıştır.

GUI
Grafiksel Kullanıcı Arayüzü (ing. Graphical User Interface; GUI), bilgisayarlarda işletilen komutlar ve bunların çıktıları yerine simgeler, pencereler, butonlar ve panellerin tümünü ifade etmek için kullanılan genel addır.
Grafiksel kullanıcı arayüzü, bilgisayar kullanıcılarının komut satırı kodlarını ezberlemeden fare, klavye gibi araçlar sayesinde bilgisayarları kontrol etmelerini sağlamıştır. Günümüzdeki programların bir çoğu GKA ile birlikte gelse de, birçok bilgisayar kullanıcısı (özellikle programcılar) daha hızlı olduğu gerekçesiyle komut satırını GKA'larla birlikte kullanmaya devam etmektedirler.

Yorumlayıcı (Interpreter)

Bilgisayar dünyasında yorumlayıcı terimi bir programı veya bir komutu çalıştırmaya yarayan programlar için kullanılır. Genellikle derleyiciler ile karışan ve çoğu zaman aynı görevi icra eden yorumlayıcılar da derleyiciler gibi kodu bir dilden başka bir dile çevirme işlemini yerine getirirler. Basitçe görevleri ve tipleri aşağıdaki şekilde listelenebilir:
1. Kaynak kodu çalıştırmak
2. Bir kaynak kodu çalıştırılabilir farklı bir kod haline tercüme etmek
3. Daha önceden hazırlanmış olan (çoğu zaman önceden derlenmiş bir koddur) kodları yeri geldiğinde çalıştırmak
Perl, Python diller 2. tip dillere örnekken JAVA sanal makinesi ve Pascal dilleri 3. seviye dillere örnek olarak gösterilebilir. Çünkü java ve pascal’da daha önceden hazırlanmış olan program parçaları çalışma zamanında (execution time) bağlanmaktadır.
Derleyiciler (compiler) ile Yorumlayıcılar (Interpreter) arasındaki farklar:
Basitçe, bir kaynak kodu hedef koda çevirdikten sonra çalıştıran ve dolayısıyla koddaki hataları yakalama işlemini ve kodun iyileştirilmesini daha kod çalıştırmadan yapan çeviricilere derleyici, kodu satır satır veya bloklar halinde çalıştırıp sırası gelmeyen satırları hiç çalıştırmayan bu satırlardaki hataları hiçbir zaman göremeyen ve kodun bütününe ait iyileştirmeleri yapamayan çeviricilere de yorumlayıcı (interpreter) adı verilmektedir.
Genel kanının tersine bir dilin derleyici veya yorumlayıcı özelliği yoktur. Yani C dili için sadece derleyicisi bulunan bir dildir demek yanlış olur. Bu durum bütün diller için geçerlidir. Her dil için bir derleyici veya yorumlayıcı tasarlanabilir. Ama daha genel bir bakışla, her dilin aslında yorumlayıcı (interpreter) yapısında bir çalışması olduğunu söylemek yanlış olmaz. Sonuçta bilgisayarın işlemcisinde anlık olarak tek bir işlem yapılabilmektedir ve çalışması istenen kod, işlemciye sırayla verilecek ve satır satır çalıştırılacaktır.
Genelde bir ortam yazılan dilin çalıştırılmasına kadar geçen sürede ya bir derleyici yada bir yorumlayıcı kullanılmaktadır. Gelişmekte olan teknolojiyle iki programı birden kullanan diller de türemiştir. Örneğin JAVA dilinde kod önce derlenerek byte code adı verilen ve sadece java sanal makinelarında (java virtual machine) çalıştırlabilen bir kod üretilmektedir. Bu üretilen ara kod daha sonra java sanal makinasında bir yorumlayıcı yapısına uygun olarak çalıştırılmaktadır.

Linker Nedir?

Compiler'in ürettigi objeleri bagdasririp calistirilabilir uygulama haline getiren ve compiler'in yaninda gelen ufak bir programdir..

 Debug, Bug Nedir?

Bilgisayar programcıları arasında oldukça sık kullanılan terimlerdir. Tam karşılıkları BÖCEK ve BÖCEKTEN ARINDIRMA'dır. Bir programın umulmadık noktalarında hatalar varsa ve program zaman zaman yanlış çalışıyorsa, o programda BUG (Böcek) bulunduğuna ilişkin cümleler kullanılır. Bu hataların bulunarak düzeltilmesi sürecine DEBUG adı verilir. Bu deyimin bilgisayar terminolojisine girmesinin hikayesiyse oldukça ilginçtir :

MARK II elektromekanik bilgisayarı için 1950 li yıllarda program geliştiren Grace Hopper isimli ünlü kadın programcı, hatalı çalışan programındaki problemi bir türlü bulamamaktaydı. Uzun aramalar sonucunda, bilgisayarın röleleri arasında sıkışmış kalmış bir böcek ölüsünün bütün sorunların kaynağı olduğu anlaşılmıştı. 

Debugger Nedir?

Kod Hata Ayıklayıcısı

GNU Debugger

 GNU Debugger(GDB olarak kısaltılır) GNU yazılım sistemi için kullanılan bir hata ayıklayıcıdır (debugger). Unix tabanlı pek çok sisteminde, C, C++ ve Fortran gibi birçok programlama dilinde çalışan taşınabilir bir hata ayıklayıcıdır.

IDE

Tümleşik geliştirme ortamı (İngilizce: Integrated development environment, kısaca IDE), bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.
Tümleşik geliştirme ortamlarında olması gerekli en temel özellikler:
  • Programlama diline göre sözdizimi renklendirmesi yapabilen kod yazım editörü.
  • Kod dosyalarının hiyerarşik olarak görülebilmesi amacıyla hazırlanmış gerçek zamanlı bir dizelge.
  • Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı.
  • Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları.
En bilinen tümleşik geliştirme ortamlarına örnek olarak Eclipse, Microsoft Visual Studio, Code::Blocks, Dev-C++, Anjuta, KDevelop, NetBeans gibi ortamlar verilebilir.

İlk yazım :)

MERHABA

Diğer Blog Hesaplarım

Merhaba, İçerik Yönetim Sistemleri dersinde aktif olarak kullandığım bloglarım şunlardır: https://sistemanalizitasarimi.wordpress.com/ https...