I have seen both "subroutine" and "routine" used in programming language books. Are they the same concept? What does "sub-" mean?
I guess there are many examples which you might have seen in computer science books, besides the following one from Programming Language Pragmatics, by Scott:
In Section 3.2.2 we discussed the allocation of space on a subroutine call stack (Figure 3.1). Each routine, as it is called, is given a new stack frame, or activation record, at the top of the stack. This frame may contain arguments and/or return values, bookkeeping information (including the return address and saved registers), local variables, and/or temporaries. When a subroutine returns, its frame is popped from the stack.
Thanks.