Groups | Search | Server Info | Login | Register


Groups > comp.lang.forth > #22974

Re: comp.lang.forth.applications

From "Paul E. Bennett" <Paul_E.Bennett@topmail.co.uk>
Newsgroups comp.lang.forth
Subject Re: comp.lang.forth.applications
Followup-To comp.lang.forth
Date 2013-05-27 23:34 +0100
Organization Hidecs Consultancy
Message-ID <b0i5ilFi6ckU1@mid.individual.net> (permalink)
References (1 earlier) <knmhhq$eur$1@speranza.aioe.org> <519f3cd2.175876572@news.demon.co.uk> <knng92$dc5$1@speranza.aioe.org> <519f4909$0$32116$14726298@news.sunsite.dk> <knvhs2$e2d$1@speranza.aioe.org>

Followups directed to: comp.lang.forth

Show all headers | View raw


Ed wrote:

[%X]

> I don't know whether Chuck ever wrote a program consisting of a
> million lines of code, but he is certainly keen on keeping size
> to a minimum.  Can one write a million lines of efficient, error
> free code?  You tell me.

Chuck may well have written a million lines by now but I am sure he hasn't 
done a million line programme. However, writing a million line programme is 
achievable in any language, even Forth.
 
> My compiler source is 10,000 lines of assembler code and there
> are times I feel I'm no longer in control of it.  The larger the program,
> the harder it becomes for a programmer to guarantee that a change
> won't adversely affect something.  I guess that's why they employ
> testers and rely on users to find the bugs for them :)

There are a few things that should be in place in order to write an error 
free application of any size.

1. You need to employ a development process that automatically produces teh 
evidence of its proper application.

2. Ensure that the components of the application connect ONLY via a well 
understood standard interface.

3. Embed the requirements statement for each function in the source code 
comments with full traceability to the original requirements.

4. By inspection ensure that the intent of the source code meets the 
statement of requirements.

5. Check all logical pathways of the function to ensure 100% coverage.

6. Once the code inspection and functional testing is completed 
satisfactorily, try and explore beyond the limitations to ensure sensible 
behaviour in spite of trying to break the function.

7. Use only the fully inspected and tested code (as in 4, 5 & 6) as 
components in your application.

8. Have and follow your coding style guidelines.

From studies made, by my good friend Les Hatton, about testing time-frames 
increase with code size, functions beyond 300 lines of code take 
inordinately large time-scales to provide 100% coverage testing. So, the 
smaller the number of source code lines for a function the easier and 
quicker it is to fully test.

So, the million line Forth programme, if constructed properly (with the 
above in mind), is likely to be of very high quality. It is something that 
seems to come easier in the Forth constructive mindset. But Forth programmes 
of such a size are only created because that size was essential to the 
application.

-- 
********************************************************************
Paul E. Bennett...............<email://Paul_E.Bennett@topmail.co.uk>
Forth based HIDECS Consultancy
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-510979
Going Forth Safely ..... EBA. www.electric-boat-association.org.uk..
********************************************************************

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

