Merhaba “C”

Genel amaçlı programlama dili

En eski programlama dillerinden biri olan C dili, bence, öğrenilmesi gereken dillerin başında geliyor. Unix işletim sistemi üzerinde geliştirilen C’nin en güzel özelliği Unix’e bağımlı olmaması. Bu bakımdan da sistem programlama dili olarak tüm işletim sistemlerinde kullanılabiliyor.

C, pek çok özelliğini 1966 yılında Martin Richards tarafından geliştirilen BCPL yani Basic Combined Programming Language programlama dilinden almış. Keza, 1970’de Ken Thompson tarafıdan yazılan B dili de, BCPL dilini etkilemiş ve bu etkiden C dili de nasibini almış

BCPL ve C dillerinde type yani tip desteği olmaması C’nin ilk büyük farklılığı sağlamasına sebep olmuş. C, birçok farklı veri tipi sunar; sayı tipleri, karakter, dizi, yapısal tip (structure) ve pek çok operatörler.

Önce PHP, JavaScript, Python, Ruby gibi dillerden biriyle başlayanlar, sonradan C ile tanışınca aslında pek çok konuyu bildiklerini farkedeceklerdir. Kendi adıma, programlama ile B.A.S.I.C diliyle tanışıp hemen arkasından Makine Dili’ne (Assembly) geçen biri olarak ne yazıkki zamanında C’yi pas geçmiştim. Hatta Amiga zamanında (1989/90) bazı coder arkadaşlarım Assembly yerine C ile uğraşmaya başladığında garipsediğimi hatırlıyorum :)

C, derlenen bir dil. Yani yazdığımız programcıkları çalıştırmak için derlememiz gerekiyor. Bunun için C derleyicisine yani compiler’a ihtiyacımız var. Gündelik hayatta macOS kullandığım için ne yazıkki bildiğim ve ilgilendiğim şeyler hep macOS ve Unix/Linux tabanlı oluyor. Windows tarafını neredeyse hiç bilmiyorum. Yazıları takip eden Windows kullanıcısı arkadaşlarımız yardımcı olurlarsa çok iyi olur.

macOS için İhtiyaçlar

Geliştirme işleriyle uğraşan arkadaşlarımız mutlaka XCode Tools’u kurmuşlardır diye düşünüyorum. Homebrew kurduysanız zaten gerekenler var diye düşünüyorum. Eğer yoksa hemen kurun. Terminal’i açıp;

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

yapın. İş bitince kontrol edin;

command -v gcc
# /usr/bin/gcc görmeniz lazım
gcc --version

# Apple LLVM version 8.0.0 (clang-800.0.42.1)
# Target: x86_64-apple-darwin16.3.0
# Thread model: posix
# InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Dikkat ettiyseniz LLVM ve clang yazıyor. Zaten gcc --help yazdığınızda da;

OVERVIEW: clang LLVM compiler

USAGE: clang [options] <inputs>
:
:

bir ton açıklama görürsünüz. Yani C derleyicisi olarak Apple’ın sunduğu LLVM/clang kullanıyorsunuz. İsterseniz GNU C Compiler da kullanabilirsiniz;

brew install gcc

Kurulum GNU compiler collection kurar. brew ls gcc dediğinizde;

/usr/local/Cellar/gcc/6.3.0_1/bin/c++-6
/usr/local/Cellar/gcc/6.3.0_1/bin/cpp-6
/usr/local/Cellar/gcc/6.3.0_1/bin/g++-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcc-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcc-ar-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcc-nm-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcc-ranlib-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcov-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gcov-tool-6
/usr/local/Cellar/gcc/6.3.0_1/bin/gfortran
/usr/local/Cellar/gcc/6.3.0_1/bin/gfortran-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-c++-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-g++-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gcc-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gcc-6.3.0
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gcc-ar-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gcc-nm-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gcc-ranlib-6
/usr/local/Cellar/gcc/6.3.0_1/bin/x86_64-apple-darwin16.3.0-gfortran-6
:
:

gibi GNU tarafından geliştirilmiş bir ton derleyiciye sahip olabilirsiniz. gcc-6 --version dediğinizde;

gcc-6 (Homebrew GCC 6.3.0_1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

görüyorsanız GNU derleyicileri de sağlıklı olarak kuruldu demektir.

Ubuntu için İhtiyaçlar

build-essential paketini kurduğunuz an C derleyiciniz var demektir.

sudo apt-get update
sudo apt-get install build-essential
gcc --version

Örneğin Vagrant kullanıyorsanız, ilk proviondan itibaren driver kurulumu vs olduğu için build-essential paketi otomatik olarak kuruluyor.

Windows için İhtiyaçlar

MinGW anladığım kadarıyla pek çok gereken şeyi kuruyor. Sitesinde; A port of the GNU Compiler Collection (GCC), including C, C++, ADA and Fortran compilers; dediğine göre işimize yarar. Installer’ı download edip kurulum yapabilirsiniz.

Önümüzdeki yazılarda ufak ufak C kodu yazıp derleyeceğiz. Görüşmek dileğiyle.