Path: utzoo!attcan!uunet!mcvax!ukc!stl!stc!praxis!hilbert!drb From: drb@praxis.co.uk (David Brownbridge) Newsgroups: comp.lang.misc Subject: Re: Universal Programming Languge (was: Universal OS) Message-ID: <2297@newton.praxis.co.uk> Date: 11 May 88 15:25:53 GMT References: <769@imagine.PAWL.RPI.EDU> <76700017@uiucdcsp> <843@actnyc.UUCP> <1556@vaxb.calgary.UUCP> <764@l.cc.purdue.edu> <4658@ihlpf.ATT.COM> <3558@psuvax1.psu.edu> Sender: news@praxis.co.uk Reply-To: drb%praxis.uucp@ukc.ac.uk (David Brownbridge) Organization: Praxis Systems plc, Bath, UK Lines: 66 In article <3558@psuvax1.psu.edu> schwartz@gondor.cs.psu.edu (Scott Schwartz) writes: >I'm not convinced that "mathematics" (whatever that is) would make >anything like a decent programming language. > >First of all, assuming you agree that more is better in these things, >why not use English as you programming language? ... I'm not convinced mathematics is a useful *programming* language either, but it can be used as an excellent *specification* language. At Praxis we are using the "Z" notation which combines natural language text with a *stylised* form of mathematics. Z is being developed at Oxford University (England :-)). The key ideas of Z are that the natural language text is a commentary on the maths and that the maths has a well defined interpretation. Z adds a structuring concept called a "schema" which enables pieces of the maths to be named, combined, re-used etc in powerful ways. A schema is a set of variables and a predicate relating their values. Z contains a mathematical core that can be extended *in Z*, for example by adding digraphs if you happen to need them in your spec. We are using Z to specify a large CASE system. I would find an natural language spec of such a system hopelessly imprecise and an executable (programming language) specification far too concrete. Using maths you can quickly *denote* the answer in a (possibly) non-computable way which is pleasant but more precise than natural language alone. The hard part is deciding on the program once the spec is defined :-) The mathematical basis of Z is given in %T Understanding Z %A J M Spivey %I Cambridge University Press %D 1988 %O ISBN 0-521-33429-2 For an earlier introduction: %T Specification of the UNIX Filing System %A C Morgan %A B Sufrin %J IEEE Transactions on Software Engineering %V SE-10 %N 2 %P 128-142 David Brownbridge drb%praxis.uucp@ukc.ac.uk Praxis Systems plc Phone: +44 225 444700 20 Manvers St Bath Avon, UK BA1 1PX ------------------------------------------------------------------------------ .-Signature------------------------------ | s : STRING |---------------------------------------- | s elm (wittyNotes union sarkyComments) | 0 <= length(s) < Pin.noOfMolecules ` --------------------------------------- | mySignature : {Signature} ------------------------------------------------------------------------------