Thomas Sjoland quotes Frank Pfennig:
> Description
>
> Logic programming is a paradigm in which specifications and programs
> are expressed within the same language.
I don't understand this definition. Where's the logic? The above
definition holds for *any* language, as long as you're satisfied with
the language's programs as specifying what you want. This includes
Java, Algol, C, etc.
Does Pfennig assume that specifications are written in some logic?
The answer comes in the second part:
> Traditionally, this language
> has been Prolog, a first-order Horn logic augmented with some
> extra-logical features. Modern research in logic programming is
> concerned with languages that are simultaneously more expressive and
> purer than Prolog, including types and modes, higher-order features,
> constraints, linearity and state, concurrency, and modules.
Here, he states that Prolog is one possibility. But Prolog is very
far from being pure logic--it can easily be used as just another
imperative language with fancy pattern-matching features (and I suspect
that most programmers use it this way). If Prolog is satisfactory as a
specification language, then Pfennig seems to think that logic is not a
necessary part of a specification language. Or does Pfennig assume that
programmers will be very disciplined and almost never use Prolog's
extra-logical features?
Very strange these modernists! Can someone "deconstruct" this
definition for me?
Peter
-
Please send submissions to [email protected]
and administriva mail to [email protected].
The Mozart Oz web site is at http://www.mozart-oz.org/.