正在加载图片...
between the program(spread out in text space)and the process(spread out in time)as trivial as possible Let us now consider how we can characterize the progress of a process.If the program text is a pure concatenation of assignment statements it is sufficient to point in the program text to a point between two successive action descriptions.(In the absence of go to statements I can permit myself the syntactic ambiguity in the last three words of the previous sentence:if we parse them as "successive (action descriptions)"we mean successive in text space;if we parse as "(successive action)descriptions"we mean successive in time.)Let us call such a pointer to a suitable place in the text a"textual index." When we include conditional clauses(if B then 4),alternative clauses(if B then 41 else 42),choice clauses as introduced by C.A.R.Hoare (case[i]of (41,42,,An)),or conditional expressions as introduced by J.McCarthy (B1 -E1,B2->E2,,Bn->En), the fact remains that the progress of the process remains characterized by a single textual index. As soon as we include in our language procedures we must admit that a single textual index is no longer sufficient.In the case that a textual index points to the interior of a procedure body the dynamic progress is only characterized when we also give to which call of the procedure we refer.With the inclusion of procedures we can characterize the progress of the process via a sequence of textual indices,the length of this sequence being equal to the dynamic depth of procedure calling. Let us now consider repetition clauses(like,while B repeat 4 or repeat A until B). Logically speaking,such clauses are now superfluous,because we can express repetition with the aid of recursive procedures.For reasons of realism I don't wish to exclude them: on the one hand,repetition clauses can be implemented quite comfortably with present day finite equipment;on the other hand,the reasoning pattern known as"induction" makes us well equipped to retain our intellectual grasp on the processes generated by repetition clauses.With the inclusion of the repetition clauses textual indices are no longer sufficient to describe the dynamic progress of the process.With each entry into a repetition clause,however,we can associate a so-called "dynamic index,"inexorably counting the ordinal number of the corresponding current repetition.As repetition clauses (just as procedure calls)may be applied nestedly,we find that now the progress of the process can always be uniquely characterized by a(mixed)sequence of textual and/or dynamic indices. The main point is that the values of these indices are outside programmer's control;they are generated (either by the write-up of his program or by the dynamic evolution of the process)whether he wishes or not.They provide independent coordinates in which to describe the progress of the process. Why do we need such independent coordinates?The reason is-and this seems to be inherent to sequential processes-that we can interpret the value of a variable only withbetween the program (spread out in text space) and the process (spread out in time) as trivial as possible. Let us now consider how we can characterize the progress of a process. If the program text is a pure concatenation of assignment statements it is sufficient to point in the program text to a point between two successive action descriptions. (In the absence of go to statements I can permit myself the syntactic ambiguity in the last three words of the previous sentence: if we parse them as "successive (action descriptions)" we mean successive in text space; if we parse as "(successive action) descriptions" we mean successive in time.) Let us call such a pointer to a suitable place in the text a "textual index." When we include conditional clauses (if B then A), alternative clauses (if B then A1 else A2), choice clauses as introduced by C. A. R. Hoare (case[i] of (A1, A2,···, An)),or conditional expressions as introduced by J. McCarthy (B1 -> E1, B2 -> E2, ···, Bn -> En), the fact remains that the progress of the process remains characterized by a single textual index. As soon as we include in our language procedures we must admit that a single textual index is no longer sufficient. In the case that a textual index points to the interior of a procedure body the dynamic progress is only characterized when we also give to which call of the procedure we refer. With the inclusion of procedures we can characterize the progress of the process via a sequence of textual indices, the length of this sequence being equal to the dynamic depth of procedure calling. Let us now consider repetition clauses (like, while B repeat A or repeat A until B). Logically speaking, such clauses are now superfluous, because we can express repetition with the aid of recursive procedures. For reasons of realism I don't wish to exclude them: on the one hand, repetition clauses can be implemented quite comfortably with present day finite equipment; on the other hand, the reasoning pattern known as "induction" makes us well equipped to retain our intellectual grasp on the processes generated by repetition clauses. With the inclusion of the repetition clauses textual indices are no longer sufficient to describe the dynamic progress of the process. With each entry into a repetition clause, however, we can associate a so-called "dynamic index," inexorably counting the ordinal number of the corresponding current repetition. As repetition clauses (just as procedure calls) may be applied nestedly, we find that now the progress of the process can always be uniquely characterized by a (mixed) sequence of textual and/or dynamic indices. The main point is that the values of these indices are outside programmer's control; they are generated (either by the write-up of his program or by the dynamic evolution of the process) whether he wishes or not. They provide independent coordinates in which to describe the progress of the process. Why do we need such independent coordinates? The reason is - and this seems to be inherent to sequential processes - that we can interpret the value of a variable only with
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有