Monday, April 7, 2014

Writing Like Compiling

v0.1


There has been suggestion to write programs like writing articles [2].  But I am thinking the opposite direction: could we write articles like writing programs? There is an interesting article that makes such analogy for novels [3]. While as a grinding PhD student, I am more interested in applying it to academic paper writing. And in this article, I would like to discuss the connection between writing an academic paper and compiling a program.

When a programmer has written some source code, it needs to be compiled to machine-understandable format, by a program called compiler. This is similar to writing a paper, in which you try to translate the thoughts in your mind to a form that is understandable to others. When compiling a program, there are typically many passes to process the source code and transform them step by step towards the final form. Each pass usually focuses on a specific task. Such architecture simplifies the design of compiler and enables extensions in the future. When writing a paper, we could do the same thing by first write an awful version, then improve it through multiple passes. In each pass, we focus on one goal. Below is a simple example:

  1. Make sure that the paper does not miss any important information.
  2. Make sure that the story line of the whole paper makes sense.
  3. Make sure that the core concepts are correctly defined.
  4. Make sure that terminologies are consistent and sentences are correct.
  5. Improve line by line and make the paper readable (might have a lot of redundant information)
  6. Revise the paper by removing redundant information.
  7. ...
This method definitely cannot guarantee a good paper. After all, the quality of the paper is determined by the quality of the research. However, it can at least reduce the anxiety of writers. When looking at an aghast draft, they won't feel panic and overwhelming. They can directly start from pass 1:)



References:

[1]. Picture. http://uploads3.wikipaintings.org/images/m-c-escher/drawing-hands.jpg

[2]. Literate programming. http://en.wikipedia.org/wiki/Literate_programming

[3]. 金庸笔下的良好代码风格. http://blog.sina.cn/dpool/blog/s/blog_6a55d6840101ek3y.html (In Chinese)

No comments:

Post a Comment