comp.lang.forth.applications johno <email@address.com> - 2013-05-23 15:35 +0100
  Re: comp.lang.forth.applications albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-23 15:38 +0000
    Re: comp.lang.forth.applications "Elizabeth D. Rather" <erather@forth.com> - 2013-05-23 08:25 -1000
      Re: comp.lang.forth.applications Mentifex <mentifex@myuw.net> - 2013-05-23 11:43 -0700
    Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-23 18:35 -0700
      Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-23 22:38 -0700
        Re: comp.lang.forth.applications albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-24 08:52 +0000
          Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-25 17:52 -0700
            Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-25 18:18 -0700
        Re: comp.lang.forth.applications Doug Hoffman <glidedog@gmail.com> - 2013-05-24 05:24 -0400
          Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-25 18:12 -0700
        Re: comp.lang.forth.applications "WJ" <w_a_x_man@yahoo.com> - 2013-06-08 11:46 +0000
          Re: comp.lang.forth.applications Doug Hoffman <glidedog@gmail.com> - 2013-06-08 08:55 -0400
        Re: comp.lang.forth.applications "WJ" <w_a_x_man@yahoo.com> - 2013-06-09 19:21 +0000
      Re: comp.lang.forth.applications m.a.m.hendrix@tue.nl - 2013-05-23 23:55 -0700
        Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-25 17:40 -0700
          Re: comp.lang.forth.applications mhx@iae.nl (Marcel Hendrix) - 2013-05-26 09:18 +0200
            Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-26 00:24 -0700
            Euler 13 [Was: comp.lang.forth.applications] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-26 02:36 -0500
              Re: Euler 13 Paul Rubin <no.email@nospam.invalid> - 2013-05-26 01:02 -0700
                Re: Euler 13 Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-26 06:34 -0500
                Re: Euler 13 Paul Rubin <no.email@nospam.invalid> - 2013-05-26 10:13 -0700
                Re: Euler 13 visualforth@rocketmail.com - 2013-05-26 15:32 -0700
                Re: Euler 13 Paul Rubin <no.email@nospam.invalid> - 2013-05-26 15:40 -0700
              Euler 13 [Was: comp.lang.forth.applications] mhx@iae.nl (Marcel Hendrix) - 2013-05-26 11:06 +0200
                Re: Euler 13 [Was: comp.lang.forth.applications] mhx@iae.nl - 2013-05-26 02:28 -0700
                Re: Euler 13 [Was: comp.lang.forth.applications] "David N. Williams" <williams@umich.edu> - 2013-05-26 10:19 -0400
                Re: Euler 13 [Was: comp.lang.forth.applications] visualforth@rocketmail.com - 2013-05-26 15:24 -0700
                Re: Euler 13 [Was: comp.lang.forth.applications] Coos Haak <chforth@hccnet.nl> - 2013-05-27 01:11 +0200
                Re: Euler 13 [Was: comp.lang.forth.applications] visualforth@rocketmail.com - 2013-05-26 22:36 -0700
                Re: Euler 13 [Was: comp.lang.forth.applications] Alex McDonald <blog@rivadpm.com> - 2013-05-27 01:49 -0700
                Re: Euler 13 [Was: comp.lang.forth.applications] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-27 08:56 +0000
                Re: Euler 13 [Was: comp.lang.forth.applications] "David N. Williams" <williams@umich.edu> - 2013-05-27 08:04 -0400
                Re: Euler 13 [Was: comp.lang.forth.applications] humptydumpty <ouatubi@gmail.com> - 2013-05-27 12:55 -0700
              Re: Euler 13 [Was: comp.lang.forth.applications] albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-26 17:24 +0000
                Re: Euler 13 [Was: comp.lang.forth.applications] albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-26 17:26 +0000
                Re: Euler 13 Paul Rubin <no.email@nospam.invalid> - 2013-05-26 21:25 -0700
                Re: Euler 13 albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-27 12:13 +0000
                Re: Euler 13 Paul Rubin <no.email@nospam.invalid> - 2013-05-27 07:44 -0700
            Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-26 01:04 -0700
            Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-26 15:05 -0700
              Re: comp.lang.forth.applications mhx@iae.nl (Marcel Hendrix) - 2013-05-27 01:12 +0200
                Re: comp.lang.forth.applications visualforth@rocketmail.com - 2013-05-26 22:32 -0700
  Re: comp.lang.forth.applications "Ed" <invalid@invalid.com> - 2013-05-24 12:00 +1000
    Re: comp.lang.forth.applications stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-24 10:16 +0000
      Re: comp.lang.forth.applications "Ed" <invalid@invalid.com> - 2013-05-24 20:44 +1000
        Re: comp.lang.forth.applications Doug Hoffman <glidedog@gmail.com> - 2013-05-24 07:03 -0400
          Re: comp.lang.forth.applications "Ed" <invalid@invalid.com> - 2013-05-27 22:00 +1000
            Re: comp.lang.forth.applications "Elizabeth D. Rather" <erather@forth.com> - 2013-05-27 08:08 -1000
              Re: comp.lang.forth.applications "Ed" <invalid@invalid.com> - 2013-05-29 13:56 +1000
                Re: comp.lang.forth.applications albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-29 04:05 +0000
                Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-05-29 16:25 -0400
                Re: comp.lang.forth.applications albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-30 00:31 +0000
            Re: comp.lang.forth.applications "Paul E. Bennett" <Paul_E.Bennett@topmail.co.uk> - 2013-05-27 23:34 +0100
              Re: comp.lang.forth.applications "Ed" <invalid@invalid.com> - 2013-05-29 13:51 +1000
                Re: comp.lang.forth.applications Alex McDonald <blog@rivadpm.com> - 2013-05-29 00:14 -0700
                Re: comp.lang.forth.applications Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-29 04:01 -0500
                Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-05-29 16:35 -0400
                Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-06-08 22:16 -0400
                Re: comp.lang.forth.applications Brad Eckert <hwfwguy@gmail.com> - 2013-06-10 14:17 -0700
                Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-06-10 19:06 -0400
        Re: comp.lang.forth.applications stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-24 12:30 +0000
          Re: comp.lang.forth.applications the_gavino_himself <visphatesjava@gmail.com> - 2013-05-24 23:14 -0700
          Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-05-26 22:18 -0400
      Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-24 07:57 -0700
        Re: comp.lang.forth.applications Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-24 10:33 -0500
        Re: comp.lang.forth.applications stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-24 16:34 +0000
          Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-24 10:23 -0700
      Re: comp.lang.forth.applications "Paul E. Bennett" <Paul_E.Bennett@topmail.co.uk> - 2013-05-24 20:00 +0100
        Re: comp.lang.forth.applications "Elizabeth D. Rather" <erather@forth.com> - 2013-05-24 09:32 -1000
          Re: comp.lang.forth.applications Paul Rubin <no.email@nospam.invalid> - 2013-05-24 20:18 -0700
            Re: comp.lang.forth.applications "Elizabeth D. Rather" <erather@forth.com> - 2013-05-24 19:31 -1000
  Re: comp.lang.forth.applications oh2aun@gmail.com - 2013-05-23 20:56 -0700
  Re: comp.lang.forth.applications the_gavino_himself <visphatesjava@gmail.com> - 2013-05-24 23:02 -0700
  Re: comp.lang.forth.applications rickman <gnuarm@gmail.com> - 2013-06-08 19:21 -0400
  Re: comp.lang.forth.applications gavino_himself <visploveslisp@gmail.com> - 2013-06-11 20:40 -0700

csiph-web