One common distinction between a scripting language and a language used for writing entire applications is that, while a programming language is typically compiled first before being allowed to run, scripting languages are interpreted from source code or bytecode one command at a time. Scripting languages are not compiled to machine code by user like other programming languages. They are high level code which are interpreted by another program dynamically or at runtime. Scripts are set of instructions either to the web browser (client side)which are embedded in HTML, or to the server side that interface to databases or other data stores on the server. A scripting language can be viewed as a domain-specific language for a particular environment; in the case of scripting an application, this is also known as an extension language. Scripting languages are also sometimes referred to as very high-level programming languages, as they operate at a high level of abstraction, or as control languages, particularly for job control languages on mainframes. Scripting languages are programming languages that don’t require an explicit compilation step.