37 ;;Quote: in NIL, communication by transferring ownership of a message instead of by value (copy) or by reference
|
37 ;;Quote: in NIL, messages received from an output port in FIFO order; but messages from multiple ports are only fairly merged
|
37 ;;Quote: queued synchronous communication by building a returnable message called a 'callrecord'
|
37 ;;Quote: in NIL, a 'select' will wait until an input port has a true guard
|
37 ;;Quote: a queued model of communication allows local time for each process and avoids issues of simultaneity
|
37 ;;Quote: when a receiver receives a message its local time is after the local time of the sender when sending the message
|
37 ;;Quote: in NIL, when a process terminates, it sends an obituary message to its owner on a specified port
|
37 ;;Quote: in NIL, a process can outlive its owner if its ownership is transferred by sending the process in a message
|
38 ;;Quote: in NIL, variable and file stores are the same
|
38 ;;Quote: ports are input or output; they are typed by what messages they can send or receive; only same type ports can communicate
|
39 ;;Quote: in NIL, an exception invokes an exception handler; this gives every statement a defined result; undefined is impossible
|
39 ;;Quote: languages in which erroneous programs have arbitrary side-effects are non-secure because every module must be proven error free before any can be
|
39 ;;Quote: NIL limits side-effects by erroneous programs to inappropriate results of the correct type; by typestate checking
|
39 ;;Quote: typestate captures the degree of initialization of simple and composite objects
|
39 ;;Quote: an operation in NIL has unique typestate preconditions and unique typestate postconditions for normal and exception exits
|
39 ;;Quote: when multiple control paths join, typestate is greatest lower bound of incoming typestates
|