Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!iuvax!pur-ee!uiucdcs!uxc.cso.uiuc.edu!uxe.cso.uiuc.edu!hirchert From: hirchert@uxe.cso.uiuc.edu Newsgroups: comp.lang.fortran Subject: Re: Value parameters Message-ID: <50500013@uxe.cso.uiuc.edu> Date: Fri, 23-Oct-87 18:33:00 EST Article-I.D.: uxe.50500013 Posted: Fri Oct 23 18:33:00 1987 Date-Received: Mon, 26-Oct-87 02:32:58 EST References: <1331@cartan.Berkeley.EDU> Lines: 76 Nf-ID: #R:cartan.Berkeley.EDU:1331:uxe.cso.uiuc.edu:50500013:000:4060 Nf-From: uxe.cso.uiuc.edu!hirchert Oct 23 17:33:00 1987 /* Written 5:20 pm Oct 18, 1987 by c9c-ra@dorothy.Berkeley.EDU in uxe.cso.uiuc.edu:comp.lang.fortran */ In article <7370@alice.UUCP> ark@alice.UUCP writes: ... TOO MANY LAWYERS around reading between the lines of every document and displaying petty arguments about what iss there between the lines. The point should be defined as: 1)Compilers should support standard FORTRAN77 2)They should do something about illegal syntax or invalid operations. There were sevaral postings about f77 which doesn't do anything about some VERY OBVIOUS errors such as not assigning a value to a function name or misinterpreting continuation line (both of them were posted earlier) **PUNCHLINE? RESERVED WORDS ARE NEEDED *** 3) WATFOR77 DOES AN EXCELLENT JOB about catching illegal usage of FORTRAN. IF ONLY you could learn from WATERLOO people. 4)FORTRAN encourages the programmers BEING LAZY. You can slap together a FORTRAN program and it does not look as bad as a 'badly-written-Pascal program'. Because FORTRAN LACKS structures. METHINKS IT IS THE TIME TO INTRODUCE STRUCTURES SUCH AS WHILE OR REPEAT-UNTIL etc. LIKE WATFOR77 DOES or see that the language is taking its place (Slowly) in bit heaven where it belongs. (Where are the 8X people?) ... Akin Ozselcuk /* End of text from uxe.cso.uiuc.edu:comp.lang.fortran */ Instead of legal programs or compilers, people should be talking about standard-conforming programs or compilers, but I don't think anyone is mislead by this short cut in vocabulary. The real point is that the standard places only minimal requirements on compilers. The primary requirement is that it correctly handle standard-conforming programs. There is no requirement that it detect programs that do not conform and there probably never will be. Some of the requirements on standard-conforming programs cannot reasonably be enforced. WATFOR77 enforces many of these requirements, but at the cost of an order of magnitude slowdown relative to FORTRAN G and FORTRAN G can be an order of magnitude slower than a good compiler. Even so, there are requirements that WATFOR77 doesn't enforce because the cost of doing so would likely be another order of magnitude slowdown. In other words, the Fortran standard is designed to support a fast language, not necessarily a safe one. The restrictions in it are designed not for enforceability, but to provide the compiler with the information it needs to efficiently optimize the code it produces. While reserved words maginally improve error interpretation, they can cause severe portability problems, especially when the addition of extended features results in the addition of new reserved words. For toy languages supporting mostly student programmers who are expected to commit many errors and not understand them, reserved words are fine, but for programs millions of lines long with lifetimes measured in decades, they can be a severe problem (unless, of course, you have the kind of clout DoD had in demanding that there would be no extended Ada's). Fortran 77 has structured selection (i.e., the block-IF) but no structured looping because the committee that produced it was able to reach a quick consensus on the former but not the latter. The proposed draft for Fortran 8x does include a structured loop (albeit somewhat different from those offered by WATFOR77), as well as data structures, recursion, internal procedures, dynamic storage allocation, and many other features people seem to expect in a "modern" language. (By the way, the draft of Fortran 8x does include a requirement that standard-conforming compilers have an option to detect the syntactic violations of the standard, but the problem that started all this (modifying a dummy argument corresponding to an expression) is detectable in the general case only with run-time checks, so Fortran 8x compilers will not be required to detect it.) Kurt W. Hirchert National Center for Supercomputing Applications and a member of X3J3 (the committee producing Fortran 8x)