This is the archived website of SI 413 from the Fall 2012 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.
Use a separate sheet of paper for your answers! Everything should be submitted in one packet, all printed out for me to see.
Consider the following SPL code:
new f := lambda a { new g := lambda b { ret := b + b/2; }; new h := lambda c { new x := a*c; ret := lambda d { ret := g@d < x; }; }; ret := h; }; new foo := f@3@4; write foo@8; foo := 20;
Here are the frames and closures that exist just before the last line is executed. (Note: it would be good practice to see if you could recreate this diagram yourself!)
Write a C++ program that prints (exactly) the string "Hello, world!" (followed by a newline), and demonstrates assignments using as many different kinds of l-types that you can in C++.
For full credit, your assignments should be somehow meaningful or useful. So for example, the program
int a = 3; a++ = 29; cout << "Hello, world!" << endl;
would not receive full credit, because the assignments with a
had nothing to do with the output. Something like
string s = "Hello, vorld!"; s[7] = 'w'; cout << s << endl;
would be more like it. But of course you will need to have more assignments than this to demonstrate all the different kinds of l-values!
Print out your code and turn it in, labeling all the different l-values that you use.
In addition, you must submit your code electronically. Name your file ex2.cpp
and submit using the command 413sub hw 09
.