The ModulaTor logo 7KB

The ModulaTor

Oberon-2 and Modula-2 Technical Publication

The ModulaTor
Erlangen's First Independent Modula-2 Journal! Nr. 3/Apr-1991 
_____________________________________________________________

"The Medium is the Embassy"

Personal Thoughts on Messages, Computer Languages and Risky Business 

by Guenter Dotzel, ModulaWare  

May be it's correct, that not the information but the medium is the message. For example 
the message Modula-2 is the logical successor of Pascal, broadcasted in the public radio 
station Bayern-2 (Munich) in 04-Feb-1991, two days later changed to Modula-2 is the 
romantical variant of Pascal in the private radio station Radio-Z (Nuremberg). The way 
people talk about things they don't understand reminds me on automatic language 
translators; such a translator that transforms say German text into English text using a 
dictionary, grammar rules and context. Translator programs may never be able to fully 
understand our messages in order to transform them correctly. This is mainly due to 
implicit context or environment that come along with messages. There are a number of 
popular examples for sentences that were translated wrongly by computer programs. I 
got a new one. Recently I thought about automatic translation of the German sentence 
Das Medium ist die Botschaft which means The medium is the message in English. In 
translating, the program has to look-up the word Botschaft in a dictionary. This creates a 
problem, because the German word Botschaft is a homonym (i.e. one word has more 
than one meaning, which by the way should not be confound with synonym) and either 
means message or embassy in English. Either word can be substituted and we get a 
semantically correct sentence. But embassy has something to do with politics and 
message is used in computer science or communication theory. 

From the discussion above one could derive, that Modula-2 and politics have something 
in common or at least have some relationship. That's not true. It has to be clearly stated, 
that programming languages have nothing to do with politics. From a political viewpoint 
all programming languages are equal, since they were created by humans and 
according to the international basic law, everybody, independent from origin, sex, race, 
color or other status (e.g. education) has the same rights as others. This includes the 
right to design programming languages. Furthermore, from political viewpoint there is 
also no qualitative difference between different programming languages. This has been 
confirmed recently by an employee of the German association for nuclear power-station 
safety. He was asked whether the choice of a programming language could influence the 
number and kind of programming errors made by the programmers. In his opinion, all 
programming languages are equal in respect to safety and programming errors can only 
be blamed to the programmer not to the language used. Neither language is safer than 
another. So there is no neccessity to recommend or to forbid certain programming 
languages, not even for safety critical applications. Such statements made by respected 
but nevertheless incompetent persons could be reponsible for serious damage of our 
environment. I mean anybody talking about computer languages should know about that 
subject. 

I'm tired in mentioning the satellite which failed to do its job because a programmer by 
mistake wrote DO 4 I=1.3 instead of correctly DO 4 I=1,3 in Fortran many years ago. 
For those happy guys who never had to learn Fortran I should explain the effect of that 
typing error. Since white spaces are ignored in Fortran, the first statement implicitely 
declares a variable of real type with the name DO4I and assigns the real constant 1.3 to 
it. It should be noted, that the automatic variable declaration feature was introduced only 
to please the programmer. The second version is a DO-Loop, which iterates the 
statement sequence up-to and including the line which is labeled by "4" three times over 
the variable I. By the way, DO-Loops are not equivalent to For-Loops (see the article The 
Ackermann function above), because one could leave the loop with a goto-statement. 
Such a typing error should not be possible in languages which have been designed with 
safety in mind. These languages include Pascal, Modula-2, occam, and the not 
well-known Edison. 

Also a single example in C should suffice to abandon it forever. Let's declare an 
integer-type function with two parameters in C and let's call the function b erroneously 
without arguments and also without parentheses as one would call a procedure in 
Pascal. The call of b should be the only thing on the source line: b; According to my 
understanding of the C language defined by Kerningham/Ritchie, the C compiler does 
not and can not know anything about b. Especially the compiler doesn't know that it's a 
procedure. But it's a valid expression. Since the expression is without side effect, the 
compiler skips this line and does not generate any code. It would not even be possible to 
set a break-point to this line in the debugger (if any available). To indicate that the 
statement is a procedure call, one has at least to write b(); which is also accepted by C; 
it would force the C compiler to generate code to call a procedure with the name b, but 
without arguments. So the next approximation is b(4,1); which is also accepted in C 
and actually calls b and supplies two parameters but doesn't catch the returned value. 
Next is x=b(4,1); which is accepted in C even if x is of wrong type, e.g. real- instead of 
integer-type. The next error which could occur is a so-called name-clash in linking. A 
separate program may have used the same procedure name b already. So the name b 
in the procedure declaration has to be modified to b1 for example. But one forgets to also 
change all calls to b into b1. Sure, the C compiler can by no means detect this error. In a 
safe language all those errors are detected by the compiler at compile time. The only 
attribut of C which can not be denied (under the premise of a clear language description 
and error free compiler and optimizer) is, that it is indeed possible to write error free 
programs in C. To wind down I'd like to freely cite Frank Zappa: There is more stupidity in 
the universe than hydrogen. How could he know? He just recently wrote an interesting 
book on that subject. 

Who's Frank Zappa (FZ)?  FZ is the father of the famous rock group Mothers of
Invention. For many years he composed, performed and produced his own music
through Barking Pumpkin  Records and operates his own record label called
Zappa Records. He was one of the first musician who recorded digitally and
even remastered older ones. He  lives in the United States but he got a job
from the government of the CSFR where he is responsible for cultural aspects
of music. His parents are Italians. Last  summer, three Modula-2 programmers
Anja, Paul and me tried to find out where FZ got his fruitful inspirations. We
detected a refuge operated by CAI, the Italian  Alpine Club. The refuge is
called Refugio Zamponi Zappa and is located in the Italian Alps near the
village Macugnaga which itself is about 70 km west of  Lugano/Switzerland. In
trying to find out more about this refuge, especially how it got that
wonderful name, we hiked to this refuge which is beautifully located east of 
Monte Rosa on the bottom of a glacier in an elevation of 2065 m. The refuge
was closed and there was nobody we could ask about FZ. But we observed several 
avalanches, took photographs and caught a cold. 

__________________________________________________________________________________________________ 


IMPRESSUM: The ModulaTor is an unrefereed journal. Technical papers are to be taken as working papers and personal rather than organizational statements. Items are printed at the discretion of the Editor based upon his judgement on the interest and relevancy to the readership. Letters, announcements, and other items of professional interest are selected on the same basis. Office of publication: The Editor of The ModulaTor is Guenter Dotzel; he can be reached by tel/fax: [removed due to abuse] or by mailto:[email deleted due to spam]
  ModulaWare home page   The ModulaTor download    [Any browser]

Webdesign by www.otolo.com/webworx, 14-Jul-1998