AboutPhilip Lafeber Expertise I have been specialising in knowledge analysis and modelling. I have an interest in the way models of programs, architectures, business processes and the like are properly made and analysed. What`s meant by `properly` depends on the goal you`re trying to achieve. The analysis of this goal and the way it can best be realised is something you might want to ask me about.
Experience
Past/Present clients University of Amsterdam, Bolesian, Canon europa, Solveware, NetlinQ
Please also explain how can we compare the above with Foxpro, Standard ML, Fortran and Pascal.
Thank you,
Shumais (from the Maldives)
brother@avasmail.com.mv
Answer Functional programming languages are the most commonly known. They have been in use in computers since the beginning. Using punch cards, people used to feed lines of code one by one that would be processed one by one.
In software programs, it is easier to repeat parts of the code. Doing this in a structured way, one creates a procedural program. It is still functional, in that the next line of code is always followed by the previous one, but one can think in blocks of code, not unlike mini-versions of another program.
A logic or declarative programming language is a method to describe what is logical within the environment that you're working in, to declare which statements hold truth and which don't. There is normally no meaning to the order of the statements, though this can still be used to describe a sense of priority. For instance, one can describe "Bald eagles are endangered" and "Eagles can be hunted" but since the bald eagles are rare, it's more efficient to process the latter rule first in determining animals one can hunt, leaving the remains to the first rule.
A logic program will always have to be interpreted to derive a program that can process these rules. Such a program, on a lower level, will in actuality be a functional program, due to the nature of a computer in our time. A processor will have to process instructions one by one, again in a functional way. But the result of such a program is not so much a changed state of the world (a game played, a document written, a disk being deleted) but a changed state in teh knowledge about the world. The program itself can change into an extended version of itself, now incorporating the rule "Bald eagles can not be hunted." Now, the user of the program need only ask the computer running this program "What can I hunt today?" and the result could be something like "Deer, phaesants, eagles (except bald eagles) and gremlins."
An object oriented language or OO language makes use of a procedurally structured language to describe obejcts, their attributes and their functions. Describing only what exists in the world (objects), what it looks like (the attributes) and what it can do (functions), it is much easier to create programs that represent portions of the world. For instance, one can create a program that should do exactly what a doctor does; diagnosing and curing patients. By describing the doctor (a diagnonis engine with a set of rules that can inspect and assess the physical state of a patient), a patient (a person or animal with its biological functions and disease symptoms) and all kinds of diseases (names with their distinctive look and ways to infest a natural body), one can create a program that is likely to function correctly because it looks exactly like it should in the real world.
It is also easier to replace parts of the program with better functioning parts, makin it more easy to maintain programs. Especially so with large systems in which it would normally be very hard to assess whether some change would create a change in behaviour that could ruin the function of the whole.
The only thing that I can say about the languages mentioned in your question is that Pascal is a typical functional (and procedural) language. Delphi is developed out of Pascal and is a OO language that uses Pascal to describe the functions of the objects.
You might want to look up the particualrs about the other languages at www.whatis.com.