1. A computer readable storage device storing computer-executable instructions that, when executed by a computer system, cause the computer system to perform a method comprising: applying a read-only communication operator to an input indexable type to form an immutable computational space, the read-only communication operator applied in a data parallel source code configured for execution on one or more data parallel compute nodes; generating an output indexable type from said application, the output indexable type is a data type forming an immutable computational space; and performing a data parallel algorithm using the output indexable type, wherein the read-only communication operator is based on a template operator that defines one or more of constant accessors, index operators, or subscript operators for the output indexable type, wherein the read-only communication operator includes a template-enclosed code portion that checks a Parent type and range of the input indexable type using a conditional operator that returns a read-only Parent range, wherein the template-enclosed code portion optionally includes an internal casting of the Parent type to prevent a cast inadvertently made to a lvalue-reference of the input indexable type that might occur outside of the template-enclosed code portion, and in case the input indexable type returns its index operators and subscript operators as by-lvalue-references, a template-based conditional base class is implemented to enforce the corresponding return type as a rvalue-reference or a by-value depending on the Parent type.