Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as Alonzo Church , logical inference can be used in programming. This view was further developed by John McCarthy‘s  advice-taker proposal to use forward chaining under the control of logical propositions. The Planner programming language [1969, 1971] used both forward chaining (invoked by assertions) and backward chaining (invoked by goals). However, Kowalski  restricts logic programming to backwards chaining in the form:
G if G1 and … and Gn
that treats the implications as goal-reduction procedures:
to show/solve G, show/solve G1 and … and Gn.
For example, it treats the implication:
The drive cab is alerted if an alarm signal button is pressed.
as a procedure that from the goal “the drive cab is alerted” generates the subgoal “an alarm signal button is pressed.” Note that this is consistent with the BHK interpretation of constructive logic, where implication would be interpreted as a solution of problem G given solutions of G1 … Gn. The defining feature of logic programming is that sets of formulas can be regarded as programs and proof search can be given a computational meaning. In some approaches the underlying logic is restricted, e.g., Horn clauses or Hereditary Harrop formulas. See D. Miller et al., 1991. As in the purely declarative case, the programmer is responsible for ensuring the truth of programs. But since automated proof search is generally infeasible, logic programming as commonly understood also relies on the programmer to ensure that inferences are generated efficiently (see →problem solving). In many cases, to achieve efficiency, one needs to be aware of and to exploit the problem-solving behavior of the theorem-prover. In this respect, logic programming is comparable to conventional imperative programming; using programs to control the behavior of a program executor. However, unlike conventional imperative programs, which have only a procedural interpretation, logic programs also have a declarative, logical interpretation, which helps to ensure their correctness. Moreover, such programs, being declarative, are at a higher conceptual level than purely imperative programs; and their program executors, being theorem-provers, operate at a higher conceptual level than conventional compilers and interpreters.
Procedural programming is imperative programming in which the program is built from one or more procedures (also known as subroutines or functions). The terms are often used as synonyms, but the use of procedures has a dramatic effect on how imperative programs appear and how they are constructed. Heavily procedural programming, in which state changes are localized to procedures or restricted to explicit arguments and returns from procedures, is known as structured programming. From the 1960s onwards, structured programming and modular programming in general, have been promoted as techniques to improve the maintainability and overall quality of imperative programs. Object-oriented programming extends this approach. Procedural programming could be considered as a step towards declarative programming. A programmer can often tell, simply by looking at the names, arguments and return types of procedures (and related comments), what a particular procedure is supposed to do – without necessarily looking at the detail of how the procedure achieves its result. At the same time, a complete program is still imperative since it ‘fixes’ the statements to be executed and their order of execution to a large extent. Declarative programming is a non-imperative style of programming in which programs describe the desired results of the program, without explicitly listing command or steps that need to be carried out to achieve the results. Functional and logical programming languages are characterized by a declarative programming style. In a pure functional language, such as Haskell, all functions are without side effects, and state changes are only represented as functions that transform the state. Although pure functional languages are non-imperative, they often provide a facility for describing the effect of a function as a series of steps. Other functional languages, such as Lisp, OCaml and Erlang, support a mixture of procedural and functional programming. In logical programming languages, programs consist of logical statements, and the program executes by searching for proofs of the statements. As in functional programming languages, some logical programming languages such as Prolog, and database query languages such as SQL, while declarative in principle, also support a procedural style of programming. Many imperative programming languages (such as Fortran, BASIC and C) are abstractions of assembly language.
The future interface to logical programming can be intergrated to the common english language, even the formulation of mathematical assembly language can be simplified, like the complexity of different languages, all can be interconnected, interpreted and translated. Logical programming will be first interpreted in the english language, then translated to other language like chinese due to it’s difficult nouns, where the use of voice technology will connect everything together. You will get simplicity where intelligence will be intergrated for processing for all languages. In the future, intelligence programming will be the interface for all languages, where voice technology will be the UI. Someone will invent intelligence programming very soon. The Tools of Babel will intergrate all languages of the world, where you speak one language it will be interpreted on the fly, you can also use it to command any user interface. God has given me a glimpse into the future, and I have now found all my missing links. The key to unlocking this is found in the speech analysis software, where if you have the massive codes of analysis, you will find the patterns to link it to the new invention of intelligent programming. The next lifetime in the Perfect Economy, mankind will communicate using thought waves, not voice anymore, by then, we are conquerors of sickness and death. Some will directly get eternal life, or your next generation. I am only paving the way, when Jesus comes everything will then be perfect again. – Contributed by Oogle.
IT expert with more than 20 years experience in Multiple OS, Security, Data & Internet ,
Interests include AI and Big Data, Internet and multimedia. An experienced Real Estate agent, Insurance agent, and a Futures trader. I am capable of finding any answers in the world you want as long as there are reports available online for me to do my own research to bring you closest to all the unsolved mysteries in this world, because I can find all the paths to the Truth, and what the Future holds. All I need is to observe, test and probe to research on anything I want, what you need to do will take months to achieve, all I need is a few hours.
View all posts by Gilbert Tan TS