2014-07-05 02:39:39 +02:00
|
|
|
Rust is a curly-brace, block-structured expression language.
|
|
|
|
It visually resembles the C language family, but differs significantly in syntactic and semantic details.
|
|
|
|
Its design is oriented toward concerns of "programming in the large", that is, of creating
|
|
|
|
and maintaining boundaries - both abstract and operational - that preserve large-system integrity,
|
2014-06-06 03:06:12 +02:00
|
|
|
availability and concurrency.
|
|
|
|
|
|
|
|
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles.
|
|
|
|
Rust also supports generic programming and metaprogramming, in both static and dynamic styles.
|
|
|
|
|
2014-07-05 02:39:39 +02:00
|
|
|
A short summary of features
|
2014-06-06 03:06:12 +02:00
|
|
|
|
|
|
|
Type system: static, nominal, linear, algebraic, locally inferred
|
|
|
|
Memory safety: no null or dangling pointers, no buffer overflows
|
|
|
|
Concurrency: lightweight tasks with message passing, no shared memory
|
|
|
|
Generics: type parameterization with type classes
|
|
|
|
Exception handling: unrecoverable unwinding with task isolation
|
|
|
|
Memory model: optional task-local GC, safe pointer types with region analysis
|
|
|
|
Compilation model: ahead-of-time, C/C++ compatible
|
|
|
|
License: dual MIT / Apache 2
|