ArticlePDF Available

"Panini-Backus Form" suggested.

Format Effectors in ISO7 and ASCII
Backspace is awkward to deal with. But compound characters
do not necessarily require backspacing. One way is to define cer-
tain graphics as nonspaeing [see Barron, D. W. Comput. J. 7
(1965), 281]. Another way is to have a format effector which in-
hibits the spacing forward when the following graphic is printed.
Thus to underline an x one has nospaee, x, underline. This is nmre
general than having speeiM nonspaeing graphics, and requires no
more characters than using backspace.
3"he advantages of using nospaee instead of backspace are:
1. It gives prior warning of a compound symbol.
2. It avoids the necessity for line reconstruction.
3. It entails less nmvement on printers, and consequently is
probably mechanically simpler.
I submit therefore that in ISO7 and in any revision of ASCII, a
place be found for the format effector "nospaee."
I would point out that character-by-character printers Mmost
inevitably have a nospaee mechanism, which is automatically en-
gaged when the printing head reaches the right-hand margin. My
proposal amounts to having a control character which activates
this mechanism. As an alternative to having a single "nospace"
effective for just the next graphic, there could be two format, ef-
fectors: "stop-spacing" and "start-spacing." Use of these might
be mechanically easier, and more compact for overprinted se-
quences of four or nmre graphics, but it is less suited for the most
common ease of two overprinted graphics.
My basic point is that if ISO7 contains "backspace" only, then
the opportunity is lost for overprinting graphics on devices which
do not have back-space mechanisms, but do have no-space mecha-
nisms. 1. C. PYLE
Atomic Energy Research Establishment
Harwell, Dideot, Berks., England
"Pfinini-Backus Form" Suggested
Knuth, in a recent Letter to the Editor of CACM [1], makes the
point that the metasyntactic notation used in, e.g., the ALGOi~ 60
report [2] should be renamed. In particular, he observes the well-
acceded fact that the so-cMled Backus Normal Form is, indeed,
not a normal form in any sense. The purpose of this letter is to
observe that Backus was not the first to use the form with which
his name has become associated, although he did, indeed, discover
it independently.
Dr. Alexander Wilhelmy has called to my attention [3] a work
by PSn. ini [4]. PK.nini was a scholar who flourished between 400
B.C. and 200 B.C. ; perhaps his most significant work was the com-
pilation of a grammar of Sanskrit. In order to describe the (rather
complicated) rules of grammar, he invented a notation which is
equivalent in its power to that of Backus, and has many similar
properties: given the use to which the notation was put, it is pos-
sible to identify structures equivMent to the Backus "[" and to
the use of the meta-brackets "<" and ">" enclosing suggestive
names. P~nini avoided the necessity for the character "::=" by
writing the recta-result on the right rather than the left (see, e.g.,
[5] and [6] for a similar notation).
Since it is traditional in professional circles to give credit
where credit is due, and since there is clear evidence that PKnini
was the earlier independent inventor of the notation, may I sug-
gest the name "P~xfini-Baekus Form" as being a more desirable
one? Not only does it give due credit, but it also avoids the misuse
of the word "Normal."
1. KNUTIt, ])ONALD E. Backus normal form vs. Backus Naur
form. Comm. ACM 7, 12 (Dee. 1964), 735-736.
2. NAUR, P. [ED.]. Revised report on the algorithmic language
ALGOL 60. Comm. ACM 6, 1 (Jan. 1963), 1-17.
3. WILHELMY, A. Private eommuuication dated 5 November
pranitab a~tadhySyisfitrapS~thab vSrtikapS~thasamalafhkrtat ).
Bombay, India, 1954 (See also [7], supplied by Dr. Donald
Knuth.) [K~vya, N.R.A. (ED.) PS.nini--Reading of Rules in
Eight Chapters, Embellished by His Pupils].
5. IRONS, E. T. Maintenance manual for PSYCO--part one.
Institute for Defense Analyses, Princeton, N.J.
P. Z. A Syntax-Oriented Translator. Academic
Press, New York, 1966.
7. PKNIN[. The AshtddhydyL Edited and translated into English
by Srisa Chandra Vasu, Delhi, India, 1962.
Manager, Language Systems
Standards & Research
Radio Corporation of America
Cherry Hill, N.J. 08034
Additional Comments on a Problem in Concurrent
Programming Control
In D. E. Knuth's solution [Comm. ACM 8, 5 (May, 1966), 321-
322, Letter to the Editor] of Dijkstra's problem [Comm. ACM 8, 9
(Sept. 1965), 569] it is not quite easy to check that any computer
waiting for its critical section has to wait at most 2 N-I turns (the
word "turn" refers to a computer performing its critical section).
It occurred to me that by a small change in his program that num-
ber can be reduced to ½N(N-- 1), with the extra advantage that
for this new program it is easier to see why and how it works. The
change consists of replacing
L3: k := i;
critical section ;
k := if i=1 then N else i--1;
L3: critical section;
if control [k] = 0 V k=i then k := if k = i then N else k-- 1 ;
and requiring that the initial value of k is one of the numbers 1, .-.,
N, instead of O.
With these alterations we find:
(i) If at a certain moment k has a value i, and if control [i] ~ O,
then k does not change its value before computer i performs its
critical section.
(ii) In a time interval where k is constant, no computer can pass
its critical section twice. Assuming computer j passes twice, we
have j ~ k and control [k] ~ 0 (otherwise k would have changed
the first time) ; computer k does not pass its critical section before
j does (for otherwise the value of k would change before j gets
its second turn); hence control [k] ~ 0 all the time between the
Volume 10 / Number 3 / March, 1967 Communications of the AClVl
two turns of j, and this means that j cannot get to L2 after its
first turn.
From (i) and (iN), it follows that if computer i has control
[i] ~ 0, then it has to wait at most N(N-1) turns. The actual
½N(N--1), however. This we prove for i = 1.
(iii) If j has one of the values 2, -. , N, then the following holds.
In a time interval throughout which control [1] ~ 0 andj > k >
1, computer j can pass its critical section at most once. For,
after its first passage we cannot have k = j, (even if j = N the
value of k cannot jump from 1 to N under these circumstances)
and from that moment on we have j > k >_ 1, which implies that
j cannot get to L2 before control [1] = 0.
From (i), (it), and (iii), it follows that in a time interval
where control [1] ~ 0, computer j can have at most N-j+1
turns (2 < j < N). Hence computer 1 has to wait at most
~-~2 (N-j +1) = ½N(N--1) turns. It is not difficult to show that
this waiting period can indeed occur. N. G. DE BRUIJN
Technological University
Eindhoven, The Netherlands
Call for Information: Law and Data Processing
I am writing this letter in the hope that your readers will be
kind enough to help me help them and the data processing com-
I am now engaged in a survey study and collection of material
in the broad field of law and dat'~ processing. The results of the
study and the accompanying bibliography are expected to have
a wide circulation. Unfortunately, published works in this field
are scattered among many journals in different fields and even
incomplete bibliographies are difficult to come by. Many works
appear to exist in unpublished form and information about court
decisions and actual experience in this field are not readily avail-
I would greatly appreciate hearing from any reader who has
information about unpublished works or publications not widely
known, bibliographies in the field, court decisions, personal ex-
periences with legal problems concerning data processing, or any
information which might be useful to the study. Any assistance
will be gratefully acknowledged in the study. I would also like to
learn of any legal problems in this area which your readers feel
have not been treated in the available literature and which are
nevertheless important to them.
If their firm's lawyers are not regular readers of the Communi-
cations of the ACM, I hope your readers will bring my request to
their attention also. JOHN F. BANZHAF III
Computer Program L, brary
509 Fifth Ave.
New York, N.Y. 10017
Aesop and the Referee: A Fable
Once upon a time, a referee received a paper for review. The
paper was laden with Theorems which were proved by reference
to unpublished technical reports and "to be published" docu-
ments. As the referee looked at the piles of unread journals on his
desk, he decided that he did not have the time required to decipher
the Theorems and he put the paper aside. Many moons passed
and he finally received a prodding letter from the editor. The pile
of unread journals was even larger, so he devoted even less time
to the review. When he had found several instances of poor nota-
tion or missing references and had suggested minor changes, his
job was complete. Many moons passed and that paper joined the
piles of unread journals across the country.
Question: Were the Theorems correct???
Morals: (1) Referees should spend real time, not just turn-
around time at their jobs. (2) Authors should include copies of
every cited technical report or unpublished document with copies
of their papers.
University of Minnesota
Minneapolis, Minnesota 55455
Left paren-
thesis* (
Plus +
Greater than >
Less than <
Right paren-
thesis* )
Equals* =
More on Processing 64-Character Cards
This letter is in reply to Robert F. Rosin's letter, "Bridging
the Equipment Gap for Processing 64-Character Cards" [Comm.
ACM 9, 9 (Sept. 1966), 694].
The suggestion for overprinting two symbols to supply extra
characters especially for PL/I and EBCDIC is impractical since
only a minority of potential users have space suppression equip-
ment on their printers. There is, however, a clear need for some
scheme for a large number of users.
I have made a program available for 1401 (and 360 in 1401 mode)
on the IBM Program Library (Program Number 01.4.203) called
LATCH (List All The CHaracters) which uses a double line to
print special characters for PL/I and EBCDIC character sets.
Details of the symbols used are listed below. They may be
Represen- g-Line Repre- Comments
1 /One over one 11~
1 \Note: concatenation 11 /
/ Gives visual impression of left
L parenthesis.
Period over ampersand ("Re-
~z sembles" principle)
G Normal convention (also in
T FORTRAN and PL/I 48 charac-
ter set)
L Normal convention (also in
T FORTRAN and PL/I 48 character
1 One over slash resembles right,
/ parenthesis
Seven resembles "not" symbol ;
Period over seven
Period over comma
Comma over blank
Dash over dash
Period over period
"Resembles" principle; Period
(break) -- -- over dash
*Some of these special symbols are available in correct form on some machines.
A/S Datasentralen
Boks 3654
Oslo 1, Norway
Letters are continued on page 148
138 Communications of
ACM Volume 10 / Number 3 / March, 1967
from p.
Should There Be a CS Undergraduate Program?
Having read the reports of the two symposia on the impact of
computing on undergraduate mathematics instruction [Comm.
ACM 9, 9 (Sept. 1966)], I must comment.
In the remarks of Professor Givens and Professor Murray there
is little to which I take exception. Professor Atchison, however,
says, "It should be recognized that there are still some people who
are questioning whether there should be an undergraduate pro-
gram in Computer Science."
I am one of them, and in fact I want to argue that there should
not be such a program.
Probably every undergraduate nowadays should learn some-
thing about computers and their uses, as part of his knowledge of
man's tools; certainly everyone who intends to go into science
should learn the rudiments of numerical analysis and programming.
Furthermore, it is right and inevitable that the existence of com-
puters and of computer-oriented methods should influence the
content of mathematics courses. Professor Murray has treated
this matter quite well.
My opinion, however, is that the computer professional needs
to know, or at least to encounter, almost everything that is in the
modern undergraduate mathematics curriculum. If he adds to this
curriculum (which should, obviously, include a good course in
logic) a course or two in physics or electronics, and perhaps a
look at some field such as psychology or economics, in which he
may someday have to do computing, he is not going to have much
time left over.
I have read the paper which outlines the C3S preliminary recom-
mendations. This curriculum contains a great deal of worthwhile
material, but most of it belongs at the graduate level, where it can
be done better any way. I simply do not see that much of it can
be included in an undergraduate program except by skimping on
basic science and by excluding from the student's experience all
but the most perfunctory contact with nontechnical subjects.
Professor Murray puts the matter succinctly, "College and
university education should be aimed at the intellectual develop-
ment of the student. Indeed, it is because the impact of computers
is significant for the broad development of the student that
changes are required."
We have heard a good deal of muttering about the social re-
sponsibilities of the computing profession. A part of this responsi-
bility, I feel, is to abstain from pressuring the colleges and uni-
versities into answering the supposed needs of industry by
grinding out narrow, semi-literate technicians.
The would-be computer scientist can learn about syntax-
directed compilers on the job or in graduate school. In college,
Birkhoff and MaeLane, Aristotle, and T. S. Eliot will do him more
IBM Watson Research Center
Yorktown Heights, N. Y. 10598
A Reply to Fulkerson's Comments
I would like to offer a few comments concerning Mr. Fulker-
son's Letter on an undergraduate curriculum in computer science.
First, let me say that all of the points made by Mr. Fulkerson
are very familiar to all of us on the Curriculum Committee, in
fact some members may even agree with him. The facts are, how-
ever, that numerous undergraduate programs are being estab-
lished and the Curriculum Committee feels an obligation to propa-
gate the best ideas possible for such programs. We have stressed,
and will continue to stress, that such programs may not be ap-
propriate at all schools and that they should emphasize the educa-
tional rather than the training philosophy. Perhaps the best an-
swer as to whether or not there should be an undergraduate
program in computer science will be revealed after the passage
of a few more years. Certainly this is the approach we have a-
dopted here at the University of Maryland. We are first setting
up our Masters Degree program, with the intent of developing
a Doctoral program next. After these have been established,
we can consider the question of an undergraduate program. This
is the approach being taken by many schools.
Now I will try to comment explicitly on some of Mr. Fulker-
son's points. I certainly agree with him that every undergraduate
should learn something about computer science. Our Curriculum
Committee in conjunction with the Education Committee is now
considering a lower level computer course for all college students,
but it is not in our current suggested curriculum, and probably
will not get into our next publication.
I do not concur with Mr. Fulkerson's opinion that it is neces-
sary for a computer professional to know or at least encounter
almost everything in the modern undergraduate mathematics
curriculum. Although there is much that is mathematical, in-
cluded in or necessary for computer science, we have had consider-
able testimony, including that of many well qualified mathema-
ticians, to the effect that much of computer science depends very
little on the mathematics presently being taught in our universi-
ties. On the other hand, a great many mathematical concepts are
needed which are seldom found in mathematics programs. It is
my opinion that a potential computer science maj or, depending on
what he is going to do, should get one or more courses in mathe-
matics beyond the calculus, but I am sure you know that many
people think that even this much is not needed. I regard this as
something of an average answer to the amount of mathematics
needed for an undergraduate major in computer science. Our
Curriculum Committee has discussed this point at some length,
and we feel that it is entirely possible for the undergraduate to
take this much mathematics, a sufficient amount of computer
science, and considerable additional material, M1 within the nor-
mM Bachelor of Science degree requirements.
Relative to Mr. Fulkerson's remark that most of the curriculum
material belongs at the graduate level, I suspect that too much
undergraduate level material in computer science is already being
offered at the graduate level. Most of the material we propose is
indeed Mready being taught successfully at the undergraduate
level. A more adequate undergraduate education in computer
science--even a good minor--would make better graduate pro-
grams possible. It is my opinion that the computer science mate-
rim is in the process of drifting from the higher educationM levels
to the lower ones as is typicM in all areas.
I have spent a considerable amount of time thinking about the
intellectual development of a possible undergraduate student in
computer science. I would agree that his intellectual development
is extremely important, but it seems to me that it is entirely pos-
sible that an undergraduate student may even be better prepared
intellectually by taking a good undergraduate major in computer
science than by taking an undergraduate major in a more tradi-
tional science or engineering subject. It is conceivable to me that
a good undergraduate program in computer science may do a
better job than a traditional major in imparting to the student
wisdom, knowledge, and the ability to organize his thoughts and
facts for future application to this real and somewhat disorgan-
ized world. It is my conjecture that the newer developments in the
computer and information sciences may well yield very significant
new approaches to the intellectual realms of knowledge. Such a
broad approach, if we can indeed achieve this in computer science,
and I think we can, will not yield a semi-literate technician, but
an educated intellectual.
Computer Science Department
Universily of Maryland
College Park, Md. 20740
Communications of the ACM Volume 10 / Number 3 / March, 1967
... The Sanskrit grammarian Panini started the systematization of language, and all grammars of Indo-European languages and many others are influenced in different degrees by his work [83]. Modern computer programming languages use a tiny subset of his axiomatic system for language as the so-called Backus-Naur form, which Backus learned from his familiarity with Noam Chomsky's work in linguistics at MIT [84]. The equally tempered scale was first published in 1584 by Chu Tsai-Yu, a prince of the Ming dynasty, and his result traveled through the Jesuit Matteo Ricci to the West, where large orchestral works could be coordinated through its use [85]. ...
Conference Paper
Full-text available
Heuristics are used in many disciplines because of the large number of experiments and calculations required to answer the underlying questions. TRIZ gathers and generalizes such heuristics and is perhaps the most powerful body of such heuristics. However past results or success, as in the performance of financial instruments or industrialists is no guarantee of future performance because the results are obtained in an uncontrolled or non-experimental environment. We develop here the most general formulation possible for any kind of problem involving the objective of an individual or group of individuals under the constraints of natural regularities, human ability and society. This is done through recognizing the most fundamental objective function arising from biology, that of self-preservation that drives all system evolution. Focusing on the objective function leads naturally to the variables that determine its value, the dynamics of those variables, and the agents or phenomena controlling or influencing those dynamics. While our representation is based in control theory, it is intuitive to those familiar with functional chains and root cause analysis. The objective function also helps us to simplify the representation based on the precision with which we want to control it. With our problem representation, we discover large families of problem solving methods, which include as special cases such notions as the resolution of contradictions, idealization, and standards in TRIZ. Thus, we obtain a rationale for may TRIZ heuristics from rigorous system theoretic problem formulation of generic problems.
... The earliest use of the use of recursive syntax dates back to somewhere between 4 th to 6 th century BC to Pãn . ini (Ingerman [37]). He described how sentences in Classical Sanskrit can be built up from smaller clauses recursively. ...
We present a formalisation of the theory of context-free languages using the HOL4 theorem prover. The formalisation of this theory is not only interesting in its own right, but also gives insight into the kind of manipulations required to port a pen-and-paper proof to a theorem prover. The mechanisation proves to be an ideal case study of how intuitive textbook proofs can blow up in size and complexity, and how details from the textbook can change during formalisation. The mechanised theory provides the groundwork for our subsequent results about SLR parser generation. The theorems, even though well-established in the field, are interesting for the way they have to be “reproven” in a theorem prover. Proofs must be recast to be concrete enough for the prover: patching deductive gaps which are relatively easily grasped in a text proof, but beyond the automatic capabilities of contemporary tools. The library of proofs, techniques and notations developed here provides a basis from which further work on verified language theory can proceed at a quickened pace. We have mechanised classical results involving context-free grammars and pushdown automata. These include but are not limited to the equivalence between those two formalisms, the normalisation of CFGs, and the pumping lemma for proving a language is not context-free. As an application of this theory, we describe the verification of SLR parsing. Among the various properties proven about the parser we show, in particular, soundness: if the parser results in a parse tree on a given input, then the parse tree is valid with respect to the grammar, and the leaves of the parse tree match the input; and completeness: if the input belongs in the language of the grammar then the parser constructs the correct parse tree for the input with respect to the grammar. In addition, we develop a version of the algorithm that is executable by automatic translation from HOL to SML. This alternative version of the algorithm requires some interesting termination proofs. We conclude with a discussion of the issues we faced while mechanising pen-and-paper proofs. Carefully written formal proofs are regarded as rigorous for the audience they target. But when such proofs are implemented in a theorem prover, the level of detail required increases dramatically. We provide a discussion and a broad categorisation of the causes that give rise to this.
Conference Paper
This paper considers simple LISP-like languages for the recursive definition of functions, focusing upon the connections between formal computation rules for calculation and the mathematical semantics of recursive definitions. A computation rule is correct when it is capable of computing the minimal fixpoint of a recursive definition. We give necessary and sufficient conditions for the correctness of rules under (a) all possible interpretations and (b) particular interpretations.
ResearchGate has not been able to resolve any references for this publication.