From a programming point-of-view, garbage is data that has been placed in random access memory space obtained from the operating system that is no longer needed. Freeing the space for reuse is called 'garbage collecting.' In the past, programmers have had to write programs that explicitly requested storage and then returned it to the system when it was no longer needed. (Programs that neglect to return unused storage can be shut down by the operating system.) The term 'garbage collecting' apparently was first used in the LISP programming language. Java is a newer programming language that, like LISP, handles garbage-collecting for the program, freeing the programmer from being concerned about it.