- 793 名前:デフォルトの名無しさん [2017/11/24(金) 21:35:13.18 ID:8Hl3EYId.net]
- >>756, >> 759
Rustが目指しているのは基本的にはC++の後継。 C++との一番の違いは、Cとの互換性を捨てることで、より厳格(安全)に書けるようにすること。 厳格であることを実現するために、型システムとメモリ管理などについて比較的新しい概念を導入している。 型システム、イミュタービリティやその他の構文に関してはHaskellの影響を強く受けている。 メモリ管理については、従来のC++ではプログラマがメモリ安全を保障するしかなかったが、 C++14以降のスマートポインタやそれに伴うメモリオーナーシップの概念の影響を受けて、 所有権、借用(参照)、ライフタイム(3つ合わせて所有権システムなどと呼ばれる)という形で構文にそれらを組み込むことで、 コンパイラがメモリ安全を保障することができるようにした。 ただし、あくまでC++の後継なので比較的簡単にFFI(Cを呼ぶ)ことができるようにという点も意識して作られている。 だから、unsafeを使えば生ポインタを直に使えるように設計されている。 Haskellとの違いはGCを使っていないこととミュータブルも扱えるようにしていること等で、 結局、それらはC++並みの実行速度を実現するため。 他にも細かい違いは多々あるが、大まかにはこんなところかな。
|

|