4 ms·
> I think we need to train people to write formal specifications I don't think that is really a matter of training. You have to start with people who can think
by denton-scratch 4y ago
> I think we need to train people to write formal specifications
I don't think that is really a matter of training. You have to start with people who can think clearly; if they can't think clearly, it's hopeless to expect them to produce formal specs. Very few people can think clearly about difficult subjects.
Of course, you can train people to improve the clarity of their thinking. I think that should be the main purpose of an undergraduate degree.
Writing a formal spec is analagous to writing a program; if you can't program, your program won't work. So writing a formal spec proves that you can think clearly; but if you can think clearly, you can write a program without first writing a formal spec.
- _flux 4y agoWriting a formal spec in itself is a way to introduce clarity to thinking, because when writing it the spec itself lends to asking more and more questions about the things you might not have thought of. More so if there are tools to check your formal spec. But formal spec can be in higher level than the implementation. For example, it could be describing pre- and postconditions without actually stating out how to go from precondition to postcondition. I have noticed programming languages don't tend to ask the writer the right questions in the same way e.g. TLA+ and TLC do.
- valenterry 4y agoThe spec is the hard part. Just look at how many people are complaining about languages that use a statically type system. I wonder how many business people will then not complain about writing clear specs for "AI software". :)