Abstract compilation