 In computer programming, the subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit cannot be used in programs wherever that particular task should be performed. Subprograms may be defined within programs, or separately in libraries that can be used by many programs. In different programming languages, the subroutine may be called a procedure, a function, a routine, the method, or a subprogram. The generic term callable unit is sometimes used.1. The name subprogram suggests a subroutine behaves in much the same way as a computer program that is used as one step in a larger program or another subprogram. The subroutine is often coded so that it can be started several times and from several places during one execution of the program, including from other subroutines, and then branch back return to the next instruction after the call, once the subroutine's task is done. While the idea of a subroutine was initially conceived by John Mulchley during his work on any act to Norris Wilkes, David Wheeler, and Stanley Gill are generally credited with the formal invention of this concept, which they termed a closed subroutine 3 for a contrasted with an open subroutine or macro.5. Subroutines are a powerful programming tool.6 and a syntax of many programming languages includes support for writing and using them. Judicious use of subroutines, for example, through the structured programming approach will often substantially reduce the cost of developing and maintaining the large program, while increasing its quality and reliability.7 subroutines, often collected into libraries, are an important mechanism for sharing and trading software. The discipline of object-oriented programming is based on objects and methods which are subroutines attached to these objects or object classes. In the compiling method called threaded code, the executable program is basically a sequence of subroutine calls.