Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9952))

Included in the following conference series:

Abstract

Based on a very liberal understanding of synthesis as a generic term for techniques that generate programming artifacts from higher-level specifications, the paper discusses several corresponding facets from a practical perspective. The synthesis examples we consider comprise variations of code generation, model synthesis from temporal logic descriptions, and metamodel-based tool generation. Although very different, they can all be regarded as means to “factor out” predefined aspects of the envisioned product or the production environment so that developers/designers can simply focus on the remaining issues. This “factoring out” of what is pre-agreed or predefined is a primary goal of domain-specific languages design, and it is applicable to both modeling and programming languages. Leading synthesis techniques elegantly achieve this factoring by combining forms of substitution/partial evaluation to those steps that can be determined locally, as is typically the case for most parts of code generation, with (heuristic) search for those parts where more global patterns need to be matched, as is the case, e.g., for temporal- logic synthesis. The paper presents our experience with a variety of synthesis approaches and corresponding design and synthesis tools. It also discusses the synergetic potential of their combination, e.g., to control the computational complexity by reducing the underlying search space. This is, in our opinion, a viable path to achieve a fundamentally higher simplicity in IT system design.

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 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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

Notes

  1. 1.

    For a more detailed introduction to the available model types please refer to [8] and DIME’s web site: http://dime.scce.info.

  2. 2.

    PROPHETS = Process Realization and Optimization Platform using Human-readable Expression of Temporal-logic Synthesis.

  3. 3.

    Of course, not only the Ecore metamodel is generated from MGL and MSL, but also a lot of Java source code for the actual editor and other supporting code. However, including all those aspects into Fig. 5 would considerably lower its comprehensibility.

  4. 4.

    The previously introduced aspects of visual appearance and validation are not discussed here, and follow very similar concepts.

