High-level languages, e.g. Visual Basic, C++, and Python, are used to write programs that are independent of the computer architecture they will run on. To move from high-level source code to executable machine code requires the source code to be translated. There are two main ways in which this can happen: compilation or interpretation.