Intensional Programming Languages ∗