1. A method for programming an integrated circuit, the method comprising: (a) using a first program construct to provide for execution of a computational block in parallel; (b) using a second program construct to provide for automatic indexing of reference to a buffer object; (c) using a third program construct for maintaining a previous value of a variable between process invocations; and (d) using a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time.