Understanding Compilation and Execution Flow in Rust
๐ Scenario: You are learning how Rust programs are compiled and executed. To understand this, you will write a simple Rust program step-by-step that shows how the program is built and runs from start to finish.
๐ฏ Goal: Build a simple Rust program that declares variables, uses a function, and prints output to demonstrate the compilation and execution flow.
๐ What You'll Learn
Create a variable with a specific value
Create a function that returns a value
Call the function and store its result
Print the final result
๐ก Why This Matters
๐ Real World
Understanding compilation and execution flow helps you write efficient Rust programs and debug them easily.
๐ผ Career
Rust developers need to know how code is compiled and executed to optimize performance and fix errors.
Progress0 / 4 steps
1
DATA SETUP: Declare a variable
Create a variable called number and set it to 10 using let.
Rust
Hint
Use let to declare a variable in Rust.
2
CONFIGURATION: Create a function to double the number
Add a function called double that takes an i32 parameter named num and returns num * 2.
Rust
Hint
Define a function with fn, specify parameter and return type, and return the doubled value.
3
CORE LOGIC: Call the function and store the result
Inside main, call the function double with number and store the result in a variable called doubled.
Rust
Hint
Call the function by its name and pass the variable as argument, then assign the result.
4
OUTPUT: Print the doubled value
Add a println! macro inside main to print doubled with the message: Doubled value is: {}.
Rust
Hint
Use println!("Doubled value is: {}", doubled); to print the message with the value.
Practice
(1/5)
1. What is the first step when running a Rust program?
easy
A. Directly run the Rust source file without compiling
B. Compile the code using rustc to create an executable
C. Write the output to a file before compiling
D. Use an interpreter to execute the Rust code line by line
Solution
Step 1: Understand Rust's execution model
Rust is a compiled language, so the source code must be compiled first.
Step 2: Identify the compilation tool
The rustc compiler converts Rust code into an executable file.
Final Answer:
Compile the code using rustc to create an executable -> Option B
Quick Check:
Rust code is compiled first [OK]
Hint: Rust code must be compiled before running [OK]
Common Mistakes:
Thinking Rust runs like a script without compiling
Confusing Rust with interpreted languages
Trying to run source code directly
2. Which command correctly compiles a Rust file named main.rs?
easy
A. run rustc main.rs
B. compile main.rs
C. rustc main.rs
D. cargo run main.rs
Solution
Step 1: Recall Rust compilation command
The Rust compiler command is rustc followed by the filename.
Step 2: Check each option
rustc main.rs matches the correct syntax: rustc main.rs.
Final Answer:
rustc main.rs -> Option C
Quick Check:
Use rustc filename.rs to compile [OK]
Hint: Use 'rustc' followed by filename to compile [OK]
Common Mistakes:
Adding extra words like 'run' before rustc
Using 'compile' instead of 'rustc'
Confusing cargo commands with rustc
3. What will be the output when running this Rust program?
fn main() {
println!("Hello, Rust!");
}
medium
A. Hello, Rust!
B. println!("Hello, Rust!");
C. Error: missing semicolon
D. No output
Solution
Step 1: Understand the println! macro
This macro prints the string inside quotes to the console with a newline.
Step 2: Check the code correctness
The code is syntactically correct and will print the message.
Final Answer:
Hello, Rust! -> Option A
Quick Check:
println! outputs the string [OK]
Hint: println! prints text to console with newline [OK]
Common Mistakes:
Thinking println! prints the code itself
Expecting no output without return statement
Confusing macro syntax with function
4. Identify the error in this Rust code snippet:
fn main() {
println!("Hello, world!")
}
medium
A. Missing closing parenthesis for println! macro
B. No error, code runs fine
C. Incorrect function name
D. Missing semicolon after println! macro
Solution
Step 1: Check statement termination syntax
Rust requires semicolons to terminate expression statements like println! macro calls.
Step 2: Locate the missing semicolon
The println! call is missing the terminating semicolon before the closing brace.
Final Answer:
Missing semicolon after println! macro -> Option D
Quick Check:
Expression statements require semicolon [OK]
Hint: Rust expression statements require a trailing semicolon [OK]
Common Mistakes:
Thinking it's a parenthesis mismatch
Confusing macros with block expressions
Believing no semicolon needed before closing brace
5. You have two Rust files: lib.rs and main.rs. You want to compile main.rs which uses functions from lib.rs. What is the correct compilation and execution flow?
hard
A. Compile lib.rs into a library, then compile main.rs linking the library, then run the executable
B. Run main.rs directly without compiling lib.rs
C. Compile only main.rs, Rust automatically compiles lib.rs
D. Combine both files manually into one file before compiling
Solution
Step 1: Understand Rust's multi-file compilation
The rustc compiler automatically handles referenced modules like lib.rs when compiling main.rs.
Step 2: Single command suffices
With mod lib; in main.rs, rustc main.rs compiles both files and produces the executable.
Final Answer:
Compile lib.rs into a library, then compile main.rs linking the library, then run the executable -> Option A