Install means to put a program on your computer. Setup can mean to configure the program, including various options, as in:
I'm going to set up Word so that the grammar checker is turned off.
I would say that when you are installing a program, you are also performing its initial setup, so either word could be used in that context. Put another way, you can set up a program after it's been installed, but you can't install a program after it's been set up.
By the way, there seems to be a slight logic flaw in the wording of your question. You said:
According to Wikipedia, setup directly means install on computer:
Installation (or setup) of a computer program...
I wouldn't say that the parenthetical "(or setup)" after the word "Installation" indicates that "setup directly means install". "Directly means" seems too strong an interpretaion for language. Instead, I would say:
According to Wikipedia, setup is another word for install:
Installation (or setup) of a computer program...
The difference is slight, but subtle. My wording implies that, when installing a program, you could also use the word setup – but setup may have other meanings as well. Your wording seems to imply that setup is more of an exact synonym, with no other meanings.
I'd diagram the difference like this:
Put another way, I wouldn't say:
The word right directly means correct.
because the word right, in addition to being the opposite of wrong, can also mean the opposite of left, or describe a 90-degree angle. That's why I'd say something more like:
The word right can be used to mean correct.
In this case, I would say:
The word setup can be used to mean install.
which is an accurate statement, and aligns with what you found in Wikipedia.
Your understanding is correct in context.
"By construction" means "by the way it is built". (Whether the "it" refers to the Rust programming language, or an individual Rust program, is unclear to me.) Most programming languages cannot or will not detect if a program contains a data race, so you are free to build programs with data races if you so choose. A skilled and careful programmer will avoid data races in their code, but this is an extra layer on top of what the language permits or does not permit. Rust, on the other hand, contains safeguards that prevent you from building data races at all; code that would allow data races is not valid. So Rust programs are indeed safer "from the beginning".
Even though data races effectively constitute undefined (or weakly defined) behavior for concurrent code, most "safe" languages (such as Java and Go) permit them, and they are a reliable source of concurrency bugs. In contrast, Rust's type system rules out data races at compile time.
Source: https://m-cacm.acm.org/magazines/2021/4/251364-safe-systems-programming-in-rust/fulltext
Best Answer
There's a domain-specific term
Refactor
which you may be looking for.http://www.dictionary.com/browse/refactoring
For example:-