What are Simulators? What are Optimizers?

Simulators and optimizers refer to software and hardware to create a software duplicate of a product or process for training, testing, modification, integration or quality improvement, often to verify programming prior to application.