Abstract: This report introduces VCODE, an intermediate language for data-parallel computations. VCODE is designed to allow easy porting of data-parallel languages, such as C*, Paralation-Lisp, and Fortran 8x, to a wide class of parallel machines. It is designed with the joint goals of being simple, expressive, and efficiently implementable. It contains about 50 instructions, most of which manipulate arbitrarily long vectors of atomic values, and includes a set of segmented instructions that are crucial for implementing data-parallel languages that permit nested parallelism, such as Paralation-Lisp and CM-Lisp. The report outlines the VCODE language, discusses many of the design issues, illustrates how data-parallel languages can be mapped onto it, and describes how it can be implemented on massively parallel machines. A complete definition of VCODE is given in the appendix.