Skip to main content

2021 | OriginalPaper | Buchkapitel

Generative Program Analysis and Beyond: The Power of Domain-Specific Languages (Invited Paper)

verfasst von : Bernhard Steffen, Alnis Murtovi

Erschienen in: Verification, Model Checking, and Abstract Interpretation

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

In this paper we position Linear Time Temporal Logic (LTL), structural operational semantics (SOS), and a graphical generalization of BNF as central DSLs for program analysis and verification tasks in order to illustrate the impact of language to the mindset: (1) Specifying program analyses in LTL changes the classical algorithmic ‘HOW’ thinking into a property-oriented ‘WHAT’ thinking that allows one to logically combine analysis goals and eases proofs. (2) Playing with the original store component in SOS configurations allows one to elegantly realize variants of abstract program interpretations, and to align different aspects, like e.g., the symbolic values of variables and path conditions. (3) Specializing languages by refining their BNF-like meta models has the power to lift certain verification tasks from the program to the programming language level. We will illustrate the advantages of the change of mindset imposed by these three DSLs, as well as the fact that these advantages come at low price due to available adequate generator technology.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
This work was based on bi-directional branching time temporal logics, which has later been replaced by bi-directional LTL.
 
2
\(\phi \, U \psi \), in contrast to \(\phi \, W \psi \), requires \(\psi \) to hold eventually.
 
3
Please note that the meaning of ‘state’ in this section only concerns \(\varSigma \), in contrast to the other sections, where ‘state’ denotes nodes of a transitions system.
 
4
For the sake of simplicity, we use an uniform assignment pattern \(x=a+b\) in the example. This allows us to eliminate complete statements without keeping track on temporaries. A detailed discourse on the issue of assignment vs. expression motion can be found in [22].
 
5
In a realistic setting minimization would take conditions of branching into account.
 
6
Alternatively, one can regard CFMTSs also as extensions of Context-Free Process Systems [5] to allow may transitions.
 
7
Modal refinement preserves properties specified in branching-time temporal logic [30].
 
8
The treatment of multiple procedures can be achieved either via a preprocess that constructs individual ‘A’-like properties for each procedure, or by enhancing the modeling language towards an adequate notion of Context-Free Modal Register Automata (cf. [16] for the definition of register automata). Whereas the former approach is rather straightforward the latter approach is part of our envisioned future work which, in particular, concerns the corresponding model checking problems.
 
9
Directed Acyclic Graph [56].
 
10
DTD stands for Document Type Descriptions.
 
11
This leads to very tolerant process specifications, similar to what is aimed at it with CMMN [38] in order to overcome the over specification easily imposed when using e.g. BPMN [37].
 
