Assignment 6, CSCI 5535

Due Date: December 4th 5:00 p.m. (December 11th 5:00 p.m. for CATECS)

setjmp/longjmp are "library" routines in C and C++ that perform a function similar to continuations in Scheme and SML. Read up about setjmp/longjmp in any C text or look at the man page for setjmp/longjmp on any UNIX machine. Discuss how setjmp/longjmp differ from SML continuations. Give an example using callcc in SML that would be very hard to implement using setjmp/longjmp in C. Also, Steele in his talk "Growing a language" notes that setjmp/longjmp are not what he would consider as true library functions since they actually change the meaning of the language. Explain why this is the case. Limit your answer to 1 typed page.