Ana içeriğe geç

Rust

Okunuşu
rast
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/rust

Kısaca

Rust, sahiplik kurallarını derleme zamanında denetleyerek çöp toplayıcı olmadan bellek güvenliği sağlayan, derlenen ve statik tipli bir sistem dilidir.

Rust programlama dili nedir?

Rust, Graydon Hoare'in kişisel projesi olarak başlayan, sonradan Mozilla tarafından desteklenen ve 2015'te 1.0 sürümüne ulaşan, genel amaçlı bir sistem programlama dilidir. Bugün açık kaynaklı Rust projesi tarafından, bağımsız Rust Foundation'ın desteğiyle geliştirilmektedir. Amacı, C ve C++'ın hızını ve düşük seviyeli kontrolünü sunarken bütün bir bellek hataları sınıfını önlemektir.

Rust statik ve güçlü tiplidir ve kapsamlı tip çıkarımı yapar. Bellek modeli sahipliğe (ownership) dayanır: her değerin tam olarak bir sahibi vardır ve sahibi kapsamdan çıktığında değer otomatik olarak serbest bırakılır. Diğer kodlar bir değeri referanslar aracılığıyla ödünç alabilir (borrow) ve derleyicinin ödünç denetleyicisi (borrow checker), aynı anda ya birçok okuyucunun ya da tek bir yazarın olabileceği, ikisinin asla birlikte olamayacağı kuralını uygular. Rust'ta ayrıca null ve istisna yoktur; eksik değerler için Option tipi, kurtarılabilir hatalar için Result tipi kullanılır.

Rust; komut satırı araçlarında, web sunucularında, WebAssembly modüllerinde, gömülü cihazlarda, tarayıcı bileşenlerinde ve Linux çekirdeğindeki sürücüler dahil işletim sistemlerinin bazı kısımlarında kullanılır. Ödünç denetleyici bir kütüphaneye benzer: birçok kişi bir kitabı aynı anda okuyabilir veya tek bir kişi içine yazmak üzere ödünç alabilir, ama ikisi asla aynı anda olamaz; kütüphane de kitabın ne zaman geri geleceğini her zaman bilir.

Sık görülen bir kafa karışıklığı, Rust'ın bellek güvenliğini nasıl sağladığıdır. Java ya da Go'dan farklı olarak çalışma zamanında çöp toplayıcı kullanmaz; derleyici sahiplik kurallarını program hiç çalışmadan denetler, bu nedenle toplama duraklamaları olmaz. Bunun bedeli daha dik bir öğrenme eğrisidir; çünkü C'de derlenecek kod, sahiplik netleşene kadar reddedilebilir. Derleyicinin doğrulayamadığı düşük seviyeli işler için Rust, açıkça işaretlenmiş unsafe blokları sunar.

Önemli noktalar

  • Rust, C ve C++ ile kıyaslanabilir performansla yerel makine koduna derlenir.
  • Sahiplik ve ödünç alma kuralları, çöp toplayıcı olmadan bellek güvenliği sağlar.
  • Derleyici güvenli kodda veri yarışlarını (data race) önler; bu da eşzamanlılığı daha güvenli kılar.
  • Hatalar istisnalarla değil Result ile, eksik değerler null ile değil Option ile ele alınır.

Örnek

Sahiplik ve ödünç almarust
fn main() {
    let greeting = String::from("Hello");

    // Borrow the string with & so main keeps ownership
    print_twice(&greeting);

    let moved = greeting; // Ownership moves to the new variable
    // println!("{}", greeting); // Compile error: greeting was moved
    println!("{} still works", moved);
}

fn print_twice(text: &str) {
    println!("{text} {text}");
}

Sık sorulan sorular

Rust neden bellek güvenli kabul edilir?

Derleyici, program çalışmadan önce sahiplik ve ödünç alma kurallarını denetler; bu da güvenli kodda serbest bırakıldıktan sonra kullanma (use-after-free), çift serbest bırakma (double free) ve veri yarışı gibi yaygın hataları dışarıda bırakır. Denetlenemeyen düşük seviyeli işlemler, açıkça işaretlenmiş unsafe bloklarıyla sınırlıdır.

Rust öğrenmek zor mu?

Rust, esas olarak sahiplik ve ödünç denetleyici yüzünden dik bir öğrenme eğrisiyle tanınır. Derleyicisinin hata mesajları ayrıntılıdır ve çoğu zaman çözüm önerir; bu da yeni başlayanlara yardımcı olur.

Rust'ın çöp toplayıcısı var mı?

Hayır. Rust, bir değerin sahibi kapsamdan çıktığında belleği deterministik olarak serbest bırakır; bu yüzden çöp toplama duraklamaları yaşanmaz.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar