Rust Programlama S0B1:Temeller

2Nzd...aHc7
14 Jan 2024
22

Rust programlama dili, 2010 yılında Mozilla Vakfı tarafından geliştirilmeye başlanan bir genel amaçlı sistem programlama dilidir. Güvenli, hızlı ve güvenilir olması hedeflenmiştir. Rust, C ve C++ gibi düşük seviyeli dillerin hız ve güvenliğini, yüksek seviyeli dillerin kolaylık ve üretkenliğiyle birleştirmeyi amaçlar.

Yazılımcıların evi haline gelen StackOverflow’un geliştirici anketlerinde ise “en çok sevilen yazılım dili” özelliğini uzun zamandır elinde bulundurmakta.

Rust Dilinin Yapısı


Rust’un dil yapısı, diğer programlama dillerine göre bazı farklılıklar gösterir. Bu farklılıklar, Rust’un güvenli, hızlı ve güvenilir bir dil olarak tasarlanmasından kaynaklanmaktadır.
Rust’un ana özellikleri şunlardır:

Sahiplik sistemi (Ownership system):


Rust programlama dilinin en temel özelliklerinden biridir. Ownership sistemi, her bellek parçasının yalnızca tek bir değişkene ait olabileceğini ve değişkenin kapsamı sona erdiğinde bellek parçasının otomatik olarak serbest bırakılacağını garanti eder.
Bu, bellek hatalarını ve segmantasyon hatalarını önlemeye yardımcı olur. Ownership sistemi, bir değişkenin bellek parçasına sahip olduğu anlamına gelir. Ownership, değişkenin kapsamı sona erdiğinde bellek parçasının otomatik olarak serbest bırakılmasını sağlar. Bir değişken, başka bir değişkene atanarak veya bir değişkenin kapsamı sona erdiğinde sahipliğini kaybeder.

Ownership sistemi, iki ana kurala dayanır:
1-Her bellek parçasının yalnızca tek bir sahibi olabilir.
2-Bir değişkenin kapsamı sona erdiğinde, değişkenin sahibi olduğu tüm bellek parçaları otomatik olarak serbest bırakılır.

Bu kurallar, Rust’un güvenli bir dil olarak tasarlanmasını sağlar. Bellek hataları ve segmantasyon hataları, genellikle bir değişkenin birden fazla sahibinin olması veya bir değişkenin kapsamı sona erdikten sonra hala kullanılması sonucu ortaya çıkar. Ownership sistemi, bu tür hataları önleyerek Rust’un güvenli bir dil olmasını sağlar.
Ownership sistemi, ilk başta karmaşık gibi görünebilir, ancak aslında oldukça basittir. Bu sistemi anlamak için, aşağıdaki temel kavramları bilmek gerekir:

Owner: Owner, bir bellek parçasının sahibi olan değişkendir.
Borrowing: Borrowing, bir değişkenin değerini geçici olarak kopyalamadan kullanmayı sağlar.
Referance: Referance, bir değişkenin bellek adresini saklar ve değişkenin değerine doğrudan erişilmesini sağlar.Ownership sistemi, bu kavramlar kullanılarak uygulanır.

Örneğin, bir değişken bir bellek parçasına sahip olduğunda, değişkenin kapsamı sona erdiğinde bellek parçası otomatik olarak serbest bırakılır. Ancak, bir değişken bir bellek parçasını ödünç aldığında, bellek parçası ödünç alan değişkenin kapsamı sona erdiğinde serbest bırakılmaz. Bunun yerine, bellek parçası sahip olan değişkenin kapsamı sona erdiğinde serbest bırakılır.

Tür sistemi (type system) :


Rust programlama dilinin temel özelliklerinden biri olan tür sistemi, değişkenlerin türlerini açıkça belirtmeyi gerektirir. Bu, derleyicinin tür uyumsuzluklarını ve diğer potansiyel hataları tespit etmesini sağlar. Rust’un tür sistemi, statik olarak kontrol edilen bir türdür. Bu, tür hatalarının derleme zamanında tespit edilmesini sağlar ve programın çalıştırılma zamanında tür hatalarının oluşmasını önler.
Tür:Değişkenin veya ifadenin değerinin türünü belirtir.
Tür uyumluluğu:Tür uyumluluğu, iki türün birbirleriyle uyumlu olup olmadığını belirler.
Tür dönüştürme:Bir değerin bir türden başka bir türe dönüştürülmesini sağlar.

Rust Kurulumu:


macOS
Rustu macOS,Linux temelli bir işletim sisteminde yazacaksanız aşağıdaki komutu yazmanız yeterli olacaktır:

curl https://sh.rustup.rs -sSf | sh

Windows
Windows işletim sisteminde herhangi bir Linux dağıtıcısı kullanarak aşağıdaki komut ile Rustu kurabilirsiniz:Örneğin chocolatey için

choco install rustup.install

Proje oluşturma:


Rust paketlerini yönetmek için Cargo aracı kullanılır. Rust’ın doğru şekilde kurulmuş olması durumunda, Cargo’nun sürümü de yazdırılacaktır.

cargo new <projeAdi>

Yukarıdaki komut ile örnek bir Rust projesi oluşturulacaktır. Bu komut sonucu aşağıdaki yapıya benzer bir file structure oluşacaktır.


Yukarıdaki yapıda bulunan dosyaların ne işe yaradığı aşağıda bulunmaktadır:
Cargo.toml:Bu dosya, projenin meta verilerini içerir. Projenin adı, sürümü, bağımlılıkları ve diğer yapılandırma seçenekleri gibi bilgiler bu dosyada bulunur.

src/:Bu dizin, projenin kaynak kodunu içerir.

main.rs:Bu dosya, projenin ana kod dosyasıdır. Projenin giriş noktası olan `main` fonksiyonu bu dosyada bulunur.

,
Birsonraki yazıda Rust ile değişkenlere geçiş yapıyor olacağız.

Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to Ates.eth

1 Comment