Ravi Mohan's Blog

Friday, October 28, 2005

An Exercise In Writing Part 2

I have taken the rewriting for clarity exercise one step further.

The original paragraph is

"We have seen how interpreters can be used to model and explain the behaviour of programming languages. The explicit treatment of environments serves to explain scope and identifier lookup rules and the modelling of procedures as closures explains how procedures use lexical scope to make their behaviour independent of the environment in which they are invoked. Our interpreters are written in scheme, but are suitable for implementation in many other languages because they use ordinary data structures and procedure calls."

My best effort so far (without adding any extra information) gives

"We write interpreters to understand how programming languages work. How we design the components of an interpreter determines how the corresponding features of the defined language behave. For example, how we implement environments defines the rules of scoping and identifier lookup. If we model a procedure as a closure, we can grant it lexical scope, freeing its behaviour from its invocation environment.

All our interpreters use ordinary data structures and procedure calls. So we can implement them in any language (including Scheme)."