decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Dijkstra and Formal Programming. | 484 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Dijkstra and Formal Programming.
Authored by: emmenjay on Wednesday, September 05 2012 @ 12:32 PM EDT
Hi Bill

I have read the two Dijkstra papers you mentioned. (My progress has been
glacial as my health has not been good).

On the second paper: "EWD498: How do we tell truths that might hurt?",
I won't comment much. It sounds like a programmer bemoaning the current (at
that time) state of the art in programming tools. Much of what he says is
reasonable, but I'm not certain where it fits in our discussion. If I've missed
something important (quite likely) please enlighten me.

The first paper: "EWD 924: On a cultural gap" is interesting, but
possibly less relevant than it might have been.

If I'm understanding correctly, Dr Dijkstra is referring to a technique called
"Formal Programming". This is a fascinating technique but its impact
on modern software developemnt still remains fairly small. See also David
Gries, "The Science of Programming", Springer, 1981.

To grossly oversimplify, formal programming goes roughly as follows:
-- Describe a set of "preconditions" -- the state at the start of
program execution.
-- Describe a set of "postconditions" -- the desired state at the end
of program execution.
-- Mathematically derive the logic to go from pre to post.

Now in theory, this is a very powerful way to develop software. After you
finish the software you have great confidence in its correctness, which has been
proven by the development process.

However formal programming never really caught on, except for a few small areas.
One of the main problems is the complexity of the proofs. For anything more
than a trivial project, the likelihood of errors in the proof approaches 100%.

The cure for this was seen to be automating the proof process. Some interesting
work was done on this by Prof. Ken Robinson et. al. at Uni of NSW (Australia) in
the late '80s, but I lost contact with that group and don't recall seeing
anything come of the work. A couple of years ago, I met a post-doc student at
UNSW who told me that the automation was just about complete and was working
reliably. I expect that we may see formal programming make a comeback on the
strength of that, but so far I haven't seen anything.

So I perceive that Dr Dijkstra is referring to how he things software ought to
be, rather than how it is.

While I have a little experience in this are, I am far from an expert. If I
have it mixed up, please explain it to me.

Regards

Michael J Smith.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )