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
![]()