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 , 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 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 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 , 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 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 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 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. <EOS>