The beginning of wisdom is the definition of terms.
- Socrates, attributed by Plato
This page owes its origin to my own confusion when I started comparing VBScript, VBA, VB5/6, and VB.NET.
Focusing on VBScript and VB in particular, as I became more sophisticated in my understanding of hosting models and external access techniques, I realize that our loose desciptions of what a "language" actually imply that they are all the same language, and our conventional image of scripting and extension languages as always being something different from compiled languages was apparently the primary reason for thinking of them as different languages.
One thing became apparent early on: lots of people talk about language, but none of them can define it.
A formal language in which computer programs are written. The definition of a particular language consists of both syntax (how the various symbols of the language may be combined) and semantics (the meaning of the language constructs).
If we look up syntax and semantics, we see:
syntax
The structure of strings in some language. A language's syntax is described by a grammar. For example, the syntax of a binary number could be expressed as
binary_number = bit [ binary_number ] bit = "0" | "1"meaning that a binary number is a bit optionally followed by a binary number and a bit is a literal zero or one digit.
The meaning of the language is given by its semantics.
See also abstract syntax, concrete syntax.
semantics
The meaning of a string in some language, as opposed to syntax which describes how symbols may be combined independent of their meaning.
The semantics of a programming language is a function from programs to answers. A program is a closed term and, in practical languages, an answer is a member of the syntactic category of values. The two main kinds are denotational semantics and operational semantics.
Other