campbell@maynard.BSW.COM (Larry Campbell) (04/12/88)
The brouhaha about gotos being the only clean way to exit out of nested loops emphasizes one of C's weakest areas -- condition handling. It is difficult and tiresome in C to write reliable, robust system-level code because of its lack of a modern condition handling facility. By condition handling, I mean the ability to signal a condition (not to be confused with the signal(2) system call) and have the stack unwound, executing any declared condition handlers along the way. Good examples of this facility can be found in Common Lisp, BLISS, and the DEC Western Research Lab's Modula-2 compiler (which is Powell's plus a lot of good new stuff). setjmp/longjmp are feeble and stunted in comparison. Note that this is not a new idea. It was pioneered in the late 1960s by Multics. I am given to understand the Primos (apparently patterned after Multics) also has such a facility. The lack of condition handling is one of the many reasons I dislike C. -- Larry Campbell The Boston Software Works, Inc. Internet: campbell@maynard.bsw.com 120 Fulton Street, Boston MA 02109 uucp: {husc6,mirror,think}!maynard!campbell +1 617 367 6846