Computation by abstract devices