A Note From Our Editor: “Computer Programming As An Assist To Apologetics” -- By: John Warwick Montgomery

Journal: Global Journal of Classical Theology
Volume: GJCT 18:2 (Nov 2021)
Article: A Note From Our Editor: “Computer Programming As An Assist To Apologetics”
Author: John Warwick Montgomery


A Note From Our Editor: “Computer Programming As An Assist To Apologetics”

John Warwick Montgomery

Readers of my material will have gathered that I do a bit of programming.1 Not very sophisticated programming, perhaps (Pascal, Turbo Pascal), but at least it’s with a compiler and not with a mere interpreter, and it’s not “object-oriented” (OOP) like the Micro:bit or Meccanoid kits. Owing to the rigorous syntax of Pascal, the programmer is forced to respect strict, logical reasoning.

In this brief introduction to the present issue, I shall offer an illustration of the potential benefits of programming to the apologetic task. We shall begin with an important point for program verification and then show its application to fundamental arguments in defense of biblical faith.

Program Verification

Two specialists write concerning the weakness inherent in the usual technique of verifying one’s computer programs:

Testing can only detect the presence of errors; it can never prove their absence. All we can say about the program is that for a wide range of carefully chosen data cases it has worked properly and, from this experience, we extrapolate to the statement that the program will work correctly under all circumstances, even for those test cases that were not explicitly tested. This extrapolation is really a “leap of faith” that is not based on either mathematical formalities or physical laws but on empirical observation and human judgment.2

An example of such limited testing is provided by oft-recurring advice to programmers to engage in “boundary testing.” Since it is impossible or impractical to test all possible values, one tests values at just before or just after the limits of the propositions in one’s program. “By a ‘boundary’ we mean a point at which the rule for determining the answer changes.”3 To be sure, this kind of testing does nothing to show that values other than those on the boundaries will provide valid results.

For this reason, a more sophisticated kind of verification has been suggested. It is characterized as “informal,” in that it does not necessarily reach the level of deductive certainty, but it is a substantial improvement as compared with the testing of individual values in a program. “The important thing . . . is not to make an assertion about the behavior of a single statement, but to study the behavior of entire programs.”4 A simple example of the applicability of this more rationally satisfying approach follows.

Assume that we were writ...

You must have a subscription and be logged in to read the entire article.
Click here to subscribe
visitor : : uid: ()