Retrofitting Language-oriented Design with SugarJ

Stefan Fehrenbach · 2011

Language-oriented design embraces the use of language-based abstrac-tions to improve understandability, extensibility, and maintainability of code. Most existing applications are not designed and implemented in a language-oriented way. The use of domain-specific language extensions could improve them in many regards but rewriting them from scratch is far too tedious. With SugarJ you can incrementally and independently in-troduce language-oriented design techniques to those parts of your legacy code that benefit the most from them. The result is a modernised code base that is less likely to contain bugs, and easier to extend and maintain. Acknowledgements I would like to express my deepest gratitude to all those who made it possi-ble for me to complete this thesis. I am deeply indebted to my supervisors Prof. Ostermann who asked excellent questions that shaped my understand-ing of my work, and Sebastian Erdweg whose help, encouragement, and stimulating suggestions are reflected in every good part of this thesis. I am heartily grateful to my friends and family for being patient and un-derstanding and supporting me during the whole process of research and writing. I would like to give my special thanks to my friend M. S. for proof reading, suggestions and enduring rants, as well as to my mother and my friend U. W. for having been, and still being, wonderful persons and role models for both academia and real life. Lastly, I offer my regards to every single person who is a source of knowl-edge, inspiration, and motivation to somebody else. You make the world a better place.

Read the paper · More papers on PaperTik