On Modeling and Programming

  • Neil D. JonesEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11244)


In computer science “model” is used with different meanings:
  • Analytic. Analogous field: physics. Relevant “model” meaning: a theory to explain observed natural phenomena. Important: adequacy of the explanations; reproducibility by other researchers of results and experiments.

  • Synthetic. Analogous fields: computer science and engineering. Relevant use of “model”: a constructed artefact (software, hardware,...) built to satisfy a problem specification. Important: the reliability of the constructed artefact; and the correctness of the artefact with respect to the specification.

  • Mechanisation of established hand procedures. Analogous fields: data processing; automation of hospital procedures. (Academically inelegant, but a large percentage of worldwide computer science expenditures.) Relevant: predictability, completeness, reliability, degree of automation, common sense.

All three are defensible and productive, but lead to very different ways of thinking. We focus on the analytic and synthetic meanings, since the mechanisation dimension is out of Isola scope.



Remarks made by an anonymous referee, and D. Berezun and K. Havelund, led to substantial improvements to this paper.


  1. 1.
    Brown, M., Palsberg, J.: Jones-optimal partial evaluation by specialization-safe normalization. PACMPL 2(POPL), 1401–1428 (2018)Google Scholar
  2. 2.
    Dijkstra, W.E.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)zbMATHGoogle Scholar
  3. 3.
    Fowler, M., Scott, K.: UML Distilled - A Brief Guide to the Standard Object Modeling Language, 2nd edn. Addison-Wesley-Longman, Boston (2000)Google Scholar
  4. 4.
    Grumberg, O., Veith, H. (eds.): 25 Years of Model Checking. LNCS, vol. 5000. Springer, Heidelberg (2008). Scholar
  5. 5.
    Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Programm. 8(3), 231–274 (1987)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Huth, M.R.A., Ryan, M.D.: Logic in Computer Science - Modelling and Reasoning About Systems. Cambridge University Press, Cambridge (2004)CrossRefGoogle Scholar
  7. 7.
    Jones, N.D.: Computability and Complexity - From a Programming Perspective. Foundations of Computing Series. MIT Press, Cambridge (1997)zbMATHGoogle Scholar
  8. 8.
    Jones, N.D.: A swiss pocket knife for computability. In: Semantics, Abstract Interpretation, and Reasoning about Programs, pp. 1–17 (2013).
  9. 9.
    Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall International Series in Computer Science. Prentice Hall, Upper Saddle River (1993)zbMATHGoogle Scholar
  10. 10.
    Kuhn, T.S.: The Structure of Scientific Revolutions. University of Chicago Press, Chicago 2012 (1962)Google Scholar
  11. 11.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)CrossRefGoogle Scholar
  12. 12.
    Milner, R.: Communication and Concurrency. Prentice Hall, PHI Series in Computer Science (1989)zbMATHGoogle Scholar
  13. 13.
    Milner, R., Tofte, M.: Commentary on Standard ML. MIT Press, Cambridge (1991)Google Scholar
  14. 14.
    Popper, K.: The Logic of Scientific Discovery. Routledge, London (1959, 2002)Google Scholar
  15. 15.
    Wegner, P.: Research Paradigms in computer science. In: International Conference on Software Engineering (1976)Google Scholar
  16. 16.
    Wikipedia: Top-Down and Bottom-Up Design. Wikipedia (2018)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.DIKUUniversity of CopenhagenCopenhagenDenmark

Personalised recommendations