Obsolete computers may have to be maintained if the software used to build the system (compiler, linker, etc.) is not available for newer hardware. This situation can arise of the compiler vendor has gone out of business and no-one else is supporting their system. It may not be possible to use a compiler on a newer system as the code produced may be different. It can also arise when programs are developed in a programming language that is no longer used – it may be cheaper to maintain the obsolete hardware to run the compiler than to buy a new compiler for occasional use.