Nick writes:

 As software engineers, what conditions would a program have to fulfill to say 
that a computer was monitoring “itself



It is common for codes that calculate things to periodically test invariants 
that should hold.   For example, a physics code might test for conservation of 
mass or energy.   A conversion between a data structure with one index scheme 
to another is often followed by a check to ensure the total number of records 
did not change, or if it did change that it changed by an expected amount.   It 
is also possible, but less common, to write a code so that proofs are 
constructed by virtue of the code being compliable against a set of types.   
The types describe all of the conditions that must hold regarding the behavior 
of a function.    In that case it is not necessary to detect if something goes 
haywire at runtime because it is simply not possible for something to go 
haywire.  (A computer could still miscalculate due to a cosmic ray, or some 
other physical interruption, but assuming that did not happen a complete 
proof-carrying code would not fail within its specifications.)

A weaker form of self-monitoring is to periodically check for memory or disk 
usage, and to raise an alarm if they are unexpectedly high or low.   Such an 
alarm might trigger cleanups of old results, otherwise kept around for 
convenience.



Marcus


============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
to unsubscribe http://redfish.com/mailman/listinfo/friam_redfish.com
archives back to 2003: http://friam.471366.n2.nabble.com/
FRIAM-COMIC http://friam-comic.blogspot.com/ by Dr. Strangelove

Reply via email to