Mozilla 發布的編程語言,Rust 0.3 發布
Rust 0.3 發布了,Rust 是 Mozilla 目前正在開發一個新的編程語言,由web語言的領軍人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力開發。
創建這個新語言的目的是為了解決一個很頑疾的問題:軟件的演進速度大大低于硬件的演進,軟件在語言級別上無法真正利用多核計算帶來的性能提升。Rust是針對多核體系提出的語言,并且吸收一些其他動態語言的重要特性,比如不需要管理內存,比如不會出現Null指針等等。
Rust 最早是在Mozilla的社區峰會上公之于眾的,當時就有人問以后是否會用Rust重寫Firefox,Brenda說希望如此。Rust目前還處于初期的開發階段,開發團隊目前并不想花太多的時間在語法上,不過他們還是提供了一小段代碼:
iter pairs() -> tup(int,int) {let int i = 0;
let int j = 0;
while (i < 10) {
put tup(i, j); i += 1; j += i;
}
}
fn main() {
let int i = 10;
let int j = 0;
for each (tup(int,int) p in pairs()) {
log p._0; log p._1; check (p._0 + 10 == i); i += 1; j = p._1; }
check(j == 45);
}</pre>
Rust 0.3 Changes:
* ~1900 changes, numerous bugfixes* New coding conveniences* Integer-literal suffix inference* Per-item control over warnings, errors* #[cfg(windows)] and #[cfg(unix)] attributes* Documentation comments* More compact closure syntax* 'do' expressions for treating higher-order functions ascontrol structures* *-patterns (wildcard extended to all constructor fields)* Semantic cleanup* Name resolution pass and exhaustiveness checker rewritten* Region pointers and borrow checking supersede aliasanalysis* Init-ness checking is now provided by a region-based livenesspass instead of the typestate pass; same for last-use analysis* Extensive work on region pointers* Experimental new language features* Slices and fixed-size, interior-allocated vectors* #!-comments for lang versioning, shell execution* Destructors and iface implementation for classes;type-parameterized classes and class methods* 'const' type kind for types that can be used to implementshared-memory concurrency patterns* Type reflection* Removal of various obsolete features* Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind','crust', 'native' (now 'extern'), 'cont' (now 'again')* Constructs: do-while loops ('do' repurposed), fn binding,resources (replaced by destructors)* Compiler reorganization* Syntax-layer of compiler split into separate crate* Clang (from LLVM project) integrated into build* Typechecker split into sub-modules* New library code* New time functions* Extension methods for many built-in types* Arc: atomic-refcount read-only / exclusive-use shared cells* Par: parallel map and search routines* Extensive work on libuv interface* Much vector code moved to libraries* Syntax extensions: #line, #col, #file, #mod, #stringify,#include, #include_str, #include_bin* Tool improvements* Cargo automatically resolves dependencies</pre>本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!