Finitely Recursive Programs: Decidability and Bottom-up Computation.