Declarative versus imperative