|This article needs additional citations for verification. (July 2009) (Learn how and when to remove this template message)|
An object language is a language which is the "object" of study in various fields including logic, linguistics, mathematics, and theoretical computer science. The language being used to talk about an object language is called a metalanguage. An object language may be a formal or natural language.
Forms of object language
Mathematical logic and linguistics make use of metalanguages, which are languages for describing the nature of other languages. In mathematical logic, the object language is usually a formal language. The language which a metalanguage is used to describe is the object language. It is called that because that language is the object under discussion using the metalanguage.
There are two ways the term object language can be used in computing: a language which is the object of formal specification, and a language which is the object (goal) of a compiler or interpreter.
Computer languages are object languages of the metalanguage in which their specification is written. In computer science this is referred to as the specification language. Backus-Naur Form was one of the earliest used specification languages.
When compilers are written using systems like lex and yacc, the rules the programmer writes look much like a formal specification, but it is considered an implementation instead. Many programming language implementations are not strictly the same as their specifications, adding features or making implementation-dependent design decisions.
At their basic level, computers act on what is given to them through a limited set of instructions which are understood by their CPUs. In the earliest computers, that meant programmers sometimes typed 1's and 0's to program. Since this requires considerable programmer training (and patience) to create instructions, later computer languages have gone to great lengths to simplify the programmer's task. For example, a high level programming language may allow a programmer to assign a value to a variable without specifying a memory location or a CPU instruction.
In this context, the high level programming language is the source language, which is then translated by a compiler into object code that the CPU can read directly. This object code is the object language, and varies depending on what CPU is being given the instructions.
Object language in this context means something akin to "the object of what the programmer is trying to achieve". If the source language and object languages are viewed as formal (logical) languages, what the compiler does is interpret the source into the target language (this is different from the computer science use of interpreted language meaning one which is not compiled).
Object language in this context is synonymous with target language. The object language of a translation most often is a machine language, but can be some other kind of language, such as assembly language.
Because the object language of compilation has usually been machine language, the term object file has come to mean a file containing machine instructions, and sometimes the translated program itself is simply called an object.
Object language should also not be confused with object-oriented language, which is a type of computer programming language which changes the programmer's environment into convenient objects which can be used in something similar to a drag-and-drop fashion.
Expressions in an object language
A symbol is an idea, abstraction or concept, tokens of which may be marks or a configuration of marks which form a particular pattern. Although the term "symbol" in common use refers at some times to the idea being symbolized, and at other times to the marks on a piece of paper or chalkboard which are being used to express that idea; in the formal languages studied in mathematics and logic, the term "symbol" refers to the idea, and the marks are considered to be a token instance of the symbol.
In the formal languages used in mathematical logic and computer science, a well-formed formula or simply formula is an idea, abstraction or concept which is expressed using the symbols and formation rules (also called the formal grammar) of a particular formal language. To say that a string of symbols is a well-formed formula with respect to a given formal grammar is equivalent to saying that belongs to the language generated by .
A formal system is a formal language together with a deductive system which consists of a set of inference rules and/or axioms. A formal system is used to derive one expression from one or more other expressions previously expressed in the system. These expressions are called axioms, in the case of those previously supposed to be true, or theorems, in the case of those derived. A formal system may be formulated and studied for its intrinsic properties, or it may be intended as a description (i.e. a model) of external phenomena.
A formal proof or derivation is a finite sequence of propositions (called well-formed formulas in the case of a formal language) each of which is an axiom or follows from the preceding sentences in the sequence by a rule of inference. The last sentence in the sequence is a theorem of a formal system. The concept of natural deduction is a generalization of the concept of proof.
- The Cambridge Dictionary of Philosophy, deduction