Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The "cutting edge" is getting rather dull. -- Andy Purshottam


devel / comp.lang.python / RE: Question(s)

SubjectAuthor
o RE: Question(s)<avi.e.gross

1
RE: Question(s)

<mailman.46.1698196764.3828.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24190&group=comp.lang.python#24190

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!2.eu.feeder.erje.net!feeder.erje.net!news-1.dfn.de!news-2.dfn.de!news.dfn.de!fu-berlin.de!uni-berlin.de!not-for-mail
From:
Newsgroups: comp.lang.python
Subject: RE: Question(s)
Date: Tue, 24 Oct 2023 21:19:17 -0400
Lines: 135
Message-ID: <mailman.46.1698196764.3828.python-list@python.org>
References: <CAPpdf58WXyJs+Rd_GnbS-6dW8bPNt5DsojnVN5_ep+ebNx36Pw@mail.gmail.com>
<58b56dbe-646c-4a94-8102-ac2cf6efe233@tompassin.net>
<CAPpdf5_WVe07YVm-dZVV1mpZSWB6v4Z0itRsfYxYVdt8bWt0Ng@mail.gmail.com>
<062901da06e1$46a074e0$d3e15ea0$@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Trace: news.uni-berlin.de 2puMWvqZY6v82FAduqXROQx/wOe4j4mDfGvP7G6x/54Q==
Cancel-Lock: sha1:B9P1auWRx4hKWliILy2hXTCs8P8= sha256:Xcjv8E1zPaGh+p/hNy+ZBS3gC9Euo995dfYfrACm2q0=
Return-Path: <avi.e.gross@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=CADbUNHB;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.003
X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'absolute': 0.05;
'chances': 0.05; 'network.': 0.05; 'programming.': 0.05; '2023':
0.07; 'architecture': 0.07; 'cpu': 0.07; 'else.': 0.07;
'intermediate': 0.07; 'modules': 0.07; 'tests': 0.07; 'blocking':
0.09; 'byte': 0.09; 'cc:addr:python-list': 0.09; 'fewer': 0.09;
'later,': 0.09; 'open-source': 0.09; 'rarely': 0.09;
'received:108': 0.09; 'responses': 0.09; 'typically': 0.09; 'cc:no
real name:2**0': 0.14; 'url:mailman': 0.15; 'memory': 0.15;
'that.': 0.15; 'arbitrary': 0.16; 'arithmetic': 0.16; 'bugs':
0.16; 'bugs.': 0.16; 'create,': 0.16; 'guarantees': 0.16;
'impossible': 0.16; 'incompatible': 0.16; 'less.': 0.16; 'logs':
0.16; 'mathematical': 0.16; 'o1bigtenor': 0.16; 'personally,':
0.16; 'reminds': 0.16; 'sounds': 0.16; 'them?': 0.16;
'to:addr:o1bigtenor': 0.16; 'which,': 0.16; 'wrote:': 0.16;
'larger': 0.17; 'october': 0.17; 'message-id:@gmail.com': 0.18;
'hardware': 0.19; 'subject:Question': 0.19; 'tue,': 0.19;
'cc:addr:python.org': 0.20; 'language': 0.21; 'machine': 0.22;
'written': 0.22; "i've": 0.22; 'languages': 0.22; 'basically':
0.22; 'exchanging': 0.22; 'maybe': 0.22; 'version': 0.23; 'code':
0.23; 'run': 0.23; 'idea': 0.24; 'anything': 0.25; 'skip:- 10':
0.25; 'url-ip:188.166.95.178/32': 0.25; 'url-ip:188.166.95/24':
0.25; 'url:listinfo': 0.25; 'cannot': 0.25; 'cc:2**0': 0.25;
'programming': 0.25; 'url-ip:188.166/16': 0.25; 'party': 0.26;
'bit': 0.27; 'done': 0.28; 'wrong': 0.28; 'environment': 0.29;
'asked': 0.29; 'error': 0.29; 'whole': 0.30; 'url-ip:188/8': 0.31;
'program': 0.31; 'question': 0.32; 'do.': 0.32; 'happening': 0.32;
'issues.': 0.32; 'logical': 0.32; 'mission': 0.32; 'python-list':
0.32; 'right,': 0.32; 'structure': 0.32; 'unexpected': 0.32;
'unless': 0.32; 'but': 0.32; "i'm": 0.33; 'there': 0.33; 'back':
0.67; 'caught': 0.67; 'maximum': 0.67; 'technical': 0.67; 'time,':
0.67; 'right': 0.68; 'afford': 0.69; 'cc:': 0.69; 'settle': 0.69;
'times': 0.69; 'conditions': 0.70; 'establish': 0.70;
'experience.': 0.70; 'them,': 0.70; 'ignore': 0.71; 'interesting':
0.71; 'care': 0.71; 'market': 0.71; 'free': 0.72; 'tools': 0.74;
'causing': 0.75; 'read,': 0.75; 'features': 0.75; 'capacity':
0.76; 'guarantee': 0.76; 'proven': 0.76; 'business': 0.77; 'hire':
0.78; 'sent:': 0.78; 'field': 0.78; 'purchase': 0.78; 'out.':
0.80; 'happens': 0.84; '3.0': 0.84; 'afar,': 0.84; 'ambitious':
0.84; 'catch': 0.84; 'certainty': 0.84; 'elsewhere.': 0.84;
'handed': 0.84; 'intentions': 0.84; 'itself.': 0.84; 'moon': 0.84;
'realities,': 0.84; 'received:mail-qk1-x735.google.com': 0.84;
'spying': 0.84; 'start?': 0.84; 'walls': 0.84; 'you?': 0.88;
'errors,': 0.91; 'expensive': 0.91; 'mistakes': 0.91; 'race':
0.93; 'turned': 0.95
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1698196761; x=1698801561; darn=python.org;
h=content-language:thread-index:content-transfer-encoding
:mime-version:message-id:date:subject:in-reply-to:references:cc:to
:from:from:to:cc:subject:date:message-id:reply-to;
bh=yWmC+i8WrjLp+7aan28PfmgW4ANJ+AJdy8WG+/06RJg=;
b=CADbUNHBtMoAINbCVvlGu9PlPTP5Ec/t33yPoPoYFYmGIC6VZbwxR6fil8tUAu8kG7
fpVnEhTuAk871lsioXS2Ej3voxlbA+EZyuMRxIr/rEpQeiqtO8rljPwthYQ1Qnh7274R
LdLgWcQ9r4LIUNF8msbN4JGnvnUo2KIEKhDQ5/f2XY0cnv1dRFhBpuXzeUubaoMC2++v
iJ7M5/HvLcaqqgeJKTR/p8Wm6sXd6CSTQJV+rF+UoD9XQISVMbhr79X+qqyH/MDkgscl
+/+Me8YipXXGq33SD3XmbdMd+ZzwsGc/HGwzJzCZLm/EWE92zb06+I1oJ16+WoGJ+oq8
660g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1698196761; x=1698801561;
h=content-language:thread-index:content-transfer-encoding
:mime-version:message-id:date:subject:in-reply-to:references:cc:to
:from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=yWmC+i8WrjLp+7aan28PfmgW4ANJ+AJdy8WG+/06RJg=;
b=EJSdUjMiDiaa4U/0UVQ/qeYNlRgn4ObKIc1DdppFBJiZ/r1MU4CO4nBkd74piQuZX8
QTq/Cr+2MJGbm8FjeFtlvfrXYX+HeRJNCdP2zhktld14LdDDrcQDXxzBWrNU0liyj3KJ
1hLujEM5wBBBemENldd9y1B3L6H/kbIrIvN0QU4CFnbBBn2z0i1nXpxeONt8/oB9QjX9
r1+bZF7rvRf8iPAsIf2GEOrbui465CEAN3StsEKqEMaXo8eL7LMqlthN+3NCOhvEtF4M
h2eUoMb7CaRSkgYX/QxDjKiucsz0x5CAteGhatpKKn3QVywYlo/3FJDFjVGVNatsLoM/
DjPQ==
X-Gm-Message-State: AOJu0Yyz1ac2VvD558s54QqSV3AX5lAWeo/E7lLGfnRd39SMK+vtLN3D
TF317OAcvwyxqmK/Kqz5xyI=
X-Google-Smtp-Source: AGHT+IESKrgP4czUoMIF49366dynjxxoKFTeguAq1cNlQ3iIZCdYwBzAFs6dW76Vy7amm+/U8RKwmg==
X-Received: by 2002:a05:620a:8190:b0:775:a3fc:a9d1 with SMTP id
ot16-20020a05620a819000b00775a3fca9d1mr11296394qkn.23.1698196761108;
Tue, 24 Oct 2023 18:19:21 -0700 (PDT)
In-Reply-To: <CAPpdf5_WVe07YVm-dZVV1mpZSWB6v4Z0itRsfYxYVdt8bWt0Ng@mail.gmail.com>
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQK+Z3bM93aYhx2z6K+K8JZYCNCqhQGSd+h2AkMP9M+ucj+r0A==
Content-Language: en-us
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <062901da06e1$46a074e0$d3e15ea0$@gmail.com>
X-Mailman-Original-References: <CAPpdf58WXyJs+Rd_GnbS-6dW8bPNt5DsojnVN5_ep+ebNx36Pw@mail.gmail.com>
<58b56dbe-646c-4a94-8102-ac2cf6efe233@tompassin.net>
<CAPpdf5_WVe07YVm-dZVV1mpZSWB6v4Z0itRsfYxYVdt8bWt0Ng@mail.gmail.com>
 by: - Wed, 25 Oct 2023 01:19 UTC

