Practical Aspects of Declarative Languages