A method of configuring a conveyor belt processor, the method comprising: receiving a program configured to run as software; determining a first portion of the program to run in hardware based on computational complexity, and a second portion of the program to run as software; determining, based on the first portion, a plurality of interconnected reprogrammable hardware operator blocks (210, 212, 214, 216, 218), comprising one or more transformation functions that take input data from a prior data bus, performs one or more transformations on the input data, and outputs transformed input data via an output data bus; characterized in that the conveyor belt processor is a reconfigurable hardware platform to interconnect a chain of reconfigurable hardware operator blocks (210, 212, 214, 216, 218) to manipulate data as the data moves down the chain, and in that the method further comprises: configuring the plurality of interconnected reprogrammable hardware operator blocks (210, 212, 214, 216, 218) to execute on one or more reprogrammable processors; executing the second portion via one or more front-end processors with an architecture different than the one or more reprogrammable processors; sending first data from the one or more front-end processors to the one or more reprogrammable processors; executing the first portion via the one or more reprogrammable processors; sending second data from the one or more reprogrammable processors to the one or more front-end processors, the second data being derived from the first data; and determining result data derived from the second data. receiving a program configured to run as software; determining a first portion of the program to run in hardware based on computational complexity, and a second portion of the program to run as software; determining, based on the first portion, a plurality of interconnected reprogrammable hardware operator blocks (210, 212, 214, 216, 218), comprising one or more transformation functions that take input data from a prior data bus, performs one or more transformations on the input data, and outputs transformed input data via an output data bus; characterized in that the conveyor belt processor is a reconfigurable hardware platform to interconnect a chain of reconfigurable hardware operator blocks (210, 212, 214, 216, 218) to manipulate data as the data moves down the chain, and in that the method further comprises: configuring the plurality of interconnected reprogrammable hardware operator blocks (210, 212, 214, 216, 218) to execute on one or more reprogrammable processors; executing the second portion via one or more front-end processors with an architecture different than the one or more reprogrammable processors; sending first data from the one or more front-end processors to the one or more reprogrammable processors; executing the first portion via the one or more reprogrammable processors; sending second data from the one or more reprogrammable processors to the one or more front-end processors, the second data being derived from the first data; and determining result data derived from the second data. configuring the plurality of interconnected reprogrammable hardware operator blocks (210, 212, 214, 216, 218) to execute on one or more reprogrammable processors; executing the second portion via one or more front-end processors with an architecture different than the one or more reprogrammable processors; sending first data from the one or more front-end processors to the one or more reprogrammable processors; executing the first portion via the one or more reprogrammable processors; sending second data from the one or more reprogrammable processors to the one or more front-end processors, the second data being derived from the first data; and determining result data derived from the second data.