daveb@geac.UUCP (David Collier-Brown) (03/25/88)
In article <25930@cca.CCA.COM> g-rh@CCA.CCA.COM.UUCP (Richard Harter) writes: | ... then there are programs of length N and execution time | O(N) in language B such that any equivalent program in language A requires | either O(N logN) execution time or O(n *exp(N)) space, or some combination | thereof. By this criteria the goto is more powerful than the while-loop. | The hierarchy of strengths runs | | while-loop | forever-loop-with-multiple-escapes | goto | procedure-invocation-and-return | computed-goto/switch | | The switch construct is equivalent in power to the computed goto. | | This measure of power is unambiguous. One can also speak of the expressiveness | of a construct, in the sense of what can be easily done in the language. | Although this is probably the most useful criteria (and I suspect what you | really) meant it is obviously vague and subjective. Ah, now that's interesting. I wonder if we can define a measure for expressiveness in like terms, and judge fairly (at the "big-O" level) between them. I envisage something like expressiveness::= (to + from) to::= space (in characters) occupied by a given construct from::= time (in character-transformations) to decompose the construct into its primitives Specifically, I see an if-else as to = "if (expression) { statement } else { statement }" = 40 characters from = "(expression) ifgoto { statement goto } { statement }" = 8 added + 4 removed = 12 characters Therefore an if-else costs 40 units to write, and 12 more units to write/read as a transformation into simpler terms. Yes, I well realize I'm bullshitting with the character counting. This is a proposed "proof of concept" of a rather fuzzy idea. --dave (try it on Dijkstra's if's and do's) c-b -- David Collier-Brown. {mnetor yunexus utgpu}!geac!daveb Geac Computers International Inc., | Computer Science loses its 350 Steelcase Road,Markham, Ontario, | memory (if not its mind) CANADA, L3R 1B3 (416) 475-0525 x3279 | every 6 months.