Programmable smart machines: A hybrid neuromorphic approach to general purpose computation