This paper describes the concept of language-oriented programming, which is a novel way of organising the development of a large software system, leading to a different structure for the finished product. The approach starts by developing a formally specified, domain-oriented, very high-level language which is designed to be well-suited to developing ''this kind of program''. The development process then splits into two independent stages: (1) Implement the system using this ''middle level'' language. (2) Implement a compiler, translator or interpreter for the language, using existing technology. The approach is claimed to have advantages for domain analysis, rapid prototyping, maintenance, portability, user-enhanceable systems, and reuse of development work, while also providing high development productivity. We give an example where the method has been used very successfully (in conjunction with rapid prototyping) in the development of a large software system: a reverse engineering tool. A major benefit of this approach to software development, as compared to the usual sequential waterfall model is the speed with which products can be brought to market. This is due to concurrent engineering: the effective overlap of development stages. Finally, the middle-out development style is compared and contrasted with the more usual top-down, bottom-up and outside-in development methods.
CITATION STYLE
Pickering, R., & Eason, K. (2016). Language-Oriented Programming. In Beginning F# 4.0 (pp. 241–264). Apress. https://doi.org/10.1007/978-1-4842-1374-2_11
Mendeley helps you to discover research relevant for your work.