[Edu-sig] Off topic musings
alan.gauld@bt.com
alan.gauld@bt.com
Sun, 19 Aug 2001 18:00:06 +0100
Some time ago I posted the following musings to my work
colleagues and a few of us chased it around for a while.
I came across it recently and thought the ideas might be of some
interest to the members of these lists. If anyone knows of
resources please let me know...
----------- Included text ---------------
I read a collection of papers on Software Engineering recently
published by the IEEE and edited by Professor Richard Thayer
(and his friend).
One recurring theme in these "State of the Practice" papers
was the lack of a fundamental theoretical basis for computing.
i.e. there's nothing comparable to the laws of physics in
software engineering.
I started thinking and doodling about what the fundamentals
are and came up with several notions (ideas would imply
something far too well formed!) These are based around
the concept that software manipulates data or more correctly
"information"(no surprises there! :). However most
information theory (Shannon et al) relates to bits.
Far too low level to be useful.
That started me thinking about levels of information and I
came up with 3 layers of information - rather like an
OSI comms model:
1/ Physical - bits/bytes, defined by the machine architecture
operations are CPU specific, include bitwise OR/AND/NOT
and binary arithmetic...
2/ Implementation/Environment - data types defined by the programming
environment - object in Smallktalk; int, float, char in C
etc...
Operations include built in operators for arithmetic,
boolean logic and I/O.
[Question: Where do collections: arrays, lists etc fit into the
layer proposal?]
3/ Application - User defined data types - records, files,
RDBMS Tables etc
Operations are user defined functions/procedures etc.
Other candidate layers include "Standard libraries" etc, but
I rejected these as a subset of either Implementation or
Application layers.
To be useful any fundamental basis of software would have to
express concepts which applied with equal validity across all
layers. - ie not be dependant on data format, or semantics but
simply relate to *relative* information content. Operations
would need to be expressable in terms of data transforms
across and within layers.
I could go on (onto the nature of operations!) but that's
probably enough for now.
Now the big question is:
Since I am sure this isn't original, who has done this stuff
before? - Where can I get papers or books on fundamental
information representation/transformation theory? I assume
there must be something? somewhere?
[ Note: I am not talking about Knowledge Engineering which
has more to do with how information is stored and processed
than what information is, its empirical qualities etc... ]
Alan Gauld
BT computing partners
Tel : 0141 220 8795
Fax : 0141 248 1284