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

  • Julia L. Lawall
  • Hervé Duchesne
  • Gilles Muller
  • Anne-Françoise Le Meur
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3676)


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.


Module System Schedule Policy Event Handler Code Reuse Periodic Policy 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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)CrossRefGoogle Scholar
  2. 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. 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. 4.
    Brabrand, C., Møller, A., Schwartzbach, M.I.: The <bigwig> project. ACM Trans. Internet Tech. 2(2), 79–114 (2002)CrossRefGoogle Scholar
  5. 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. 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. 7.
    Cottet, F., Delacroix, J., Kaiser, C., Mammeri, Z.: Scheduling in Real-Time Systems. Wiley, West Sussex (2002)CrossRefGoogle Scholar
  8. 8.
    Proceedings of the Second Conference on Domain-Specific Languages (DSL 1999), Austin, TX (October 1999)Google Scholar
  9. 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. 10.
    Elliott, C.: An embedded modeling language approach to interactive 3d and multimedia animation. IEEE Trans. Software Eng. 25(3), 291–308 (1999)CrossRefGoogle Scholar
  11. 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. 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. 13.
    Guss, C.: Lecture notes: ECSE-421 embedded systems (2004),
  14. 14.
    Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys 28(4es) (December 1996)Google Scholar
  15. 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. 16.
    Jennings, J., Beuscher, E.: Verischemelog: Verilog embedded in Scheme. In: DSL 1999, [8], pp. 123–134 (1999)Google Scholar
  17. 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)CrossRefGoogle Scholar
  18. 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)CrossRefGoogle Scholar
  19. 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)CrossRefGoogle Scholar
  20. 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. 21.
    Leijen, D., Meijer, E.: Domain specific embedded compilers. In: DSL 1999, [8], pp. 109–122 (1999)Google Scholar
  22. 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)zbMATHCrossRefMathSciNetGoogle Scholar
  23. 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. 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. 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. 26.
    Proceedings of the 7th Real-Time Technology and Applications Symposium (RTAS 2001), Taipei, Taiwan (May 2001)Google Scholar
  27. 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)CrossRefGoogle Scholar
  28. 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. 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)CrossRefGoogle Scholar
  30. 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. 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)CrossRefGoogle Scholar
  32. 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)CrossRefGoogle Scholar
  33. 33.
    Yau, D.K.Y., Lam, S.S.: Adaptive rate-controlled scheduling for multimedia applications. IEEE/ACM Trans. Netw. 5(4), 475–488 (1997)CrossRefGoogle Scholar
  34. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Julia L. Lawall
    • 1
  • Hervé Duchesne
    • 2
  • Gilles Muller
    • 2
  • Anne-Françoise Le Meur
    • 3
  1. 1.DIKUUniversity of CopenhagenDenmark
  2. 2.OBASCO GroupÉcole des Mines de Nantes-INRIA, LINAFrance
  3. 3.Jacquard Group, LIFL/INRIAUniversité des Sciences et Technologies de LilleFrance

Personalised recommendations