From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f891f,9d58048b8113c00f X-Google-Attributes: gidf891f,public X-Google-Thread: 103376,2e71cf22768a124d X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,9d58048b8113c00f X-Google-Attributes: gid1014db,public X-Google-Thread: 10261c,2e71cf22768a124d X-Google-Attributes: gid10261c,public From: ncohen@watson.ibm.com (Norman H. Cohen) Subject: Re: next "big" language?? (disagree) Date: 1996/06/12 Message-ID: <4pml34$13gs@watnews1.watson.ibm.com>#1/1 X-Deja-AN: 159866535 distribution: world references: <4phmsb$1dd@gaia.ns.utk.edu> <4pjl57$cn0@btmpjg.god.bel.alcatel.be> organization: IBM T.J. Watson Research Center reply-to: ncohen@watson.ibm.com newsgroups: comp.lang.ada,comp.lang.misc,comp.lang.c,comp.lang.pascal.misc Date: 1996-06-12T00:00:00+00:00 List-Id: In article <4pjl57$cn0@btmpjg.god.bel.alcatel.be>, ian@rsd.bel.alcatel.be (Ian Ward) writes: |> Which then brings me to Mathew B. Kennel's retort |> |> > And by doing so turns what would otherwise be superficial syntactic or |> > linguistic errors into programs with run-time bugs. |> |> If he is talking about Ada here, then I think his argument is flawed |> because it, in my opinion, assumes that the rate of errors per SLOC |> a programmer makes is independent of language. |> |> I don't think that for every syntax error a programmer spots in |> his code as a result of a compiler listing, another semantic error |> is created instead, (or is even present.) |> |> It is more likely that a given programmer generally has N syntax |> errors/1000SLOC and M semantic errors/1000SLOC (where M and N |> vary on the ability of the programmer, his interest in his work, |> and the difficulty of it.) |> |> In this situation, a good compiler, will point out his N syntax errors, |> which he will correct. In the process of correcting these, it is |> also likely that he will spot a few of the semantic errors. |> This would then leave < M semantic errors for the programmer to |> track down at run-time. |> |> All the language would then need is some kind of run time checking |> to help him out. The distinction between "syntax" errors "semantic" errors is misleading. What is relevant here is the distinction between errors caught at compile time and those caught at run time (or, worse, not caught at all). For example, a missing semicolon is a syntax error and a type mismatch is a semantic error, but both are caught by an Ada compiler at compile time. The point that Matthew was making was that Ada's strong compile-time checks allow certain errors that might not be detected until run time, or might not be detected until a program is in the hands of customers, to be detected during compilation instead. The greater number of compile-time error messages means that more work is required to get a program to compile, but once it compiles it is likely to have fewer run-time errors. Thus it will take less work to get the compiled program to pass its tests and the end product will be more reliable. -- Norman H. Cohen ncohen@watson.ibm.com