Abstract
Domain-specific languages (DSLs) have been proposed as a solution to ease the development of programs within a program family. Sometimes, however, experience with the use of a DSL reveals the presence of subfamilies within the family targeted by the language. We are then faced with the question of how to capture these subfamilies in DSL abstractions. A solution should retain features of the original DSL to leverage existing expertise and support tools.
The Bossa DSL is a language targeted towards the development of kernel process scheduling policies. We have encountered the issue of program subfamilies in using this language to implement an encyclopedic, multi-OS library of scheduling policies. In this paper, we propose that introducing certain kinds of modularity into the language can furnish abstractions appropriate for implementing scheduling policy subfamilies. We present the design of our modular language, Bossa Nova, and assess the language quantitatively and qualitatively.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Atkins, D.L., Ball, T., Bruns, G., Cox, K.C.: Mawl: A domain-specific language for form-based services. IEEE Trans. Software Eng. 25(3), 334–346 (1999)
Atlas, A., Bestavros, A.: Design and implementation of statistical rate monotonic scheduling in KURT Linux. In: IEEE Real-Time Systems Symposium, Phoenix, AZ, December 1999, pp. 272–276 (1999)
Banachowski, S.A., Brandt, S.A.: The BEST scheduler for integrated processing of best-effort and soft real-time processes. In: Multimedia Computing and Networking, San Jose, CA, vol. 4673 (January 2002)
Brabrand, C., Møller, A., Schwartzbach, M.I.: The <bigwig> project. ACM Trans. Internet Tech. 2(2), 79–114 (2002)
Bracha, G., Cook, W.R.: Mixin-based inheritance. In: Conference on Object-Oriented Programming Systems, Languages, and Applications/European Conference on Object-Oriented Programming, Ottawa, Canada, October 1990, pp. 303–311 (1990)
Bruno, J.L., Gabber, E., Özden, B., Silberschatz, A.: Move-to-rear list scheduling: a new scheduling algorithm for providing QoS guarantees. In: Proceedings of ACM Multimedia, Seattle, WA, pp. 63–73 (November 1997)
Cottet, F., Delacroix, J., Kaiser, C., Mammeri, Z.: Scheduling in Real-Time Systems. Wiley, West Sussex (2002)
Proceedings of the Second Conference on Domain-Specific Languages (DSL 1999), Austin, TX (October 1999)
Duda, K.J., Cheriton, D.R.: Borrowed-virtual-time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler. In: Proceedings of the 17th ACM Symposium on Operating Systems Principles, Kiawah Island Resort, SC, December 1999, pp. 261–276 (1999)
Elliott, C.: An embedded modeling language approach to interactive 3d and multimedia animation. IEEE Trans. Software Eng. 25(3), 291–308 (1999)
Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI), Montreal, Canada, June 1998, pp. 236–248 (1998)
Gay, D., Levis, P., von Behren, J.R., Welsh, M., Brewer, E.A., Culler, D.E.: The nesC language: A holistic approach to networked embedded systems. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, San Diego, CA, pp. 1–11 (June 2003)
Guss, C.: Lecture notes: ECSE-421 embedded systems (2004), http://www.ece.mcgill.ca/~info421/
Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys 28(4es) (December 1996)
Jeffay, K., Smith, F.D., Moorthy, A., Anderson, J.: Proportional share scheduling of operating system services for real-time applications. In: IEEE Real-Time Systems Symposium, Madrid, Spain, December 1998, pp. 480–491 (1998)
Jennings, J., Beuscher, E.: Verischemelog: Verilog embedded in Scheme. In: DSL 1999, [8], pp. 123–134 (1999)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of Aspect J. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Lawall, J.L., Le Meur, A.-F., Muller, G.: On designing a target-independent DSL for safe OS process-scheduling components. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 436–455. Springer, Heidelberg (2004)
Lawall, J.L., Muller, G., Duchesne, H.: Language design for implementing process scheduling hierarchies (invited paper). In: ACM SIGPLAN 2004 Symposium on Partial Evaluation and Program Manipulation - PEPM 2004, Verona, Italy, pp. 80–91 (August 2004)
Leijen, D., Meijer, E.: Domain specific embedded compilers. In: DSL 1999, [8], pp. 109–122 (1999)
Liu, C.L., Layland, J.W.: Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the ACM 20(1), 46–61 (1973)
MacQueen, D.B.: An implementation of Standard ML modules. In: LISP and Functional Programming, Snowbird, Utah, pp. 212–223 (July 1988)
Nieh, J., Lam, M.S.: The design, implementation and evaluation of SMART: A scheduler for multimedia applications. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles, Saint-Malo, France, October 1997, pp. 184–197 (1997)
Regehr, J., Stankovic, J.A.: Augmented CPU reservations: towards predictable execution on general-purpose operating systems. In: RTAS 2001, [26], pp. 141–148 (2001)
Proceedings of the 7th Real-Time Technology and Applications Symposium (RTAS 2001), Taipei, Taiwan (May 2001)
Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)
Shin, Y., Choi, K.: Power conscious fixed priority scheduling for hard real-time systems. In: Proceedings of the 36th ACM/IEEE conference on Design Automation Conference, New Orleans, LA, pp. 134–139 (June 1999)
Shivers, O.: A universal scripting framework, or Lambda: the ultimate “little language”. In: Jaffar, J., Yap, R.H.C. (eds.) ASIAN 1996. LNCS, vol. 1179, pp. 254–265. Springer, Heidelberg (1996)
Steere, D.C., Goel, A., Gruenberg, J., McNamee, D., Pu, C., Walpole, J.: A feedback-driven proportion allocator for real-rate scheduling. In: Proceedings of the Third USENIX Symposium on Operating Systems Design and Implementation, New Orleans, LA, pp. 145–158 (February 1999)
Thiemann, P.: WASH/CGI: Server-side web scripting with sessions and typed, compositional forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)
van den Brand, M., van Deursen, A., Klint, P., Klusener, S., van der Meulen, E.: Industrial applications of ASF+SDF. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 9–18. Springer, Heidelberg (1996)
Yau, D.K.Y., Lam, S.S.: Adaptive rate-controlled scheduling for multimedia applications. IEEE/ACM Trans. Netw. 5(4), 475–488 (1997)
Yuan, W., Nahrstedt, K.: Energy-efficient soft real-time CPU scheduling for mobile multimedia systems. In: Proceedings of the 19th ACM Symposium on Operating System Principles, Bolton Landing, New York, October 2003, pp. 149–163 (2003)
Yuan, W., Nahrstedt, K., Kim, K.: R-EDF: A reservation-based EDF scheduling algorithm for multiple multimedia task classes. In: RTAS 2001, [26], pp. 149–156 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lawall, J.L., Duchesne, H., Muller, G., Le Meur, AF. (2005). Bossa Nova: Introducing Modularity into the Bossa Domain-Specific Language. In: Glück, R., Lowry, M. (eds) Generative Programming and Component Engineering. GPCE 2005. Lecture Notes in Computer Science, vol 3676. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561347_7
Download citation
DOI: https://doi.org/10.1007/11561347_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29138-1
Online ISBN: 978-3-540-31977-1
eBook Packages: Computer ScienceComputer Science (R0)