SlideShare a Scribd company logo
1 of 50
Download to read offline
Introduction to Rust
@dvigneshwer
Viki::About();
- Lives in Bengaluru, India
- Works at MuSigma Research
- Mozilla Representative in India
- Developing DeepRust Crate
- Author of Rust CookBook by Packt
- Mozilla TechSpeaker Program member
Agenda
1. Basic Terminologies
2. Common System programming bugs
3. Why Rust?
4. Intro to Rust
5. Type System
6. Ownership and Borrowing
7. Getting started with Rust community
8. ???
Basic Terminologies
● Low and high level language
● System programming
● Stack and heap
● Concurrency and parallelism
● Compile time and run time
● Type system
● Garbage collector
● Mutability
● Scope
Common System Programming Errors
● Segmentation Fault
● Buffer OverFlow
Segmentation Fault
● Dereference a null pointer
● Try to write to a portion of memory that was marked as read-only
Buffer OverFlow
● Writing and reading the past end of buffer
Sample Error Outputs
● Segmentation fault
● BufferOverFlow
Why do we need a new system programming
language?
● State or art programming language
● Solves a lot of common system programming bugs
● Cargo : Rust Package manager
● Improving your toolkit
● Self learning
● It's FUN ...
Rust
● System programming language
● Has great control like C/C++
● Safety and expressive like python
Best things about Rust
● Strong type system
○ Reduces a lot of common bugs
● Borrowing and Ownership
○ Memory safety
○ Freedom from data races
● Zero Cost abstraction
Installing Rust
# Ubuntu / MacOS
● Open your terminal (cntrl + Alt +T)
● curl -sSf https://static.rust-lang.org/rustup.sh | sh
Installing Rust
rustc --version
cargo --version
# Windows
● Go to https://win.rustup.rs/
○ This will download rustup-init.exe
● Double click and start the installation
Type System
Hello World
fn main() {
let greet = “world”;
println!("Hello {}!”, greet);
}
A bit complex example
fn avg(list: &[f64]) -> f64 {
let mut total = 0;
for el in list{
total += *el
}
total/list.len() as f64
}
HLL version
fn avg(list: &[f64]) -> f64 {
list.iter().sum::<f64>() / list.len() as f64
}
Parallel Version (Rayon)
fn avg(list: &[f64]) -> f64 {
list.par_iter().sum::<f64>() / list.len() as f64
}
Fold
fn avg(list: &[f64]) -> f64 {
list.par_iter().fold(0., |a,b| a + b) / list.len() as f64
}
Primitive Types
bool
let bool_val: bool = true;
println!("Bool value is {}", bool_val);
char
let x_char: char = 'a';
// Printing the character
println!("x char is {}", x_char);
i8/i16/i32/i64/isize
let num =10;
println!("Num is {}", num);
let age: i32 =40;
println!("Age is {}", age);
println!("Max i32 {}",i32::MAX);
println!("Max i32 {}",i32::MIN);
Other Primitive Types
● u8/u16/u32/u64/usize
● f32/f64
Tuples
// Declaring a tuple
let rand_tuple = ("Mozilla Science Lab", 2016);
let rand_tuple2 : (&str, i8) = ("Viki",4);
// tuple operations
println!(" Name : {}", rand_tuple2.0);
println!(" Lucky no : {}", rand_tuple2.1);
Arrays
let rand_array = [1,2,3]; // Defining an array
println!("random array {:?}",rand_array );
println!("random array 1st element {}",rand_array[0] ); // indexing starts with 0
println!("random array length {}",rand_array.len() );
println!("random array {:?}",&rand_array[1..3] ); // last two elements
String
let rand_string = "I love Mozilla Science <3"; // declaring a random string
println!("length of the string is {}",rand_string.len() ); // printing the length of the
string
let (first,second) = rand_string.split_at(7); // Splits in string
let count = rand_string.chars().count(); // Count using iterator count
Complex Data structures
struct
// define your custom user datatype
struct Circle {
x : f64,
radius : f64,
}
Rust “Class”
impl Circle {
// pub makes this function public which makes it accessible outsite the scope {}
pub fn get_x(&self) -> f64 {
self.x
}
}
Traits
● Interfaces
● Operator overloading
● Indicators of behaviour
● Bounds for generic
● Dynamic dispatch
Trait Sample
// create a functionality for the datatypes
trait HasArea {
fn area(&self) -> f64;
}
// implement area for circle
impl HasArea for Circle {
fn area(&self) -> f64 {
3.14 * (self.r *self.r)
}
}
Ownership
In Rust, every value has an “owning scope,” and passing or returning a value
means transferring ownership (“moving” it) to a new scope
Example 1
fn foo{
let v = vec![1,2,3];
let x = v;
println!(“{:?}”,v); // ERROR : use of moved value: “v”
}
Ownership - Ex 2
fn print(v : Vec<u32>) {
println!(“{:?}”, v);
}
fn make_vec() {
let v = vec![1,2,3];
print(v);
print(v); // ERROR : use of moved value: “v”
}
Ownership
Step 1.
Step 2. Step 3.
Aliasing
More than one pointer to the same memory
Ownership concepts avoids Aliasing
Borrowing
If you have access to a value in Rust, you can lend out that access to the
functions you call
Types of Borrowing
There is two type of borrowing in Rust, both the cases aliasing and mutation do
not happen simultaneously
● Shared Borrowing (&T)
● Mutable Borrow (&mut T)
&mut T
fn add_one(v: &mut Vec<u32> ) {
v.push(1)
}
fn foo() {
let mut v = Vec![1,2,3];
add_one(&mut v);
}
Rules of Borrowing
● Mutable borrows are exclusive
● Cannot outlive the object being borrowed
Cannot outlive the object being borrowed
fn foo{
let mut v = vec![1,2,3];
let borrow1 = &v;
let borrow2 = &v;
add_one(&mut v): // ERROR : cannot borrow ‘v’ as mutuable because
} it is also borrowed as immutable
Lifetimes
let outer;
{
let v = 1;
outer = &v; // ERROR: ‘v’ doesn’t live long
}
println!(“{}”, outer);
Getting started with Rust community
● Follow all the latest news at Reddit Channel
○ https://www.reddit.com/r/rust/
● Have doubts, post in
○ https://users.rust-lang.org
○ #rust IRC channel
● Want to publish a crate,
○ https://crates.io
● Follow @rustlang in twitter,
○ https://twitter.com/rustlang
● Subscribe to https://this-week-in-rust.org/ newsletter
Getting started with Rust community
● Create your rustaceans profile,
○ Fork https://github.com/nrc/rustaceans.org
○ Create a file in data directory with <github_id>.json
■ Ex: dvigneshwer.json
Adopt Rust today !!
References
● Segfault:
http://stackoverflow.com/questions/2346806/what-is-a-segmentation-fault
● BufferOverFlow:
http://stackoverflow.com/questions/574159/what-is-a-buffer-overflow-and-how
-do-i-cause-one
● Rust Website: https://www.rust-lang.org/en-US/
● Community Forum: https://users.rust-lang.org/
● Rust Book: https://doc.rust-lang.org/book/
● Unraveling Rust Design:
https://dvigneshwer.wordpress.com/2017/02/25/unraveling-rust-design/
● Rust Cookbook:
https://www.packtpub.com/application-development/rust-cookbook
Contribute
● https://github.com/MozillaTN/Rust
● https://github.com/dvigneshwer/deeprust
● https://github.com/dvigneshwer/Benchmarking_Rust
● https://github.com/servo
Thank You
● Tweet at #RustIndia
● Join RustIndia Telegram group

More Related Content

What's hot

Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsyann_s
 
Introduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System LanguageIntroduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System Language安齊 劉
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming languagerobin_sy
 
Embedded Rust on IoT devices
Embedded Rust on IoT devicesEmbedded Rust on IoT devices
Embedded Rust on IoT devicesLars Gregori
 
Introduction to Rust language programming
Introduction to Rust language programmingIntroduction to Rust language programming
Introduction to Rust language programmingRodolfo Finochietti
 
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...Edureka!
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrencyjgrahamc
 
Golang 101
Golang 101Golang 101
Golang 101宇 傅
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
semaphore & mutex.pdf
semaphore & mutex.pdfsemaphore & mutex.pdf
semaphore & mutex.pdfAdrian Huang
 
Goroutines and Channels in practice
Goroutines and Channels in practiceGoroutines and Channels in practice
Goroutines and Channels in practiceGuilherme Garnier
 
Add an interactive command line to your C++ application
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ applicationDaniele Pallastrelli
 

What's hot (20)

Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractions
 
Introduction to Rust
Introduction to RustIntroduction to Rust
Introduction to Rust
 
Introduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System LanguageIntroduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System Language
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming language
 
Rust Primer
Rust PrimerRust Primer
Rust Primer
 
Rust-lang
Rust-langRust-lang
Rust-lang
 
Embedded Rust on IoT devices
Embedded Rust on IoT devicesEmbedded Rust on IoT devices
Embedded Rust on IoT devices
 
Introduction to Rust language programming
Introduction to Rust language programmingIntroduction to Rust language programming
Introduction to Rust language programming
 
Rust programming-language
Rust programming-languageRust programming-language
Rust programming-language
 
The Rust Programming Language
The Rust Programming LanguageThe Rust Programming Language
The Rust Programming Language
 
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
Rust Tutorial | Rust Programming Language Tutorial For Beginners | Rust Train...
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrency
 
Golang 101
Golang 101Golang 101
Golang 101
 
Rust
RustRust
Rust
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
semaphore & mutex.pdf
semaphore & mutex.pdfsemaphore & mutex.pdf
semaphore & mutex.pdf
 
Golang
GolangGolang
Golang
 
Rust
RustRust
Rust
 
Goroutines and Channels in practice
Goroutines and Channels in practiceGoroutines and Channels in practice
Goroutines and Channels in practice
 
Add an interactive command line to your C++ application
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ application
 

Similar to Deep drive into rust programming language

golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptxGuy Komari
 
The Swift Compiler and Standard Library
The Swift Compiler and Standard LibraryThe Swift Compiler and Standard Library
The Swift Compiler and Standard LibrarySantosh Rajan
 
C programming language tutorial
C programming language tutorial C programming language tutorial
C programming language tutorial javaTpoint s
 
Rust All Hands Winter 2011
Rust All Hands Winter 2011Rust All Hands Winter 2011
Rust All Hands Winter 2011Patrick Walton
 
2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Wsloffenauer
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdfSpam92
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In PythonMarwan Osman
 
Briefly Rust - Daniele Esposti - Codemotion Rome 2017
Briefly Rust - Daniele Esposti - Codemotion Rome 2017Briefly Rust - Daniele Esposti - Codemotion Rome 2017
Briefly Rust - Daniele Esposti - Codemotion Rome 2017Codemotion
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Arthur Puthin
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 

Similar to Deep drive into rust programming language (20)

golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptx
 
The Swift Compiler and Standard Library
The Swift Compiler and Standard LibraryThe Swift Compiler and Standard Library
The Swift Compiler and Standard Library
 
Briefly Rust
Briefly RustBriefly Rust
Briefly Rust
 
C programming language tutorial
C programming language tutorial C programming language tutorial
C programming language tutorial
 
Let's Go-lang
Let's Go-langLet's Go-lang
Let's Go-lang
 
Rust All Hands Winter 2011
Rust All Hands Winter 2011Rust All Hands Winter 2011
Rust All Hands Winter 2011
 
2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdf
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
 
Introduction to Rust
Introduction to RustIntroduction to Rust
Introduction to Rust
 
Briefly Rust - Daniele Esposti - Codemotion Rome 2017
Briefly Rust - Daniele Esposti - Codemotion Rome 2017Briefly Rust - Daniele Esposti - Codemotion Rome 2017
Briefly Rust - Daniele Esposti - Codemotion Rome 2017
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 
name name2 n
name name2 nname name2 n
name name2 n
 
test ppt
test ppttest ppt
test ppt
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt21
ppt21ppt21
ppt21
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt17
ppt17ppt17
ppt17
 

Recently uploaded

Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 

Recently uploaded (20)

Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 

Deep drive into rust programming language