Programming abstractions in C : a second course in computer science - Roberts, Eric S (Addison-Wesley, 1998)