We have created a number of prototype and proof-of-concept programs, typically using a scripting language such as PERL or Python. These range from relatively simple aggregations of scripts and filters to demonstrate and isolate system problems, to multi-threaded operator GUIs with Database access and threshold-based alarmed transaction monitoring.
A typical requirement for a prototype is that it can be produced quickly - we typically do this using Rapid Application Development (also known as Agile Development). Varying amounts of functionality can be included, depending on the reason for the prototype effort.