# Compilers There are two major ways languages can be expressed: - Compilers are a one-time translation of [high-level code](programming-basics.md) into [assembly code](programming-assembly.md). They're typically time-intensive at the beginning, then run quickly afterward. - Interpreters run the translation every time the code executes, meaning the software takes a longer time but doesn't require any preliminary installation. Each language's design will determine whether the code is compiled or interpreted after it has been created. - Compiled languages include C, C++, and Objective-C. - Interpreted languages include PHP and JavaScript. - Some languages use a combination of compilation and interpretation, such as Java, C#, and Python.