computer memory management methodology in which the runtime system detects and frees unused memory automatically