A prelude to Intelligent programming

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 [1932], logical inference can be used in programming. This view was further developed by John McCarthy‘s [1958] 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).[1]
However, Kowalski [2] 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 G1Gn.
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.

In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state. In much the same way that imperative mood in natural languages expresses commands to take action, imperative programs define sequences of commands for the computer to perform.
The term is used in opposition to declarative programming, which expresses what the program should accomplish without prescribing how to do it in terms of sequences of actions to be taken. Functional and logical programming are examples of a more declarative approach.

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.[citation needed]
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.


Author: Gilbert Tan TS

IT expert with more than 20 years experience in Apple, Andriod and Windows PC. Interests include hardware and software, Internet and multimedia. An experienced Real Estate agent, Insurance agent, and a Futures trader.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s