References

  1. Dart programming language. https://www.dartlang.org/. Accessed 26 July 2016

  2. One framework. - Angular 2. https://angular.io/. Accessed 05 Aug 2016

  3. Standard ECMA-404. The JSON Data Interchange Format (2013). http://www.ecma-international.org/publications/standards/Ecma-404.htm

  4. Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison Wesley, Boston (2007)

    MATH  Google Scholar 

  5. Al-Areqi, S., Lamprecht, A.-L., Margaria, T.: Constraints-driven automatic geospatial service composition: workflows for the analysis of sea-level rise impacts. In: Gervasi, O., et al. (eds.) ICCSA 2016. LNCS, vol. 9788, pp. 134–150. Springer, Heidelberg (2016). doi:10.1007/978-3-319-42111-7_12

    Chapter  Google Scholar 

  6. Bessai, J., Dudenhefner, A., Duedder, B., Martens, M., Rehof, J.: Combinatory process synthesis. In: Proceedings of the 7th International Symposyum on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2016) (2016)

    Google Scholar 

  7. Bodik, R., Jobstmann, B.: Algorithmic program synthesis: introduction. Int. J. Softw. Tools Technol. Transf. 15(5), 397–411 (2013)

    Article  Google Scholar 

  8. Boßelmann, S., Frohme, M., Kopetzki, D., Lybecait, M., Naujokat, S., Neubauer, J., Wirkner, D., Zweihoff, P., Steffen, B.: DIME: a programming-less modeling environment for web applications. In: Proceedings of the 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2016) (2016)

    Google Scholar 

  9. Braun, V., Margaria, T., Steffen, B., Yoo, H., Rychly, T.: Safe service customization. In: Intelligent Network Workshop, IN 1997, vol. 2, p. 4. IEEE, May 1997

    Google Scholar 

  10. Coussy, P., Gajski, D.D., Meredith, M., Takach, A.: An introduction to high-level synthesis. IEEE Des. Test Comput. 26(4), 8–17 (2009)

    Article  Google Scholar 

  11. Coussy, P., Morawiec, A.: High-Level Synthesis: from Algorithm to Digital Circuit. Springer, Heidelberg (2010)

    Google Scholar 

  12. Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45, 621–645 (2006)

    Article  Google Scholar 

  13. Düdder, B., Martens, M., Rehof, J.: Staged composition synthesis. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 67–86. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  14. Edelkamp, S., Schroedl, S., Koenig, S.: Heuristic Search: Theory and Applications. Morgan Kaufmann Publishers Inc., San Francisco (2010)

    Google Scholar 

  15. Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)

    Google Scholar 

  16. Freitag, B., Margaria, T., Steffen, B.: A pragmatic approach to software synthesis. SIGPLAN Not. 29(8), 46–58 (1994). doi:10.1145/185087.185102

    Article  Google Scholar 

  17. Campbell, Grady H., J., Faulk, S.R., Weiss, D.M.: Introduction to synthesis. Technical report, Software Productivity Consortium, June 1990

    Google Scholar 

  18. Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  19. Heineman, G., Bessai, J., Duedder, B., Rehof, J.: A long and winding road towards modular synthesis. In: Proceedings of the 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2016) (2016)

    Google Scholar 

  20. Internet Engineering Task Force (IETF): The JavaScript Object Notation (JSON) Data Interchange Format (2014). https://tools.ietf.org/html/rfc7159

  21. Ison, J., Kalaš, M., Jonassen, I., Bolser, D., Uludag, M., McWilliam, H., Malone, J., Lopez, R., Pettifer, S., Rice, P.: EDAM: an ontology of bioinformatics operations, types of data and identifiers, topics and formats. Bioinformatics 29, 1325–1332 (2013)

    Article  Google Scholar 

  22. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall Inc., Upper Saddle River (1993)

    MATH  Google Scholar 

  23. Jörges, S.: Construction and Evolution of Code Generators - A Model-Driven and Service-Oriented Approach. LNCS, vol. 7747. Springer, Heidelberg (2013)

    Book  Google Scholar 

  24. Jörges, S., Lamprecht, A.L., Margaria, T., Schaefer, I., Steffen, B.: A constraint-based variability modeling framework. Int. J. Softw. Tools Technol. Transf. (STTT) 14(5), 511–530 (2012)

    Article  Google Scholar 

  25. Jörges, S., Steffen, B.: Exploiting ecore’s reflexivity for bootstrapping domain-specific code-generators. In: Proceedings of 35th Software Engineering Workshop (SEW 2012), pp. 72–81. IEEE (2012)

    Google Scholar 

  26. Gsottberger, C., Margaria, T., Mendler, M., Gsottberger, S.: MOSEL: A flexible toolset for monadic second-order logic. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 1–20. Springer, Heidelberg (1997)

    Google Scholar 

  27. Knoop, J., Rüthing, O., Steffen, B.: Optimal code motion: theory and practice. ACM Trans. Program. Lang. Syst. 16(4), 1117–1155 (1994)

    Article  Google Scholar 

  28. Lamprecht, A.L.: User-Level Workflow Design - A Bioinformatics Perspective, vol. 8311. Springer, Heidelberg (2013)

    Book  Google Scholar 

  29. Lamprecht, A.L., Naujokat, S., Margaria, T., Steffen, B.: Synthesis-based loose programming. In: Proceedings of the 7th International Conference on the Quality of Information and Communications Technology (QUATIC 2010), pp. 262–267. IEEE, Porto, Portugal, September 2010

    Google Scholar 

  30. Lybecait, M.: Entwicklung und Implementierung eines Frameworks zur grafischen Modellierung von Modelltransformationen auf Basis von EMF-Metamodellen und Genesys. Diploma thesis, TU Dortmund (2012)

    Google Scholar 

  31. Manna, Z., Wolper, P.: Synthesis of communicating processes from temporal logic specifications. ACM Trans. Program. Lang. Syst. 6(1), 68–93 (1984)

    Article  MATH  Google Scholar 

  32. Margaria, T.: Fully automatic verification and error detection for parameterized iterative sequential circuits. In: Margaria, T., Steffen, B. (eds.) TACAS 1996. LNCS, vol. 1055. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  33. Margaria, T., Bakera, M., Kubczak, C., Naujokat, S., Steffen, B.: Automatic generation of the SWS-challenge mediator with jABC/ABC. In: Petrie, C., Margaria, T., Zaremba, M., Lausen, H. (eds.) Semantic Web Services Challenge: Results from the First Year, pp. 119–138. Springer, New York (2008)

    Google Scholar 

  34. Margaria, T., Meyer, D., Kubczak, C., Isberner, M., Steffen, B.: Synthesizing semantic web service compositions with jMosel and Golog. In: Bernstein, A., et al. (eds.) ISWC 2009. LNCS, vol. 5823, pp. 392–407. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  35. Margaria, T., Steffen, B.: Business process modelling in the jABC: the one-thing-approach. In: Cardoso, J., van der Aalst, W. (eds.) Handbook of Research on Business Process Modeling. IGI Global, Hershey (2009)

    Google Scholar 

  36. Margaria, T., Steffen, B., Reitenspiess, M.: Service-oriented design: the roots. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 450–464. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  37. Margaria, T., Steffen, B., Topnik, C.: Second-order value numbering. Electron. Commun. EASST (ECEASST) 30, 1–15 (2010)

    Google Scholar 

  38. Martin, G., Smith, G.: High-level synthesis: past, present, and future. IEEE Des. Test Comput. 26(4), 18–25 (2009)

    Article  Google Scholar 

  39. Naujokat, S., Lamprecht, A.-L., Steffen, B.: Loose programming with PROPHETS. In: de Lara, J., Zisman, A. (eds.) Fundamental Approaches to Software Engineering. LNCS, vol. 7212, pp. 94–98. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  40. Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: a simplicity-driven approach to full generation of domain-specific graphical modeling tools (2016, to appear)

    Google Scholar 

  41. Naujokat, S., Neubauer, J., Margaria, T., Steffen, B.: Meta-level reuse for mastering domain specialization. In: Proceedings of the 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2016) (2016)

    Google Scholar 

  42. Neubauer, J., Frohme, M., Steffen, B., Margaria, T.: Prototype-driven development of web applications with DyWA. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014, Part I. LNCS, vol. 8802, pp. 56–72. Springer, Heidelberg (2014)

    Google Scholar 

  43. Neubauer, J., Steffen, B., Margaria, T.: Higher-order process modeling: product-lining, variability modeling and beyond. Electron. Proc. Theoret. Comput. Sci. 129, 259–283 (2013)

    Article  Google Scholar 

  44. Parr, T.: Enforcing strict model-view separation in template engines. In: Proceedings of the 13th International Conference on World Wide Web (WWW 2004), pp. 224–233. ACM, New York (2004)

    Google Scholar 

  45. Petrie, C., Margaria, T., Lausen, H., Zaremba, M.: Semantic Web Services Challenge: Results from the First Year. Semantic Web and Beyond, vol. 8. Springer, New York (2009)

    Book  Google Scholar 

  46. Rehof, J., Vardi, M.Y.: Design and synthesis from components (Dagstuhl seminar 14232). Dagstuhl Rep. 4(6), 29–47 (2014)

    Google Scholar 

  47. Rice, P., Longden, I., Bleasby, A.: EMBOSS: the European molecular biology open software suite. Trends Genet. 16(6), 276–277 (2000)

    Article  Google Scholar 

  48. Rüthing, O., Knoop, J., Steffen, B.: Sparse code motion. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POpPL 2000), pp. 170–183. ACM (2000)

    Google Scholar 

  49. Rumbaugh, J., Jacobsen, I., Booch, G.: The Unified Modeling Language Reference Manual. The Addison-Wesley Object Technology Series. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  50. Steffen, B.: Generating data flow analysis algorithms from modal specifications. Sci. Comput. Program. 21(2), 115–139 (1993)

    Article  MATH  Google Scholar 

  51. Steffen, B.: Property-oriented expansion. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145. Springer, Heidelberg (1996)

    Google Scholar 

  52. Steffen, B.: Method for incremental synthesis of a discrete technical system (1998)

    Google Scholar 

  53. Steffen, B., Isberner, M., Naujokat, S., Margaria, T., Geske, M.: Property-driven benchmark generation synthesizing programs of realistic structure. Softw. Tools Technol. Transf. 16(5), 465–479 (2014)

    Article  Google Scholar 

  54. Steffen, B., Margaria, T., Braun, V., Kalt, N.: Hierarchical service definition. Ann. Rev. Commun. ACM 51, 847–856 (1997)

    Google Scholar 

  55. Steffen, B., Margaria, T., Braun, V.: The electronic tool integration platform: concepts and design. Int. J. Softw. Tools Technol. Transf. (STTT) 1(1–2), 9–30 (1997)

    Article  MATH  Google Scholar 

  56. Steffen, B., Margaria, T., Freitag, B.: Module configuration by minimal model construction. Technical report, Fakultät für Mathematik und Informatik, Universität Passau (1993)

    Google Scholar 

  57. Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-driven development with the jABC. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, pp. 92–108. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  58. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008)

    Google Scholar 

Download references

Acknowledgments

This work was supported, in part, by Science Foundation Ireland grant 13/RC/2094 and co-funded under the European Regional Development Fund through the Southern & Eastern Regional Operational Programme to Lero - the Irish Software Research Centre (www.lero.ie).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Stefan Naujokat .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Jörges, S., Lamprecht, AL., Margaria, T., Naujokat, S., Steffen, B. (2016). Synthesis from a Practical Perspective. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques. ISoLA 2016. Lecture Notes in Computer Science(), vol 9952. Springer, Cham. https://doi.org/10.1007/978-3-319-47166-2_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47166-2_20

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47165-5

  • Online ISBN: 978-3-319-47166-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics