skip to main content
research-article

Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation

Published:01 May 1999Publication History
Skip Abstract Section

Abstract

Domain-Specific languages (DSL) have many potential advantages in terms of software engineering ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the DSL approach. In this paper, we present our DSL approach and its application to a realistic domain: the generation of video display device drivers. The presentation focuses on the validation of our proposed framework for domain-specific languages, from design to implementation. The framework leads to a flexible design and structure, and provides automatic generation of efficient implementations of DSL programs. Additionally, we describe an example of a complete DSL for video display adaptors and the benefits of the DSL approach for this application. This demonstrates some of the generally claimed benefits of using DSLs: increased productivity, higher-level abstraction, and easier verification. This DSL has been fully implemented with our approach and is available. Compose project URL: http://www.irisa.fr/compose/gal.

References

  1. B.R.T. Arnold A. van Deursen and M. Res, “An Algebraic Specification of a Language Describing Financial Products,” Proc, IEEE Workshop Formal Methods Application in Software Eng., pp. 6–13, Apr. 1995.]]Google ScholarGoogle Scholar
  2. J. Bentley, “Programming Pearls: Little Languages,” Comm. ACM, pp. 711–716, Aug. 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. H.K. Berg W.E. Boebert W.R. Franta and T.G. Moher, Formal Methods of Program Verification and Specification. Englewood Cliffs, N.J: Prentice Hall, 1982.]]Google ScholarGoogle Scholar
  4. J.A. Bergstra and P. Klint, “The ToolBus Coordination Architecture,” Proc. First Int'l Conf. Coordination and Models, Cesena, Italy, Lecture Notes in Computer Science, vol. 1,061, pp. 75–88, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Bjarnason, “Applab: A Laboratory for Application Languages,” L. Bendix, K. Nrmark, and K. Sterby, eds., Proc. Nordic Workshop Programming Environment Research, Technical Report R-96-2019, Aalborg Univ., May 1996.]]Google ScholarGoogle Scholar
  6. G. Booch, Software Components with Ada. Benjamin/Cummings, 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Bosch and G. Hedin, eds., Proc. Workshop Compiler Techniques for Application Domain Languages and Extensible Language Models, Linköping, Technical Report 96-173, Lund Univ., Apr. 1996.]]Google ScholarGoogle Scholar
  8. S. Chandra and J. Larus, “Experience with a Language for Writing Coherence Protocols,” Proc. First USENIX Conf. Domain-Specific Languages, Santa Barbara, Calif., Oct. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J.G. Cleaveland, “Building Application Generators,” IEEE Software, July 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Consel L. Hornof J. Lawall R. Marlet G. Muller J. Noyé S. Thibault and N. Volanschi, “Tempo: Specializing Systems Applications and Beyond,” ACM Computing Surveys, Symp. Partial Evaluation, 1988, to appear.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Consel L. Hornof F. Nol J. Noy and E.N. Volanschi, “A Uniform Approach for Compile-Time and Run-Time Specialization,” Danvy et al., eds., Partial Evaluation Int'l Seminar, Dagstuhl Castle, pp. 54-72, Feb. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Consel and F. Nol, “A General Approach for Run-Time Specialization and Its Application to C,” Proc. Conf. Record of the 23rd ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 145–156, St. Petersburg Beach, Fla., Jan. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. O. Danvy R. Glck, and P. Thiemann, eds., Partial Evaluation, International Seminar, Dagstuhl Castle, Lecture Notes in Computer Science 1,110, Feb. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Elliott, “Modeling Interactive 3D and Multimedia Animation with an Embedded Language,” Proc. First USENIX Conf. Domain-Specific Languages, Santa Barbara, Calif., Oct. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. N.K. Gupta L.J. Jagadeesan E.E. Koutsofios and D.M. Weiss, “Auditdraw: Generating Audits the Fast Way,” Proc. Third IEEE Symp. Requirements Eng., pp. 188–197, Jan. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. N.D. Jones, “An Introduction to Partial Evaluation,” ACM Computing Surveys, vol. 28, no. 3, pp. 480–503, Sept. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N.D. Jones, “What Not to do When Writing an Interpreter for Specialisation,” Danvy et al., eds., Proc. Partial Evaluation International Seminar, Dagstuhl Castle, pp. 216-237, Feb. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. N.D. Jones C. Gomard and P. Sestoft, Partial Evaluation and Automatic Program Generation, Int'l Series in Computer Science, Englewood Cliffs, N.J.: Prentice Hall, June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Kamin and D. Hyatt, “A Special-Purpose Language for Picture-Drawing,” Proc. First USENIX Conf. Domain-Specific Languages Santa Barbara, Calif., Oct. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Kieburtz L. McKinney J. Bell J. Hook A. Kotov J. Lewis D. Oliva T. Sheard I. Smith and L. Walton, “A Software Engineering Experiment in Software Component Generation,” Proc. 18th IEEE Int'l Conf. Software Eng, ICSE-18, pp. 542–553, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Ladd and C. Ramming, “Two Application Languages in Software Production,” USENIX Symp. Very High Level Languages New Mexico, Oct. 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Marlet S. Thibault and C. Consel, “Mapping Software Architectures to Efficient Implementations via Partial Evaluation,” Proc. Conf. Automated Software Eng., pp. 183–192, Lake Tahoe, Nev., IEEE Computer Society, Nov. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. McCain, “Reusable Software Component Construction: A Product-Oriented Paradigm,” Proc. Fifth AiAA/ACM/NASA/IEEE Computers in Aerospace Conf., Long Beach, Calif., Oct. 1985.]]Google ScholarGoogle ScholarCross RefCross Ref
  24. G. Necula, “Proof-Carrying Code,” Conf. Record 24th Symp. Principles of Programming Languages, pp. 106–116, Paris, ACM Press, Jan. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Neighbors, “Software Construction Using Components,” PhD thesis, Univ. of Calif. at Irvine, 1980.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G.D. Plotkin, “A Structural Approach to Operational Semantics,” Univ. of Aarhus, Aarhus, Denmark, 1981.]]Google ScholarGoogle Scholar
  27. R. Prieto-Díaz, “Domain Analysis: An Introduction,” Software Eng. Notes, vol. 15, no. 2, Apr. 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Pu A. Black C. Cowan J. Walpole and C. Consel, “Microlanguages for Operating System Specialization,” Proc. First ACM-SIGPLAN Workshop Domain-Specific Languages, wDSL'97, Paris, Jan. 1997.]]Google ScholarGoogle Scholar
  29. T. Romer D. Lee G. Voelker A. Wolman W. Wong J. Baer B. Bershad and H. Levy, “The Structure and Performance of Interpreters,” Proc. Seventh Int'l Conf. Architectural Support for Programming Languages and Operating Systems, pp. 150–159, Oct. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Thibault and C. Consel, “A Framework for Application Generator Design,” Proc. Symp. Software Reusability, Boston, Mass., May 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Thibault C. Consel and G. Muller, “Safe and Efficient Active Network Programming,” Proc. 17th IEEE Symp. Reliable Distributed Systems, West Lafayette, Ind., Oct. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Thibault J. Marant and G. Muller, “Adapting Distributed Applications Using Extensible Networks,” Proc. 17th IEEE Conf. Distributed Computing Systems, Austin, Texas, May 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. van Deursen and P. Klint, “Little Languages: Little Maintenance?” Proc. First ACM-SIGPLAN Workshop Domain-Specific Languages, wDSL'97, Jan. 1997.]]Google ScholarGoogle Scholar
  34. First ACM-SIGPLAN Workshop Domain-Specific Languages, Paris, France, Computer Science Technical Report, Univ. of Illinois at Urbana-Champaign, Jan. 1997.]]Google ScholarGoogle Scholar
  35. B.W. Weide and W.F. Ogden, “Recasting Algorithms to Encourage Reuse,” IEEE Software, vol. 11, no. 5, Sept. 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. The XFree86 Project, http://www. xfree86. org/.]]Google ScholarGoogle Scholar

Index Terms

  1. Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access