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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,1042f393323e22da X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,1042f393323e22da X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,1042f393323e22da X-Google-Attributes: gid103376,public From: eachus@spectre.mitre.org (Robert I. Eachus) Subject: Re: Any research putting c above ada? Date: 1997/05/01 Message-ID: #1/1 X-Deja-AN: 238715296 References: <5ih6i9$oct$1@waldorf.csc.calpoly.edu> <3359e813.340466234@news.pacificnet.net> <5iri6b$jn0@bcrkh13.bnr.ca> <5k60au$gig@bcrkh13.bnr.ca> <5k8b0p$25f2@uni.library.ucla.edu> Organization: The Mitre Corp., Bedford, MA. Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.ada Date: 1997-05-01T00:00:00+00:00 List-Id: In article <5k8b0p$25f2@uni.library.ucla.edu> jmartin@cs.ucla.edu (Jay Martin) writes: > Huh? By definition, if the subject has to do with practical > software construction then that is in software engineering. If it > is worthless theoretical masturbation, then that of course lies in > the domain of Computer "Science". If you want to say that software engineering is about practical software construction, fine. But if you don't know how to navigate around the slippery shores of the halting problem, or NP-completeness, you will spend an awful lot of time trying to solve problems that are not practically solvable. Notice the wording there--if you know how and where to draw the line, you can solve your problem without generalizing it into a "simpler" case that is out of reach. Or, if you know what you are doing you can, with little trouble, solve an NP-complete problem. For example, Ada compilers are required to solve bin packing problems. In general, the bin packing problems the compiler sees are easy to solve, and if you go to the effort of embedding a large and difficult problem in your record representation clause, well compiling it might take a while. Another example in an Ada context is the discussion we just had about elaboration order. In theory, finding a "good" elaboration order for any Ada program is equivalent to the halting problem. In practice, any compiler can find a legal order, and most compilers will find a "good" order for most programs. (A good order here is one which does not raise Program_Error for any input.) And by the way, don't ask for the compiler to reject any program that doesn't run to completion. In this end of the programming business we have tools which reject programs that can be shown to halt for any reason. Of course, I can't prove that any arbitrary embedded program never halts, but I don't want to. What I want is a set of rules so that my programs can be shown never to halt. That is a possible (and not too difficult) task. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...