Skip to main content

Bossa Nova: Introducing Modularity into the Bossa Domain-Specific Language

  • Conference paper
Book cover Generative Programming and Component Engineering (GPCE 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3676))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Article  Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Brabrand, C., Møller, A., Schwartzbach, M.I.: The <bigwig> project. ACM Trans. Internet Tech. 2(2), 79–114 (2002)

    Article  Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Cottet, F., Delacroix, J., Kaiser, C., Mammeri, Z.: Scheduling in Real-Time Systems. Wiley, West Sussex (2002)

    Book  Google Scholar 

  8. Proceedings of the Second Conference on Domain-Specific Languages (DSL 1999), Austin, TX (October 1999)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Elliott, C.: An embedded modeling language approach to interactive 3d and multimedia animation. IEEE Trans. Software Eng. 25(3), 291–308 (1999)

    Article  Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Guss, C.: Lecture notes: ECSE-421 embedded systems (2004), http://www.ece.mcgill.ca/~info421/

  14. Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys 28(4es) (December 1996)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Jennings, J., Beuscher, E.: Verischemelog: Verilog embedded in Scheme. In: DSL 1999, [8], pp. 123–134 (1999)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. 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)

    Google Scholar 

  21. Leijen, D., Meijer, E.: Domain specific embedded compilers. In: DSL 1999, [8], pp. 109–122 (1999)

    Google Scholar 

  22. 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)

    Article  MATH  MathSciNet  Google Scholar 

  23. MacQueen, D.B.: An implementation of Standard ML modules. In: LISP and Functional Programming, Snowbird, Utah, pp. 212–223 (July 1988)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. Regehr, J., Stankovic, J.A.: Augmented CPU reservations: towards predictable execution on general-purpose operating systems. In: RTAS 2001, [26], pp. 141–148 (2001)

    Google Scholar 

  26. Proceedings of the 7th Real-Time Technology and Applications Symposium (RTAS 2001), Taipei, Taiwan (May 2001)

    Google Scholar 

  27. 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)

    Chapter  Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Chapter  Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Chapter  Google Scholar 

  32. 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)

    Chapter  Google Scholar 

  33. Yau, D.K.Y., Lam, S.S.: Adaptive rate-controlled scheduling for multimedia applications. IEEE/ACM Trans. Netw. 5(4), 475–488 (1997)

    Article  Google Scholar 

  34. 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)

    Google Scholar 

  35. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics