From a programming language perspective, a metalanguage is a language used to make statements regarding statements made in another language, known as an object language. Metalanguage helps in describing the concepts, grammar and objects associated with a particular programming language.
Metalanguage is widely used in language design, analysers, compilers and theorem provers. It is also used in financial systems, bioinformatics and in other similar applications.
Metalanguage encourages functional programming and is often considered as an impure functional language. Metalanguage is mostly used to describe the grammar or any related terminology of the programming languages. There are different types of metalanguages such as ordered, nested and embedded metalanguages. An ordered metalanguage is similar to ordered logic, with each level having a greater abstraction degree. A nested metalanguage differs from an ordered metalanguage, with each level including the one below as well. An embedded metalanguage is a language embedded in the object language, which occurs naturally as well as formally.
Application software often consists of sets of instructions in clear and simple programming language. Metalanguage is capable of describing both semantic and syntactic properties of a language. With different computer programming languages available, many of these languages have unique sets of rules known as syntax; metalanguage can help in deciphering these rules.
BNF (Backus-Naur Form) is an example of a metalanguage which is widely used in describing the syntax of programming languages. XSL is also considered as a metalanguage which allows to define file encoding in the XML standard, that needs to be transformed or formatted. Lisp is another popular language that makes use of its own metalanguage.