Literatur
2.
Zurück zum Zitat Bloom, B.: Structured operational semantics as a specification language. In: Cytron, R.K., Lee, P. (eds.) Conference Record of POPL 1995: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California, USA, 23–25 January 1995, pp. 107–117. ACM Press (1995) Bloom, B.: Structured operational semantics as a specification language. In: Cytron, R.K., Lee, P. (eds.) Conference Record of POPL 1995: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California, USA, 23–25 January 1995, pp. 107–117. ACM Press (1995)
3.
Zurück zum Zitat Bradfield, J.C., Stirling, C.: Modal mu-calculi. In: Blackburn, P., van Benthem, J.F.A.K., Wolter, F. (eds.) Handbook of Modal Logic, Studies in Logic and Practical Reasoning, vol. 3, pp. 721–756. North-Holland (2007) Bradfield, J.C., Stirling, C.: Modal mu-calculi. In: Blackburn, P., van Benthem, J.F.A.K., Wolter, F. (eds.) Handbook of Modal Logic, Studies in Logic and Practical Reasoning, vol. 3, pp. 721–756. North-Holland (2007)
6.
Zurück zum Zitat Chamberlin, D.D., Boyce, R.F.: SEQUEL: a structured English query language. In: Rustin, R. (ed.), Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan, USA, 1–3 May 1974, vol. 2, pp. 249–264. ACM (1974) Chamberlin, D.D., Boyce, R.F.: SEQUEL: a structured English query language. In: Rustin, R. (ed.), Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan, USA, 1–3 May 1974, vol. 2, pp. 249–264. ACM (1974)
10.
Zurück zum Zitat Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference on Record of the 4th, Los Angeles, CA, 1977, pp. 238–252 (1977) Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference on Record of the 4th, Los Angeles, CA, 1977, pp. 238–252 (1977)
11.
Zurück zum Zitat Dhamdhere, D.M.: A fast algorithm for code movement optimisation. ACM SIGPLAN Not. 23(10), 172–180 (1988)CrossRef Dhamdhere, D.M.: A fast algorithm for code movement optimisation. ACM SIGPLAN Not. 23(10), 172–180 (1988)CrossRef
12.
Zurück zum Zitat Dhamdhere, D.M., Keith, J.S.: Characterization of program loops in code optimization. Comput. Lang. 8(2), 69–76 (1983)MATHCrossRef Dhamdhere, D.M., Keith, J.S.: Characterization of program loops in code optimization. Comput. Lang. 8(2), 69–76 (1983)MATHCrossRef
13.
Zurück zum Zitat Emerson, E.A., Halpern, J.Y.: “sometimes” and “not never” revisited: on branching versus linear time. In: Wright, J.R., Landweber, L., Demers, A.J., Teitelbaum, T. (eds.) Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas, USA, January 1983, pp. 127–140. ACM Press (1983) Emerson, E.A., Halpern, J.Y.: “sometimes” and “not never” revisited: on branching versus linear time. In: Wright, J.R., Landweber, L., Demers, A.J., Teitelbaum, T. (eds.) Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas, USA, January 1983, pp. 127–140. ACM Press (1983)
14.
Zurück zum Zitat Gossen, F., Jasper, M., Murtovi, A., Steffen, B.: Aggressive aggregation: a new paradigm for program optimization. CoRR, abs/1912.11281 (2019) Gossen, F., Jasper, M., Murtovi, A., Steffen, B.: Aggressive aggregation: a new paradigm for program optimization. CoRR, abs/1912.11281 (2019)
15.
Zurück zum Zitat Grundy, J., Hosking, J., Li, K.N., Ali, N.M., Huh, J., Li, R.L.: Generating domain-specific visual language tools from abstract visual specifications. IEEE Trans. Software Eng. 39(4), 487–515 (2013)CrossRef Grundy, J., Hosking, J., Li, K.N., Ali, N.M., Huh, J., Li, R.L.: Generating domain-specific visual language tools from abstract visual specifications. IEEE Trans. Software Eng. 39(4), 487–515 (2013)CrossRef
18.
Zurück zum Zitat Jörges, S., Margaria, T., Steffen, B.: Genesys: service-oriented construction of property conform code generators. Innov. Syst. Softw. Eng. 4(4), 361–384 (2008)CrossRef Jörges, S., Margaria, T., Steffen, B.: Genesys: service-oriented construction of property conform code generators. Innov. Syst. Softw. Eng. 4(4), 361–384 (2008)CrossRef
19.
Zurück zum Zitat Kats, L.C.L., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and ides. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds.) Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, Reno/Tahoe, Nevada, USA, 17–21 October 2010, pp. 444–463. ACM (2010) Kats, L.C.L., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and ides. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds.) Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, Reno/Tahoe, Nevada, USA, 17–21 October 2010, pp. 444–463. ACM (2010)
20.
Zurück zum Zitat Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, Hoboken (2008)CrossRef Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, Hoboken (2008)CrossRef
21.
Zurück zum Zitat Knoop, J., Rüthing, O., Steffen, B.: Partial dead code elimination. In: Proceedings of the 1994, Orlando, FL, June 1994, vol. 29, no. 6, pp. 147–158 (1994) Knoop, J., Rüthing, O., Steffen, B.: Partial dead code elimination. In: Proceedings of the 1994, Orlando, FL, June 1994, vol. 29, no. 6, pp. 147–158 (1994)
22.
Zurück zum Zitat Knoop, J., Rüthing, O., Steffen, B.: The power of assignment motion. In: Proceedings of the 1995, La Jolla, CA, June 1995, vol. 30, no. 6, pp. 233–245 (1995) Knoop, J., Rüthing, O., Steffen, B.: The power of assignment motion. In: Proceedings of the 1995, La Jolla, CA, June 1995, vol. 30, no. 6, pp. 233–245 (1995)
24.
Zurück zum Zitat Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. In: Feldman, S.I., Wexelblat, R.L. (eds.) Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation (PLDI), San Francisco, California, USA, 17–19 June 1992, pp. 224–234. ACM (1992) Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. In: Feldman, S.I., Wexelblat, R.L. (eds.) Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation (PLDI), San Francisco, California, USA, 17–19 June 1992, pp. 224–234. ACM (1992)
25.
Zurück zum Zitat Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion (with retrospective). In: McKinley, K.S. (ed.) 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation 1979–1999, A Selection, pp. 460–472. ACM (1992) Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion (with retrospective). In: McKinley, K.S. (ed.) 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation 1979–1999, A Selection, pp. 460–472. ACM (1992)
26.
Zurück zum Zitat Knuth, D.E.: Backus normal form vs. Backus Naur form. Commun. ACM 7(12), 735–736 (1964)CrossRef Knuth, D.E.: Backus normal form vs. Backus Naur form. Commun. ACM 7(12), 735–736 (1964)CrossRef
27.
Zurück zum Zitat Kozen, D.: Results on the propositional mu-calculus. Theor. Comput. Sci. 27, 333–354 (1983)MATHCrossRef Kozen, D.: Results on the propositional mu-calculus. Theor. Comput. Sci. 27, 333–354 (1983)MATHCrossRef
28.
29.
Zurück zum Zitat Larsen, K.G., Thomsen, B.: A modal process logic. In: [1988] Proceedings. Third Annual Symposium on Logic in Computer Science, pp. 203–210 (1988) Larsen, K.G., Thomsen, B.: A modal process logic. In: [1988] Proceedings. Third Annual Symposium on Logic in Computer Science, pp. 203–210 (1988)
31.
Zurück zum Zitat Margaria, T., Steffen, B.: Simplicity as a driver for agile innovation. Computer 43(6), 90–92 (2010)CrossRef Margaria, T., Steffen, B.: Simplicity as a driver for agile innovation. Computer 43(6), 90–92 (2010)CrossRef
32.
Zurück zum Zitat Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle Rive (1989) Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle Rive (1989)
33.
35.
Zurück zum Zitat Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: a simplicity-driven approach to full generation of domain-specific graphical modeling tools. STTT 20(3), 327–354 (2018)CrossRef Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: a simplicity-driven approach to full generation of domain-specific graphical modeling tools. STTT 20(3), 327–354 (2018)CrossRef
39.
Zurück zum Zitat Plotkin, G.: A structural approach to operational semantics. Technical report, Aarhus Univ., Computer Science Dept., Denmark 1981. DAIMI FN-19 Plotkin, G.: A structural approach to operational semantics. Technical report, Aarhus Univ., Computer Science Dept., Denmark 1981. DAIMI FN-19
40.
Zurück zum Zitat Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, Providence, Rhode Island, USA, 31 October - 1 November 1977, pp. 46–57. IEEE Computer Society (1977) Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, Providence, Rhode Island, USA, 31 October - 1 November 1977, pp. 46–57. IEEE Computer Society (1977)
41.
Zurück zum Zitat Ray, E.T.: Learning XML - Creating Self-Describing Data: Cover Schemas, 2 edn. O’Reilly, Sebastopol (2003) Ray, E.T.: Learning XML - Creating Self-Describing Data: Cover Schemas, 2 edn. O’Reilly, Sebastopol (2003)
43.
Zurück zum Zitat Schmidt, D.A.: Data flow analysis is model checking of abstract interpretations. In: MacQueen, D.B., Cardelli, L. (eds.) Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1998, San Diego, CA, USA, 19–21 January 1998, pp. 38–48. ACM (1998) Schmidt, D.A.: Data flow analysis is model checking of abstract interpretations. In: MacQueen, D.B., Cardelli, L. (eds.) Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1998, San Diego, CA, USA, 19–21 January 1998, pp. 38–48. ACM (1998)
45.
Zurück zum Zitat Smyth, S.: Interactive model-based compilation. Ph.D. thesis, CAU Kiel, to appear Smyth, S.: Interactive model-based compilation. Ph.D. thesis, CAU Kiel, to appear
48.
Zurück zum Zitat Steffen, B.: Generating data flow analysis algorithms from modal specifications. Sci. Comput. Program. 21(2), 115–139 (1993)MATHCrossRef Steffen, B.: Generating data flow analysis algorithms from modal specifications. Sci. Comput. Program. 21(2), 115–139 (1993)MATHCrossRef
53.
Zurück zum Zitat Steffen, B., Naujokat, S.: Archimedean points: the essence for mastering change. Trans. Found. Mastering Chang. 1, 22–46 (2016)CrossRef Steffen, B., Naujokat, S.: Archimedean points: the essence for mastering change. Trans. Found. Mastering Chang. 1, 22–46 (2016)CrossRef
55.
Zurück zum Zitat Tegeler, T., Murtovi, A., Frohme, M., Steffen, B.: Product line verification via modal meta model checking. In: ter Beek, M.H., Fantechi, A., Semini, L. (eds.) From Software Engineering to Formal Methods and Tools, and Back. LNCS, vol. 11865, pp. 313–337. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-30985-5_19CrossRef Tegeler, T., Murtovi, A., Frohme, M., Steffen, B.: Product line verification via modal meta model checking. In: ter Beek, M.H., Fantechi, A., Semini, L. (eds.) From Software Engineering to Formal Methods and Tools, and Back. LNCS, vol. 11865, pp. 313–337. Springer, Cham (2019). https://​doi.​org/​10.​1007/​978-3-030-30985-5_​19CrossRef
56.
Zurück zum Zitat Thulasiraman, K., Swamy, M.N.S.: Graphs - Theory and Algorithms. Wiley, New York (1992)MATHCrossRef Thulasiraman, K., Swamy, M.N.S.: Graphs - Theory and Algorithms. Wiley, New York (1992)MATHCrossRef
57.
Zurück zum Zitat Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: Glinz, M., Murphy, G.C., Pezzè, M. (eds.) 34th International Conference on Software Engineering, ICSE 2012, Zurich, Switzerland, 2–9 June 2012, pp. 1449–1450. IEEE Computer Society (2012) Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: Glinz, M., Murphy, G.C., Pezzè, M. (eds.) 34th International Conference on Software Engineering, ICSE 2012, Zurich, Switzerland, 2–9 June 2012, pp. 1449–1450. IEEE Computer Society (2012)
58.
Zurück zum Zitat Völter, M., et al.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013). dslbook.org Völter, M., et al.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013). dslbook.​org
59.
Zurück zum Zitat Wirth, N.: Compilerbau - Eine Einführung. Teubner (1977) Wirth, N.: Compilerbau - Eine Einführung. Teubner (1977)
Metadaten
Titel
Generative Program Analysis and Beyond: The Power of Domain-Specific Languages (Invited Paper)
verfasst von
Bernhard Steffen
Alnis Murtovi
Copyright-Jahr
2021
DOI
https://doi.org/10.1007/978-3-030-67067-2_3