Prototyping is defined in the Dictionary of Computing, 3rd Ed., Oxford University Press, New York, NY, 1991 as follows:
Development of a preliminary version of a software system in order to allow certain aspects of that system to be investigated. Often the primary purpose of a prototype is to obtain feedback from the intended users; the requirements specification for the system can then be updated to reflect this feedback, and so increase confidence in the final system. Additionally (or alternatively) a prototype can be used to investigate particular problem areas, or certain implications of alternative design or implementation decisions.
Rapid Prototyping is a technique where a prototype is developed soon after initial system requirements are gathered from users. This prototype, which mainly concentrates on the system's interface, is shown to users as soon as it is ready. Users interact with it while developers are present. Developers observe user interactions with the prototype and ask questions so that feedback can be obtained and project requirements further refined. This process is repeated several times, with more and more functionality added to the prototype, until users are satisfied with the system's behaviour. Oftentimes, prototyping lasts throughout the system development life span.
Users have continual input into the system that they will eventually depend upon in a production setting. They are always involved in design and can help make sure they will get the product they want. In addition, the prototype grows into the final product with little effort and resources lost during design. This is known as evolutionary prototyping, as opposed to using a prototyping tool which cannot ever implement the final system or using a throw-away prototype.
[Information from the Home page of Professional Analytical Systems and Services, Inc.]