Self-hosting refers to the use of a computer program as part of the tool chain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger systems. Other programs that are typically self-hosting include kernels, assemblers, and shells.
Several programming languages are self-hosting, in the sense that a compiler for the language, written in the same language, is available. As with a new computer system, the first compiler for a new programming language must be written in another language (in rare cases, machine language).
An Internet hosting service is a service that runs Internet servers, allowing organizations and individuals to serve content to the Internet. There are various levels of service and various kinds of services offered.
A common kind of hosting is web hosting. Most hosting providers offer a combined variety of services. Web hosting services also offer e-mail hosting service, for example.. DNS hosting service is usually bundled with domain name registration.
Generic, yet rather powerful, kind of Internet hosting provides a server where the client can run anything he wants (including web servers and other servers) and has an Internet connection with good upstream bandwidth.
source : http://en.wikipedia.org/wiki/Hosting
Free hosting :