ΠΠ° ΡΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ rust ΡΠ·ΡΠΊ
Rust β ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΈ Π΄Π΅ΡΠ·ΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ C++ ΠΈ Haskell.
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ·ΡΠΊΠ° Rust ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² 2010 Π³ΠΎΠ΄Ρ, ΠΈ ΠΎΠ½ ΡΡΠ°Π·Ρ Π·Π°Π½ΡΠ» ΡΡΠ΅ΡΡΡ ΡΡΡΠΎΡΠΊΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π»ΡΠ±ΠΈΠΌΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° StackOverflow. ΠΠΎΠ΄ ΡΠΏΡΡΡΡ Rust Π²ΠΎΠ·Π³Π»Π°Π²ΠΈΠ» ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π΄Π΅ΡΠΆΠ°Π»ΡΡ ΡΠ°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΡΡΠ°Π» ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ, Π² ΡΡΠΌ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠΊΡΡΠ³ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ².
Π ΡΡΠΌ ΠΈΠ΄Π΅Ρ ΡΠ·ΡΠΊΠ° Rust
ΠΠ²ΡΠΎΡΡ ΡΠ·ΡΠΊΠ° Π½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π²ΡΠ΅ΠΌΠΎΠ³ΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ° C++ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ Haskell. ΠΠ½ ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ Π·Π°Π΄Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ ΠΎΠ±Π° ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ ΠΎΠ½ ΡΠΎΠ±ΡΠ°Π» ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ·ΡΠΊΠ° Rust.
Rust ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΡΠ»ΡΡΠΈΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π‘Π΅ΠΉΡΠ°Ρ ΠΏΠΎΡΡΠ½ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ.
👉 ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ Π½ΡΠΆΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠ»Π° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
👉 Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Rust β ΠΎΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΆΠ΅Π»Π΅Π·Π°.
👉 ΠΡΠ»ΡΡΠΈΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΉ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΡΠ·ΡΠΊΠ΅ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ Rust ΡΡΠΎ ΠΠΠ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΡΡΠΌ, ΠΠΠ Π² Rust ΠΏΡΠΈΡΠ»ΠΎ ΠΈΠ· C++, Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ β ΠΈΠ· Haskell. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π² ΡΠ°Π·Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΊΠΎΠ΄
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π² Rust Π²Π·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠ· C ΠΈ C++.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Β«ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!Β» Π½Π° Rust Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
fn main() <
println!(«Hello, world!»);
>
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠΎ Π½Π°ΡΠ°ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΈ Π½Π° Rust. ΠΡΡΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΡΡΠΎ Π² Rust Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
let x = if new_game() < 4 >
else if reload() < 3 >
else
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ x Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π° ΡΠ΅ΡΡΡΡΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ new_game() Π²Π΅ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΡΡΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ reload() ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΡΠ»ΠΈ true, ΡΠΎ x ΠΏΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3, Π° Π΅ΡΠ»ΠΈ ΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ β ΡΠΎ x ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΡΠΌ 0.
ΠΡΡ Π² Rust Π΅ΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Ρ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ ΡΠΎΠ²ΠΏΠ°Π»ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΠ»Π°Π²Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Rust
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° C, Π³Π»Π°Π²Π½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Rust ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²Π·ΡΠ»ΠΈ ΠΈΠ· Haskell, ΠΈ Π·Π²ΡΡΠΈΡ ΠΎΠ½Π° ΡΠ°ΠΊ:
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Rust ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»Π°ΡΡ ΠΈ Π½Π΅ ΡΠΏΠ°Π»Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Ρ ΡΠ°ΠΌΠΈ Π΅Ρ Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Rust ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π½Π°Π΄ΡΠΆΠ½Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Haskell. ΠΠΎΡΡΠΈ β ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Β«Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉΒ» Π±Π»ΠΎΠΊ unsafe, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΡΡ Π΅ΠΌΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π² ΡΠ΅ΠΎΡΠΈΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ±ΠΎΡΠΌ. ΠΠΎ Π΄Π°ΠΆΠ΅ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Rust ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ°ΠΌ ΠΈ ΠΏΠ°Π΄Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±Π΅Π·Π½Π°Π΄ΡΠΆΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ .
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΡΠ·ΡΠΊΠ°
ΠΠΎΠ³Π΄Π° ΡΠ·ΡΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ :
ΠΠΈΠ½ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ·ΡΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Rust ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ, ΡΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΡΡ ΠΊ ΠΌΠΈΠ½ΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:
Π§ΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Rust
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Rust ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , Π³Π΄Π΅ Π½ΡΠΆΠ½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈ ΠΎΠ±ΡΠ΅Π΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Rust ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ‘, Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π²Π΅Π±-Π΄Π²ΠΈΠΆΠΊΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ Π±ΡΠΊΠ΅Π½Π΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ°ΠΌΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π³Π΄Π΅ Rust Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² Π»ΠΎΠ³ΠΎΠ²ΠΎ ΡΠΆΠ°Π²ΡΠΈΠ½Ρ. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ rust
Π ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎ rust Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ± ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ·ΡΠΊΠ°, ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΎΡΠΊΡΠ΄Π° ΠΎΠ½ ΠΏΡΠΈΡΡΠ». Π ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΡΡΠΎ Π½Π΅ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΠ°ΡΠΎΠ΄Ρ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ. ΠΠΎ Π² ΠΎΠΏΡΠΎΡΠ΅, Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Π½Π°Π΄ΠΎ Π±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΡ ΡΡΠΎ ΠΆΠ΅, ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ ΡΠ°Π·Π±ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° rust. ΠΡ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ ΠΏΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΏΡΡΠΌΠΈΠΊΠΎΠΌ ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΡ.
Π‘Π»ΠΎΠ²Π°ΡΡ
ICE (Internal compiler error), ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Π²Ρ ΡΠΌΠ΅Π΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π½Π° rust.
ΠΠ°ΡΠ°Π»ΠΎ
ΠΠΎΠ΅Ρ Π°Π»ΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ Π»Π΅Π·ΡΡ Π½Π°ΡΠΈΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ Π² ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. Π‘ΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Windows 10. ΠΠ΄ΡΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΈ Π»ΡΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠΎΡΡΠ°ΡΡΡΡ Ρ github. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎ zip, ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ.
Π£ΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΡΠ±Π°Ρ ΡΠ²Π΅ΠΆΠ°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ.
Guide to Rustc Development. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. 460 ΡΡΡΠ°Π½ΠΈΡ. ΠΠ΅ Ρ ΠΈΠ»ΠΎ. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ pdf.
ΠΡ ΠΈ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠΎΠ³ΠΎ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Ρ Π²Π°ΡΠ°Π΅ΠΌ Π½ΠΎΡΡΠ±ΡΠΊ ΠΈ ΠΈΠ΄ΡΠΌ Π½Π° Π²Π΅ΡΠ°Π½Π΄Ρ, ΡΠΈΠ΄Π΅ΡΡ ΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ. ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π³Π»ΡΠΏΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ Ρ ΠΎΡΡ ΡΡΠΎ-ΡΠΎ. ΠΠΊ, ΡΠ°ΠΊ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ.
ΠΠΊ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ cargo Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎ Ρ ΠΆΠ΅ Π½Π° Π½Π°Π΄ΠΎ cargo ΠΈΠ·Π΄Π΅Π²Π°ΡΡΡ, ΡΠ°ΠΊ Π²Π΅Π΄Ρ?
ΠΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ΠΠ°ΠΊ Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ rust
Π§Π΅Π³ΠΎ? Π’Π°ΠΊ, ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡ ΡΠΎΠ±ΡΠ°Π», Π½ΠΎ ΡΡΠ³Π°Π΅ΡΡΡ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π»ΠΈΠ½ΠΊΠ΅ΡΠ°. ΠΡ ΠΆΠ΅ΠΆ, Π·Π°ΡΠ°Π·Π°. Π’ΠΎ Π΅ΡΡΡ, Π»ΠΈΠ½ΠΊΠ΅Ρ Π΅ΠΌΡ Π½ΡΠΆΠ΅Π½ Π²Π½Π΅ΡΠ½ΠΈΠΉ. Π ΡΠ³Π°Π΅ΠΌΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π²ΡΡΠ°ΡΠΌ Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΡΠ΅ΡΠ»Π° ΠΈ ΠΈΠ΄ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ°Π»ΠΈΡΡ 5 Π³ΠΈΠ³ΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Visual Studio Build Tools Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ Π½Π° Ρ ΠΎΡΡΠΏΠΎΡΠ΅.
ΠΠΈΠ»Π΄ΠΈΠΌ Π²ΡΡ Π΅ΡΡ ΡΠ°Π· ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ.
Π¨ΠΈΡΠΈΠ½Π° ΠΈ ΠΆΠΈΡΠΈΠ½Π° ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡ , ΡΡ, ΡΠΆΠ°Π²Π°Ρ Π±Π°Π½ΠΊΠ°! ΠΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΡΠ°?? Π― ΡΠΆΠ΅ ΠΊΠ°ΠΊ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ Π²ΡΠ΅ΠΌ ΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»ΡΠΌ Π₯Π°Π±ΡΠ° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΈ ΠΊΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ ΡΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠΈ, Π° ΡΡ. 150 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ·-Π·Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΠ½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅?
Π£Ρ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π΅Π½. ΠΠ° Π½Π΅Π³ΠΎ ΠΈ ΡΠ°ΠΊ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ Π½Π°ΠΌΠΎΡΠ°Π½ΠΎ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π΅ΠΌΡ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΠ°ΡΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ.
Π¨Π°Π³ ΠΏΠ΅ΡΠ²ΡΠΉ: rustc
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΡΡ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΠΌΡΡ. ΠΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΠΈ ΡΠΈΡΡΠΎ. Π’ΡΡ, ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΡΡΡ ΡΠΎΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΊΡΡΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° rust. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΊΡΠ΄Π° ΠΈΠ΄ΡΠΈ. ΠΠ°Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π² compiler/rustc/src/main.rs ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ.
ΠΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ. ΠΠ΅ΡΠΆΠΈΡΠ΅ΡΡ.
Π₯ΠΌ. Π’ΠΎ Π΅ΡΡΡ ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½Π΅Ρ jemalloc Π²ΡΠ·ΠΎΠ²Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΅ΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡ Π²ΠΎΡ, Π²ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ rust. ΠΠ΅Π»ΠΎΠ²-ΡΠΎ! ΠΡΡΠ°ΡΠΈ, jemalloc ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ FreeBSD Π² 2005 Π³ΠΎΠ΄Ρ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΠΎΡ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΈΠΌ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΠΎΠΌ. Π ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ malloc. Π 2007 Π³ΠΎΠ΄Ρ Firefox Π½Π°ΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡ ΠΎΠ΄Π° ΠΏΠ°ΠΌΡΡΠΈ, Π° Π΅ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡ Π»Π΅Ρ ΠΎΠ½ ΠΏΠΎΠΏΠ°Π» Π² Facebook.
Π¨Π°Π³ Π²ΡΠΎΡΠΎΠΉ: rustc-driver
ΠΠ°Π΄Π½ΠΎ, Π²ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΆ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅. rustc ΡΡΠ½Π΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ rustc-driver. ΠΡΡΡΠ΅ΠΌ ΡΡΠ΄Π°.
Π’ΡΡ ΠΌΡ Π½Π°ΠΉΠ΄ΡΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ readme, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ Π½Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π² ΡΠ°ΠΌΠΎΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ ΠΌΡ Π½Π΅ Π½Π°ΠΉΠ΄ΡΠΌ. ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΊΡΠ΅ΠΉΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠ°, Π² ΡΡΠΎΠΌ ΠΊΡΠ΅ΠΉΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ ΡΠ°ΠΊ-ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΠΎ Π±Ρ ΡΡΡ Π½Π΅ ΡΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΡ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΠΊΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ interface. ΠΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ. interface::run_compiler ΠΈ ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ.
Π§ΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π² rustc-driver? ΠΡ ΡΠΎΠ±ΡΠ°Π»ΠΈ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ. ΠΠΎΠ΄Π³ΡΡΠ·ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π½Π°ΡΠ»ΠΈ ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π‘ΠΎΠ·Π΄Π°Π»ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π»ΠΈΠ½ΠΊΠ΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΡΡΠΈΠ»ΠΈ Π»ΠΈΠ½ΡΠ΅ΡΡ (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π»ΠΈΡΡ) ΠΈ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊ Π·Π°ΠΏΡΡΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ.
Π¨Π°ΠΊ ΡΡΠ΅ΡΠΈΠΉ: rustc-interface
ΠΠ³Π°. Π’ΡΡ ΠΌΡ ΡΠΆΠ΅ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½Ρ, ΡΠ°ΠΉΠ»Ρ ΡΠΎΠΆΠ΅ Π·Π°ΠΌΠ΅ΠΏΠ»Π΅Π½Ρ. Π‘ΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡ Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ°ΠΊ-ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΠΎ Π½Π°Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΠΎΠΊΠ·Π°Π», Π³Π΄Π΅ ΠΊΡΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΊΡΠ΅ΠΉΡΠΎΠ² ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ.
Π’Π°ΠΊ, ΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ
ΠΡΡΠ°ΡΠΈ ΡΡΡ ΠΆΠ΅, Π½Π΅Π΄Π°Π»Π΅ΠΊΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ.
ΠΡΡΡΡΠ΅Π½ΡΠΊΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π°ΡΠΈ ΡΠΎΡΡΡ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΡΡΠΌΠΎ Π² ΡΠΎΡΡΠ°Ρ Π΅ΡΡΡ 3 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ. Π§ΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ? ΠΡΠ΅Π²ΡΠ°ΡΠ°ΡΡ MIR Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ rustc-codegen-llvm ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ Π² README:
ΠΠΊ, Π½Ρ ΡΡΡ Π²ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΌΡ Π±Π΅ΡΡΠΌ MIR ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² LLVM IR. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ LLVM ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ. ΠΠΎ ΠΏΠΎΠ³ΠΎΠ΄ΠΈΡΠ΅, ΠΏΠΎΠΌΠΈΠΌΠΎ LLVM Π±Π΅ΠΊΠ΅Π½Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ Π΅ΡΡ Π΄Π²Π° Π΄ΡΡΠ³ΠΈΡ ! Π‘ΠΌΠΎΡΡΠΈΠΌ ΡΡΠ΄Π°. rustc-codegen-ssa ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ Π±Π΅ΠΊΡΠ½Π΄Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LLVM) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΡΠΌΠΎ ΡΠ°ΠΌ ΠΆΠ΅ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ rustc-codegen-cranelift. Π’ΠΎ Π΅ΡΡΡ MIR Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· cranelift, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΡΡΠΊΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡ ΡΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΠ°Π·Π΅Π»Ρ Π±Π΅Π· ΠΌΠΎΡΠΎΡΠ°.
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ:
ΠΠ³Π°, Π²ΠΎΡ ΡΡΡ ΠΌΡ Π±Π΅ΡΡΠΌ Π±ΡΠΊΠ° Π·Π° ΡΠΎΠ³Π° ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ°ΡΡΠΈ. ΠΠ°Π»Π΅Π΅, ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ AST
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»Π΅, ΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π§ΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π»ΠΈΠ½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ? ΠΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ:
Π ΠΈΡΠΎΠ³Π΅ Ρ Π½Π°Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΈ ΡΠΎΠ»ΡΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ°:
Π ΠΊΠ°ΠΊ ΡΠ°Π· Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΡΠ³Π°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π¨Π°Π³ ΡΠ΅ΡΠ²ΡΡΡΡΠΉ: rustc-parse ΠΈ rustc-lexer
ΠΠ°Π»Π΅Π΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π²ΡΠ΅Ρ ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². «ΠΡΠΎΡΡΠ°Ρ» Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, rustc-parse. ΠΡΠΎ ΠΊΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ rustc-lexer. ΠΠ΅ΠΊΡΠ΅Ρ ΡΠΈΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΈΡ Π² ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ. Π’ΠΎΠΊΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ Π² Span ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ Span Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ΅ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π°ΠΏΠΈΡΠ°Π½ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π°.
Π¨Π°Π³ ΠΏΡΡΡΠΉ: rustc-expand
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°Ρ ΡΠ°ΠΌΡΠΉ Π²Π΅Π»ΠΈΠΊΠΈΠΉ ΠΈ ΠΌΠΎΠ³ΡΡΠΈΠΉ AST.
ΠΡΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ astfragments! Π² \compiler\rustcexpand\src\expand.rs
AST ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² Π½ΡΠΆΠ½ΡΠΉ Π²ΠΈΠ΄. ΠΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ½ΠΈΠ³Ρ. ΠΠΎ ΠΌΡ ΠΏΠΎΠΊΠ° ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΡΠ΅ΠΌΡΡ ΡΠ°ΠΌ, ΡΡΠΎ AST ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π΄ΠΎ HIR.
Π¨Π°Π³ ΡΠ΅ΡΡΠΎΠΉ: rustc-middle
ΠΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ rustc-middle. ΠΠ΅ΡΠ½Π΅Π΅, Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ. ΠΠ°Π»Π΅Π·Π°Π΅ΠΌ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ HIR, MIR ΠΈ Types.
ΠΠ΄Π΅ΡΡ Π²Π΅ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ ΡΠ°ΡΡΠ²ΠΎΡΡΠ΅ΡΡΡ Π² ΡΠ°Π΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π±ΡΡΡ ΡΠ°Ρ Π°ΡΠΎΠΌ. Π’Π°ΠΊ ΠΌΠΎΡ Π»ΡΠ±ΠΈΠΌΠ°Ρ for node in data ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π²
Π‘ HIR ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡβ¦
Π¨Π°Π³ ΡΠ΅Π΄ΡΠΌΠΎΠΉ: rustc_ty
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ½Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π€Π°ΠΉΠ» ΠΏΡΠΎΡΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ. ΠΠ°ΠΌ Π½Π°Π΄ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΈΠΏΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΉΡΠ°. Π‘Π°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 3000 ΡΡΡΠΎΠΊ, Π½Π΅ ΡΡΠΈΡΠ°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
ΠΡΡΠ°ΡΠΈ, ΡΠΌΠΎΡΡΠΈΠΌ Π² rust-master\compiler\rustc_typeck\src\check\expr.rs
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ:
ΠΠ°ΡΡ Π°Π»ΠΊΠΈ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ.
Π’Π°ΠΊ, Π²ΡΡΠΈΡΠ»ΠΈΠ»ΠΈ ΡΠΈΠΏΡ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡ Π½ΡΡΡ ΡΡΡΠΎΠΊΡ Π² Int. Π₯ΠΎΡΠΎΡΠΎ. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ Π΄Π°Π»ΡΡΠ΅.
Π¨Π°Π³ Π²ΠΎΡΡΠΌΠΎΠΉ: rustc_mir ΠΈ rustc_mir_build
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ HIR ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² MIR. ΠΠ΅ΡΡΠΌ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ TyCtxt ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π²
Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π½ΠΎΠ΄Π°ΠΌ. MIR ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ HIR. ΠΠ½Π° ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π½Π°Ρ LLVM Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
Π¨Π°Π³ Π΄Π΅Π²ΡΡΡΠΉ: ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ
Π‘Π°ΠΌΠ°Ρ «ΡΡΡΠ°ΡΠ½Π°Ρ» ΡΡΠ½ΠΊΡΠΈΡ rust ΡΡΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ borrow cheker. Π‘Π°ΠΌ ΠΎΠ½ ΠΆΠΈΠ²ΡΡ Π²
Π¨Π°Π³ Π΄Π΅ΡΡΡΡΠΉ: ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
Π¨Π°ΠΊ ΠΎΠ΄ΠΈΠ½Π½Π°Π΄ΡΠ°ΡΡΠΉ: ΠΏΡΠΎΡΠ°ΠΉ, rust!
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ MIR ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π² LLVM IR. ΠΠΎΠ΅Ρ Π°Π»ΠΈ. rustc-codegen-llvm ΡΠΎΠ·Π΄Π°ΡΡ LLVM-IR Π½Π° Π±Π°Π·Π΅ MIR, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅. ΠΠ΄Π΅ΡΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ rust ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ llvm. Π₯ΠΎΡΡ, ΠΌΡ Π΅ΡΡ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Ρ ΡΠΎΡΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠΎΠΏΠ°Π΅ΠΌΡΡ ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ rustc-target Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ IR Π² ΡΠ°ΠΌ LLVM. rustc_llvm Π½Π°ΠΌ Π² ΠΏΠΎΠΌΠΎΡΡ.
ΠΠΎΡ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΈ Π²ΡΡ, ΡΠ΅Π±ΡΡΠ°! LLVM Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π½Π°ΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ° ΠΌΠΎΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Visual Studio Build Tools Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΠΎΠ½ΡΡΡ LLVMIR Π² ΠΎΠ±ΡΡΠ½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ.
ΠΠ½ ΠΏΠ°ΡΡΠΈΡΡΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ° Π² AST.
AST ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π² HIR
HIR ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π² MIR.
MIR Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΠΎΠ½ΡΠ΅ΡΡΡ Π² LLVMIR.
LLVMIR ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅.
ΠΡΠΎΠ±ΡΠ΅ΠΌ ΡΡΡΠΊΠ°ΠΌΠΈ
ΠΡ ΡΡΠΎ ΠΆΠ΅, Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΎΡΡΠ°Π»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΡ, ΡΠΈΠΏΠ° ΡΡΠΎΠ³ΠΎ:
Π Π½Π°ΡΠ°ΡΡ Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ Π²ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
ΠΠ½Π°ΡΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΌΠΈΡΠΈΠ°Π΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ²ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΈ IR Π΄Π»Ρ LLVM, ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅Π»Π²ΠΎΠ΅ΠΊΠΎ-ΡΠΈΡΠ°Π΅ΠΌΡΠΉ MIR.
Π Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ nightly ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
Π ΠΏΠΎΠ»ΡΠ±ΠΎΠ²Π°ΡΡΡΡ Π²Π°ΡΠΈΠΌ HIR, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ
ΠΠ°ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ AST.
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ
ΠΡ ΡΡΠΎ ΠΆΠ΅, ΠΌΡ Π·Π°Π»Π΅Π·Π»ΠΈ Π² Π΄Π΅Π±ΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π±ΠΈΠ»Π΄ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. Π― ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ rust. ΠΠΎ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ, Π²Π°Ρ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠ·ΡΠΊ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½ΠΈΡΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ»ΠΎΠΆΠ΅Π½. ΠΡΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΄Π»Ρ 386 ΠΏΠΎΠ΄ Π΄ΠΎΡΠΎΠΌ. Π Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ C#, Java, Javascript, Golang ΠΈΠ»ΠΈ haskell. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, Ρ ΠΎΡΡ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ.
ΠΠΎΠ½ΡΡΠ½ΠΎ? ΠΡ ΠΈ Ρ ΠΎΡΠΎΡΠΎ.
ΠΠΎΡΡΡΠΊΡΠΈΠΏΡΡΠΌ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Rust
Apr 17 Β· 12 min read
Rust β ΡΡΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°Π±ΠΈΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΠΊΠΎΡΠ΄Π½ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ.
Π 2020 Π³ΠΎΠ΄Ρ ΠΏΠΎ ΠΈΡΠΎΠ³Π°ΠΌ ΠΎΠΏΡΠΎΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Stack Overflow ΡΠ°ΠΌΡΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ ΠΏΡΡΡΠΉ Π³ΠΎΠ΄ ΠΏΠΎΠ΄ΡΡΠ΄ Π±ΡΠ» ΠΏΡΠΈΠ·Π½Π°Π½ Rust. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Rust ΡΠΊΠΎΡΠΎ ΠΎΠ±Π³ΠΎΠ½ΠΈΡ C ΠΈ C++ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠ΅Π΄ΡΡΠ²Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π²Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ²Π½Π°Ρ ΠΈ ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ Ρ Π° Π±ΠΎΡΡ Ρ Rust Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΏΡΡΠ°. ΠΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ Rust ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΈΠ·ΡΡΠΈΠΌ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Rust!
ΠΠΎΡ ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΡΠ°ΡΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Rust?
Rust β ΡΡΠΎ ΠΌΡΠ»ΡΡΠΈΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΡΠ΅ΠΉΠ΄ΠΎΠ½ΠΎΠΌ Π₯ΠΎΡΠΎΠΌ Π² Mozilla Research Π² 2010 Π³ΠΎΠ΄Ρ.
Rust ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π°ΠΊΡΠ΅Π½Ρ Π·Π΄Π΅ΡΡ ΡΠ΄Π΅Π»Π°Π½ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅. ΠΡΠΎΡ ΡΠ·ΡΠΊ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡ ΠΎΠΆ Π½Π° C ΠΈΠ»ΠΈ C++, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ»ΠΎΠΊ.
Rust β ΡΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Rust Π² Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄ΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ .
Rust ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π³ΠΎΠ½ΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ Rust?
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Rust ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡ. Π Ρ ΠΎΡΡ Π΅Π³ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , Rust ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ², ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠ°ΠΌΡΠ΅ Π²ΡΡΠΎΠΊΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ.
Rust ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΎΡΡΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΡΠ°ΡΡ ΡΠ·ΡΠΊΠΎΠΌ Π·Π°Π²ΡΡΠ°ΡΠ½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΅Π±Ρ Π² ΡΠΎΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Rust ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΡΠ΅Π±Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΎΠΏΠ»Π°ΡΠΎΠΉ.
Β«Hello World!Β» Π½Π° Rust
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
fn β ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ function (Β«Π€ΡΠ½ΠΊΡΠΈΡΒ»). Π Rust (ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ Π±Ρ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° Ρ ΡΠ΄Π΅Π»Π°Ρ ΡΠΎ-ΡΠΎ ΠΈ ΡΠΎ-ΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π΄Π°ΠΌ ΠΎΡΠ²Π΅ΡΒ».
Π€ΡΠ½ΠΊΡΠΈΡ main β ΡΡΠΎ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
Π‘ΠΊΠΎΠ±ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ ΠΏΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅Ρ. ΠΠΎ ΡΠΊΠΎΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠ°Π»ΡΡΠ΅ ΠΈΠ΄Π΅Ρ ΡΡΡΠΎΠΊΠ°. Π‘ΡΡΠΎΠΊΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π±ΡΠΊΠ² ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ ( » ). ΠΠ°ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ° println! ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ Π΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°Π΅ΠΌ.
Π ΡΡΠΎ ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠ½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠΎΠ½Π΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡΠΊΠ° Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΎΡ. ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΊΠΎΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ.
ΠΡΠ½ΠΎΠ²Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Rust
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Rust ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ β ΡΡΠΎ ΡΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π€ΠΎΡΠΌΠ°Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΎΠ²:
ΠΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ, Ρ. Π΅. ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π‘ΠΎΠ²Π΅Ρ💡 ΠΡΠ΅Π³Π΄Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ ΡΠΎ ΡΡΡΠΎΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ, Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π½Π°ΡΠΈΠ½Π°ΠΉΡΠ΅ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ.
Π Rust ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Ρ. Π΅. ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π΄Π°Π½Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΠ°ΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ° Rust ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΡΠΌ, Π½ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅Π΄Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π³ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Ρ Π²Π°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Ρ ΡΡΡΠ΄ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Rust ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΈΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΎΠ±ΡΡΠ²ΠΈΠΌ Π΅Π΅ Π²ΠΎΡ ΡΠ°ΠΊ:
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠΊΠ° ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π· (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ), Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ my_name Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π―Π²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. Rust ΡΠ΄Π΅Π»Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Ρ Π΅Π³ΠΎ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π΄Π»Ρ Π½Π΅Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ Π½Π° Rust:
Π€ΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ Π½Π°Π±ΠΎΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Rust, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΡΡΠ»ΠΎΠ²Π½ΡΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΠΎ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ Π½Π°ΠΌ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ function (Β«Π€ΡΠ½ΠΊΡΠΈΡΒ»). ΠΠ° Π½ΠΈΠΌ Π² ΠΊΠΎΠ΄Π΅ Rust ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅.
ΠΡΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΡΠ±ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΡΡΡΠΌΠΈ.
Π Π·Π΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ. ΠΡΠΎ ΠΈΠΌΡ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΡΡΠ»Π°ΡΡΠ΅ΠΉΡΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΡΠ»Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ. ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Rust Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π°.
Π€ΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. ΠΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΡΠΊΠΎΠ±ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.
Π ΡΡΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ΄Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°Π΅ΠΌ hello-world Π² ΡΡΠ½ΠΊΡΠΈΡ say_hello() :
Π‘ΠΎΠ²Π΅Ρ💡 Π£Π²ΠΈΠ΄Π΅Π»ΠΈ () β Π·Π½Π°ΡΠΈΡ, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π΄Π΅Π»ΠΎ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π‘Π°ΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΡΠ°ΡΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°. ΠΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π°Π²ΡΠΎΡΡ ΠΊΠΎΠ΄Π° Π±ΡΡΡΡΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΡΠ²ΠΎΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π° Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ β Π±ΡΡΡΡΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π’Π°ΠΊ ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ΅ΠΌ.
Π‘ΠΎΠ²Π΅Ρ💡 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Β«Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π½ΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ.
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΡΠ»ΠΎΠ²ΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΠ΅ Π½Π΅Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° if :
Π‘ΠΎΠ²Π΅Ρ💡 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ Π² ΡΠΈΠΊΠ»Π°Ρ while ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΊΠ» Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ Rust: Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΡΠΊΡΡΡΡ
ΠΠ»Π°Π΄Π΅Π½ΠΈΠ΅
ΠΠ»Π°Π΄Π΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Rust ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ Π΅Π³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ.
ΠΠΎ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java, JavaScript ΠΈΠ»ΠΈ Python, Π΅ΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΈ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. Π Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΠΈΠΏΠ° C ΠΈΠ»ΠΈ C++ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π²ΡΡΡΠ½ΡΡ.
Π ΡΡΠ½ΠΎΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΎΠ½Π° ΡΠ°ΡΡ ΠΎΠ΄ΡΠ΅ΡΡΡ Π²ΠΏΡΡΡΡΡ. Π ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π½Π½Π΅Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
Rust Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΠΎΡ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π»Π°Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠ°Π²ΠΈΠ», ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠΎΡ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²Π»Π°Π΄Π΅Π½ΠΈΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. ΠΠ»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π½Π΅Π³ΠΎ.
Π‘ΡΡΡΠΊΡΡΡΡ
ΠΠ½Π°Π»ΠΎΠ³ΠΎΠΌ ΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ Java ΠΈ Python, ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΡ.
ΠΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° Car Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Car Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ brand (ΠΌΠΎΠ΄Π΅Π»ΠΈ) ΠΈ year (Π³ΠΎΠ΄Π° Π²ΡΠΏΡΡΠΊΠ°).
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Car Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ:
Π ΡΠ΅Π»ΠΎΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠ΅ΠΉΡΡ ΠΊ ΡΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ Rust: Cargo
Cargo β ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Rust. ΠΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Rust. ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ). ΠΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π»ΡΠ±ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Rust ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ Π½ΠΈΡ Π½Π΅ Π½ΡΠΆΠ½Ρ. Π Π²ΠΎΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Cargo Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Cargo ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ Π½Π° GitHub, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ ΡΠ°Π½ΡΡ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΡΠ΅.
ΠΡΠ»ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ Rust Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, Cargo Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ( rustc ) ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ( rustdoc ) ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Rust. Π£Π±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Cargo ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π²ΠΎΠ΄ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Cargo Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π½Π°Π±Π΅ΡΠΈΡΠ΅:
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠ°ΠΆΡΡΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ, Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π³ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Rust! ΠΠΎΠ΄ ΠΎΡ Π³ΠΎΠ΄Π° Rust ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π·Π°Π²Π΅ΡΡΠΈΡΡ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ.