Principles of Programming Languages Write an essay on one of the following topics. You can choose which one. (A) Discuss the trade-offs involved when choosing between imperative programming and pure functional programming. (B) Briefly describe various forms of polymorphism, and discuss their advantages and disadvantages in detail. (C) Briefly describe the mechanisms involved in object-oriented programming and discuss the advantages and disadvantages of this programming style in detail. (D) Briefly describe various language features involving control flow and discuss their advantages and disadvantages in detail. In general, try to keep the description of the various features short and focus on their discussion instead. Your mark will be determined according to the following guidelines. • The length of your essay and the quality of your English is not important. • Originality, that is, coming up with your own thoughts and your own way to structure the presentation will be rewarded. Just copying points from the lecture notes will not lead to a good mark. • Try to substantiate your claims. I will gauge your arguments by how well I am able to follow them. For instance,if you claim that a certain feature improves or decreases readability,you should explain why you think so, or at least give an example. • Inclusion of examples will be rewarded. (The programming language used does not matter.) • If I receive two essays that are too similar to each other, both authors will fail. Please upload your essay to the homework vault in IS as either a PDF file or as a plain text file. The deadline is Sunday, June �th, ��:��. If you take the state exam and need your result by a certain date, please add a short note saying so. �