Question: I deleted my program, actually C++ code, and am re-writing it in a different way.

Especially, I am updating the engine of my code.

What would be the best word or verb to express what I am doing?

* remake
* renovate
* rebuild
* redesign
* reconstruct

Answer: 
There's a domain-specific term `Refactor` which you may be looking for.

<http://www.dictionary.com/browse/refactoring>

> 
> Improving a computer program by reorganising its internal structure without altering its external behaviour.
> 
> 
> 

For example:-

> 
> "The original program grew out of a messy prototype, so I spent some time refactoring and now it is easier to maintain."
> 
> 
>
As per me, **rebuild** will be the best verb to use, and **rewrote** itself seems like a good option.

> 
> I had to **rebuild** the C++ program I was working on. 
> 
> 
> 

Or, 

> 
> I **rewrote** the C++ program code from scratch. 
> 
> 
> 

Remake also sound correct but somehow doesn't sound as good as rebuild to me, in this case. 

> 
> I remade the C++ program. 
> 
> 
> 

Renovated and redesigned do not seem appropriate to me. 

Renovate is more popularly used for **physical** buildings.

For example,

> 
> I had to **renovate** my house after the earthquake. 
> 
> 
> 

Redesign seem appropriate when the 'design' of something is being considered, which is not the case here.

> 
> I **redesigned** the software because it was not looking very user-friendly. 
> 
> 
>