Logic based languages such as Prolog support terms which are either constants, variables, or structures. A constant is either a atom or an integer. Instantiation of variables only occurs is the resolution process. Data objects in Prolog also include built in support for list structures. A variables is any string of letters, digits, and underscores that begins with an uppercase letter.
Structures represent the atomic propositions of predicate calculus.
Structures are the means of specifying facts in Prolog. The control flow mechanism are similar to those of mathematical functions. Loops and other such iterative constructs are usually required to utilize some sort of method of recursion. Logic Based languages do not utilize sequence control in the manner that people have classically come to expect from programming languages like simple procedural languages or block structured procedural languages. Sequence and execution control is non imperative in nature.