Programming languages with implicit parallelism include Axum, BMDFM, HPF, Id, LabVIEW, MATLAB M-code, NESL, SaC, SISAL, ZPL, and pH.
[1] If a particular problem involves performing the same operation on a group of numbers (such as taking the sine or logarithm of each in turn), a language that provides implicit parallelism might allow the programmer to write the instruction thus: The compiler or interpreter can calculate the sine of each element independently, spreading the effort across multiple processors if available.
A programmer that writes implicitly parallel code does not need to worry about task division or process communication, focusing instead on the problem that his or her program is intended to solve.
Many of the constructs necessary to support this also add simplicity or clarity even in the absence of actual parallelism.
If implicit parallelism is desired, this creates a new requirement for constructs and keywords to support code that cannot be threaded or distributed.