For what purpose are high-level programming languages used for
1. Give control over the hardware to execute tasks quickly
2. Provide code that controls the computers hardware
3. Translate low-level programming languages into machine code
4. Write programs for general applications