Whoa!

The question cannot be about whether it is possible to prove any abstract program will be correct and especially not on real hardware that can fail in various ways or have unexpected race conditions or interacts with other places such as over the internet.

It has been quite well proven (think Kurt Gödel) that any system as complex as just arithmetic can have propositions that can neither be proven as true or as false and could be either. So there will be logical setups, written perhaps into the form of programs, that cannot be proven to work right, or even just halt someday when done.

The real question is way more detailed and complex. How does one create a complex program while taking care to minimize as well as you can the chances it is flawed under some conditions. There are walls of books written on such topics and they range from ways to write the software, perhaps in small modules that can be tested and then combined into larger subunits that can also be tested. There are compilers/interpreters/linters and sometimes ways of declaring your intentions to them, that can catch some kinds of possible errors, or force you to find another way to do things. You can hire teams of people to create test cases and try them or automate them. You can fill the code with all kinds of tests and conditionals even at run time that guarantee to handle any kinds of data/arguments handed to it and do something valid or fail with stated reasons. You can generate all kinds of logs to help establish the right things are happening or catch some errors.

But all that gets you typically is fewer bugs and software that is very expensive to create and decades to produce and by that time, you have lost your market to others who settle for less.

Consider an example of bit rot. I mean what if your CPU or hard disk has a location where you can write a byte and read it back multiple times and sometimes get the wrong result. To be really cautions, you might need your software to write something in multiple locations and when it reads it back in, check all of them and if most agree, ignore the one or two that don't while blocking that memory area off and moving your data elsewhere. Or consider a memory leak that happens rarely but if a program runs for years or decades, may end up causing an unanticipated error.

