compile program