Clarification of Answer by
aht-ga
on
13 Apr 2004 13:46 PDT
Additional definitions, that you will hopefully find more precise:
-----------------------------
From Wikipedia, as suggested by stephenvakil-ga in the comments section, we have:
"Rule-based languages instantiate rules when activated by conditions
in a set of data. Of all possible activations, some set will be
selected and the statements belonging to those rules will be
executed."
- http://en.wikipedia.org/wiki/Categorical_list_of_programming_languages
"Procedural languages are based upon the concept of the unit and scope
(the data viewing range of an executable code statement). A procedural
program is composed of one or more units or modules--either user coded
or provided in a code library; each module is composed of one or more
procedures, also called a function, routine, subroutine, or method,
depending on the programming language."
- http://en.wikipedia.org/wiki/Categorical_list_of_programming_languages
=============================
Other definitions include:
Rule-based programming:
=======================
-----------------------------
"The rule-based system itself uses a simple technique: It starts with
a rule-base, which contains all of the appropriate knowledge encoded
into If-Then rules, and a working memory, which may or may not
initially contain any data, assertions or initially known information.
The system examines all the rule conditions (IF) and determines a
subset, the conflict set, of the rules whose conditions are satisfied
based on the working memory. Of this conflict set, one of those rules
is triggered (fired). Which one is chosen is based on a conflict
resolution strategy. When the rule is fired, any actions specified in
its THEN clause are carried out. These actions can modify the working
memory, the rule-base itself, or do just about anything else the
system programmer decides to include. This loop of firing rules and
performing actions continues until one of two conditions are met:
there are no more rules whose conditions are satisfied or a rule is
fired whose action specifies the program should terminate."
- http://ai-depot.com/Tutorial/RuleBased.html
-----------------------------
"Rule-Based Systems
Instead of representing knowledge in a relatively declarative, static
way (as a bunch of things that are true), rule-based system represent
knowledge in terms of a bunch of rules that tell you what you should
do or what you could conclude in different situations. A rule-based
system consists of a bunch of IF-THEN rules, a bunch of facts, and
some interpreter controlling the application of the rules, given the
facts."
- http://www.cee.hw.ac.uk/~alison/ai3notes/section2_4_4.html
-----------------------------
"Rule-based systems differ from standard procedural or object-oriented
programs in that there is no clear order in which code executes.
Instead, the knowledge of the expert is captured in a set of rules,
each of which encodes a small piece of the expert's knowledge. Each
rule has a left hand side and a ride hand side. The left hand side
contains information about certain facts and objects which must be
true in order for the rule to potentially fire (that is, execute). Any
rules whose left hand sides match in this manner at a given time are
placed on an agenda. One of the rules on the agenda is picked (there
is no way of predicting which one), and its right hand side is
executed, and then it is removed from the agenda. The agenda is then
updated (generally using a special algorithm called the Rete
algorithm), and a new rules is picked to execute. This continues until
there are no more rules on the agenda."
- http://www.ramalila.net/Adventures/AI/rule_based_systems.html
-----------------------------
"Rule-based programming is one of the most commonly used techniques
for developing expert systems. In this programming paradigm, rules are
used to represent heuristics, or "rules of thumb," which specify a set
of actions to be performed for a given situation. A rule is composed
of an if portion and a then portion. The if portion of a rule is a
series of patterns which specify the facts (or data) which cause the
rule to be applicable. The process of matching facts to patterns is
called pattern matching. The expert system tool provides a mechanism,
called the inference engine, which automatically matches facts against
patterns and determines which rules are applicable. The if portion of
a rule can actually be thought of as the whenever portion of a rule
since pattern matching always occurs whenever changes are made to
facts. The then portion of a rule is the set of actions to be executed
when the rule is applicable. The actions of applicable rules are
executed when the inference engine is instructed to begin execution.
The inference engine selects a rule and then the actions of the
selected rule are executed (which may affect the list of applicable
rules by adding or removing facts). The inference engine then selects
another rule and executes its actions. This process continues until no
applicable rules remain."
- http://www.ghg.net/clips/WhatIsCLIPS.html
=============================
Procedural Programming:
=======================
-----------------------------
"Procedural programming is a method (a programming paradigm) of
computer programming based upon the concept of the unit and scope (the
data viewing range of an executable code statement). A procedural
program is composed of one or more units or modules--either user coded
or provided in a code library ; each module is composed of one or more
procedures, also called a function, routine, subroutine, or method,
depending on programming language. It is possible for a procedural
program to have multiple levels or scopes, with procedures defined
inside other procedures. Each scope can contain variables which cannot
be seen in outer scopes.
Procedural programming offers many benefits over simple sequential
programming: Procedural programming code is easier to read and more
maintainable; Procedural code is more flexible; Procedural programming
allows for the easier practice of good program design."
- http://encyclopedia.thefreedictionary.com/Procedural%20programming
-----------------------------
"procedural programming
Programming in which programs are written as lists of instructions for
the computer to obey in sequence. It closely matches the computer's
own sequential operation."
- http://www.tiscali.co.uk/reference/dictionaries/computers/data/m0044551.html
-----------------------------
"Declarative vs Procedural Programming
Procedural programming requires that the programmer tell the computer
what to do. That is, _how_ to get the output for the range of required
inputs. The programmer must know an appropriate algorithm."
- http://education.leeds.ac.uk/~paul/prologbook/node11.html
-----------------------------
"A procedural program is written as a list of instructions, telling
the computer, step-by-step, what to do: Open a file, read a number,
multiply by 4, display something. Program units include the main or
program block, subroutines, functions, procedures; file scoping;
includes/modules; libraries."
- http://www.colorado.edu/its/scico/Info/details/funcproc.html
-----------------------------
(for interest only: not a typical online reference source)
"Procedural Programming Analogy
I have always found it somewhat difficult to really describe to
non-programming people the difference between object-oriented and
procedural programming. Specifically, I never thought of a clear way
to explain the disadvantage of procedural code. In An Introduction to
Programming and Object Oriented Design Using Java by Jaime Niņo, they
use the analogy of a Rube Goldberg device. Each component is very
dependent on the next, and replacing one with something else without
altering the other components is nearly impossible. And that's
basically the major disadvantage to procedural programming. It's more
difficult to alter a piece of code without needing to rewrite other
parts."
- http://fallenearth.org/blogs/caiuschen/archives/2003/09/30/procedural_programming_analogy/index.php
=============================
Do these help you more? Perhaps if you can clarify for me who the
intended audience is, I can try to refine the results to match. For
fundamental terminology such as this, it is surprising how few good
definitions exist online, it is almost as if the website authors just
assume that "everybody knows what these mean". It would almost be
easier for me to write my own definitions for you, but I respect your
request that the sources be from online sources, textbooks, or
academic sources.
Regards,
aht-ga
Google Answers Researcher