You can only do so much. So once you have some idea what language you want to use and what development environment and so on, research what tools and methods are available and see what you can afford to do. But if you have also not chosen your target architecture and are being asked to GUARANTEE things from afar, that opens a whole new set of issues.

I was on a project once where we had a sort of networked system of machines exchanging things like email and we tested it. A while later, we decided to buy and add more machines of a new kind and had a heterogeneous network. Unfortunately, some tests had not been done with messages of a size that turned out to not be allowed on one set of machines as too big but were allowed on the other that had a higher limit. We caught the error in the field when a message of that size was sent and then got caught in junkmail later as the receiving or intermediate machine was not expecting to be the one dealing with it. We then lowered the maximum allowed size on all architectures to the capacity of the weakest one.

This reminds me a bit of questions about languages that are free and come pretty much without guarantees or support. Is it safe to use them? I mean could they be harboring back doors or spying on you? Will you get a guarantee they won't switch to a version 3.0 that is incompatible with some features your software used? The short answer is there are no guarantees albeit maybe you can purchase some assurances and services from some third party who might be able to help you with the open-source software.

Unless your project accepts the realities, why start?

-----Original Message-----
From: Python-list <python-list-bounces+avi.e.gross=gmail.com@python.org> On Behalf Of o1bigtenor via Python-list
Sent: Tuesday, October 24, 2023 7:15 PM
To: Thomas Passin <list1@tompassin.net>
Cc: python-list@python.org
Subject: Re: Question(s)

On Tue, Oct 24, 2023 at 6:09 PM Thomas Passin via Python-list
<python-list@python.org> wrote:
>
snip
>
> By now you have read many responses that basically say that you cannot
> prove that a given program has no errors, even apart from the hardware
> question. Even if it could be done, the kind of specification that you
> would need would in itself be difficult to create, read, and understand,
> and would be subject to bugs itself.
>
> Something less ambitious than a full proof of correctness of an
> arbitrary program can sometimes be achieved. The programming team for
> the Apollo moon mission developed a system which, if you would write
> your requirements in a certain way, could generate correct C code for them.
>
> You won't be doing that.
>
> Here I want to point out something else. You say you are just getting
> into programming. You are going to be making many mistakes and errors,
> and there will be many things about programming you won't understand
> until you get some good solid experience. That's not anything to do
> with you personally, that's just how it will play out.
>
> So be prepared to learn from your mistakes and bugs. They are how you
> learn the nuts and bolts of the business of programming.
>

I am fully expecting to make mistakes (grin!).
I have a couple trades tickets - - - I've done more than a touch of technical
learning so mistakes are not scary.

What is interesting about this is the absolute certainty that it is impossible
to program so that that program is provably correct.
Somehow - - - well - - to me that sounds that programming is illogical.

If I set up a set of mathematical problems (linked) I can prove that the
logic structure of my answer is correct.

That's what I'm looking to do with the programming.

(Is that different than the question(s) that I've asked - - - dunno.)

Stimulating interaction for sure (grin!).
--
https://mail.python.org/mailman/listinfo/python-list

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor