Skip to main content

On Revival of Algol-Concepts in Modern Programming and Specification Languages

  • Chapter

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

Abstract

Appearance of computing machines dates back to the 1940s and their corresponding scientific disciplines, computer science resp. informatics, have arisen in the 1960s. Nevertheless, fighting for appropriate programming and specification languages has not yet come to an end: The Java-programming language and the Abstract State Machines ASM are new and representative specimens which have arisen recently. These languages are even advancing and improving themselves: Original Java 1996, a flat language language without class nestings, towards more modern Java 2000 with nested classes, and Basic ASM resp. Evolving Algebras 1988/91 towards Turbo ASM 2003 where machines and rules show new features like naming, parameterizing, local states and recursive calls. These transitions inside Java resp. ASM remind at a much earlier transition from Fortran and Algol 58 to Algol 60 with its block concept and nested, parameterized, recursive and formal procedures. Aim of the present essay is to show that many of those new concepts incorporated in new Java and Turbo ASM were already available in Algol60.

This essay is a contribution to the Festschrift Symposium at UNU/IIST Macao, devoted to our dear colleagues Dines Bjørner and Zhou Chaochen on behalf of their 70th birthdays. Macao, 24th - 25th of September 2007.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Apt, K.R.: Ten years of Hoare’s logic, a survey, part I. ACM Transactions on Programming Languages and Systems 3, 431–483 (1981) (Tech. Report, Fac. of Economics, Erasmus Univ. Rotterdam, April 1979)

    Article  MATH  Google Scholar 

  • Backus, J.W., et al.: The FORTRAN Automatic Coding System. In: Proc. Western Joint Computing Conf., vol. 11, pp. 188–198 (1957)

    Google Scholar 

  • de Bakker, J.: Mathematical Theory of Program Correctness. Prentice Hall, Englewood Cliffs (1980)

    MATH  Google Scholar 

  • Bjorner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978)

    MATH  Google Scholar 

  • Blaue, C.: Anforderungen bei industriellem Softwareengineering, Procedurale Implementierungstechniken im objektorientierten Entwicklungsprozeß. Diss. Tech. Fak. CAU Kiel (2003), pp. 205, dissertation.de-Verlag im Internet, Berlin (2004)

    Google Scholar 

  • Börger, E., Bolognesi, T.: Remarks on Turbo ASMs for Functional Equations and Recursion Schemes. In: Börger, E., Gargantini, A., Riccobene, E. (eds.) ASM 2003. LNCS, vol. 2589, pp. 218–228. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  • Börger, E., Stärk, R.: Abstract State Machines. Springer, Heidelberg (2003)

    Google Scholar 

  • Clarke, E.M.: Programming language constructs for which it is impossible to obtain good Hoare–like axioms. J. Assoc. Comp. Mach. 26, 129–147 (1979)

    MATH  Google Scholar 

  • Clarke, E.M., German, S.M., Halpern, J.Y.: Effective Axiomatizations of Hoare Logics. JACM 30, 612–636 (1983)

    Article  MATH  Google Scholar 

  • Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model of static analysis of programs by construction or approximation of fixpoints. In: Proc. ACM Symp. POPL, pp. 238–252 (1977)

    Google Scholar 

  • Curry, H.B., Feys, R.: Combinatory Logic, vol. I. North–Holland, Amsterdam (1968)

    MATH  Google Scholar 

  • Dahl, O.-J.: The Roots of Object Orientation: The Simula Language. In: Broy, M., Denert, E. (eds.) Software Pioneers, Contributions to Software Engineering. sd & m Conf. on Software Pioneers, Bonn, 2001, pp. 79–90. Springer, Heidelberg (2002)

    Google Scholar 

  • Dahl, O.-J., Nygaard, K.: Class and Subclass Declarations. In: Buxton, J.N. (ed.) Simulation Programming Languages. Proc. IFIP Work. Conf., pp. 158–174. North Holland, Amsterdam (1968)

    Google Scholar 

  • Dijkstra, E.W.: Recursive Programming. Num. Math. 2, 312–318 (1960)

    Article  MATH  Google Scholar 

  • Fruja, N.G., Stärk, R.F.: The Hidden Computation Steps of Turbo Abstract State Machines. In: Börger, E., Gargantini, A., Riccobene, E. (eds.) ASM 2003. LNCS, vol. 2589, pp. 244–262. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  • Gosling, J., Joy, B., Steele, G.: The Java Language Specification, 1st edn. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  • Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  • Grau, A.A., Hill, U., Langmaack, H.: Translation of ALGOL60. In: Samelson, K. (ed.) Handbook for Automatic Computation Ib, Springer, NewYork (1967)

    Google Scholar 

  • Goerigk, W.: Korrektheit der Übersetzung objektorientierter Wissensrepräsentationssprachen mit statischer Vererbung. Diss. Math.-Nat. Fak., Bericht 9304, Inst. Inf. Prakt. Math. CAU Kiel, 1–105 (1993)

    Google Scholar 

  • Goerigk, W.: On Simulating Nested Procedures by Nested Classes. In: Czaja, L. (ed.) Proc. Worksh. Concurrency, Specification & Programming, Rucine 2005, p. 10. Warsaw (2005)

    Google Scholar 

  • Gurevich, Y.: Logic and the challenge of computer science. In: Börger, E. (ed.) Current Trends in Theoretical Computer Science, pp. 1–57. Computer Science Press (1988)

    Google Scholar 

  • Gurevich, Y.: Evolving algebras. A tutorial introduction. Bull. EATCS 43, 264–284 (1991)

    MATH  Google Scholar 

  • Hoare, C.A.R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–580 (1969)

    Article  MATH  Google Scholar 

  • Hoare, C.A.R.: Procedures and parameters: An axiomatic approach. In: Engeler, E. (ed.) Symposium on semantics of algorithmic languages. Lecture Notes in Mathematics, vol. 188, pp. 102–116. Springer, Heidelberg (1971)

    Chapter  Google Scholar 

  • Hoare, C.A.R.: Personal communications. EU-ESPRIT-BRA-Projekt Provably Correct Systems - ProCoS, Oxford (1990) Cambridge (2001)

    Google Scholar 

  • Harel, D.: First Order Dynamic Logic. In: Harel, D. (ed.) LNCS, vol. 68, Springer, Heidelberg (1979)

    Google Scholar 

  • Hungar, H.: Über Komplexitätsfragen Hoarescher Beweissysteme: Effiziente Beweiserstellung und komplexitätsbedingte Grenzen bestimmter Systeme. Bericht 9007, Inst. Inf. Prakt. Math., CAU Kiel, p. 140 (1990)

    Google Scholar 

  • Ichbiah, J.D.: Ada Reference Manual. In: The Programming Language Ada. LNCS, vol. 106, Springer, Heidelberg (1981)

    Google Scholar 

  • Igarashi, A., Pierce, B.C.: On Inner Classes. Information and Computation 177, 56–89 (2000)

    Article  Google Scholar 

  • Jensen, K., Wirth, N.: PASCAL User Manual and Report. Springer, Heidelberg (1975)

    MATH  Google Scholar 

  • Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice Hall, Englewood Cliffs (1989)

    Google Scholar 

  • Kandzia, P., Langmaack, H.: On a theorem of McGowan concerning the “most recent”-property of programs. Bericht A 74/07, Fachb. Ang. Math. Inf., Univ. Saarland, p.19 (1974)

    Google Scholar 

  • Kandzia, P.: On the “most recent”-property of ALGOL–like programs. In: Loeckx, J. (ed.) Automata, Languages and Programming. LNCS, vol. 14, pp. 97–111. Springer, Heidelberg (1974)

    Google Scholar 

  • Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice Hall, Englewood Cliffs (1978)

    Google Scholar 

  • Kruseman Aretz, F.E.J.: Personal communication. Organizer: G. Alberts, Pioneering Software in the 1960s in Germany, The Netherlands, and Belgium. Conf. CWI Amsterdam (November 2-4, 2006)

    Google Scholar 

  • Langmaack, H.: On Correct Procedure Parameter Transmission in Higher Programming Languages. Acta Informatica 2(2), 110–142 (1973)

    Article  MATH  Google Scholar 

  • Langmaack, H.: On procedures as open subroutines I, II. Acta Informatica 2, 311–333 (1973) and Acta Informatica 3, 227–241 (1974)

    Article  Google Scholar 

  • Langmaack, H.: Zum Begriff der Modularität von Programmiersprachen. In: Schlender, B., Frielinghaus, W. (eds.) GI - 3. Fachtagung über Programmiersprachen. LNCS, vol. 7, pp. 1–12. Springer, Heidelberg (1974)

    Google Scholar 

  • Langmaack, H.: A new transformational approach to partial correctness proof calculi for ALGOL68–like programs with finite modes and simple side–effects. Annals of Discrete Mathematics 24, 73–102 (1985)

    Google Scholar 

  • Langmaack, H.: Klaus Samelsons frühe Beiträge zur Informatikentwicklung. Informatik Spektrum 18, 132–137 (2002)

    Article  Google Scholar 

  • Langmaack, H.: An Algol-View on Turbo ASM. In: Zimmermann, W., Thalheim, B. (eds.) ASM 2004. LNCS, vol. 3052, p. 20. Springer, Heidelberg (2004)

    Google Scholar 

  • Langmaack, H., Olderog, E.R.: Present–day Hoare–like systems for programming languages with procedures: power, limits and most likely extensions. In: de Bakker, J.W., van Leeuwen, J. (eds.) Automata, Languages and Programming. LNCS, vol. 85, pp. 363–373. Springer, Heidelberg (1980)

    Google Scholar 

  • Langmaack, H., Kröger, H., Kölsch, R.-T.: Scriptum zum Compilerbau-Praktikum SS 1975 u. WS 1975/76. Inst. f. Informatik U. Prakt. Math., CAU zu Kiel, p. 68 (1976)

    Google Scholar 

  • Lippe, W.M., Simon, F.: A Formal Notion for Equivalence of ALGOL–like Programs. In: Robinet, B. (ed.) Transformationes de Programmes, 3e coll. int. sur la programmation, Paris 1978, pp. 141–156, Dunod, Paris (1978)

    Google Scholar 

  • Loeckx, J., Sieber, K.: The Foundations of Program Verification. Wiley, Chichester (1984)

    Google Scholar 

  • McCarthy, J., et al.: Lisp 1.5 Programmer’s Manual. The M.I.T. Press, Cambridge Mas (1965)

    Google Scholar 

  • McGowan, C.L.: The “most recent”-error: its causes and correction. Proc. ACM Conf. on Proving assertions about programs. SIGPLAN Notices 7(1), 191–202 (1972)

    Article  Google Scholar 

  • Mirkowska, G., Salwicki, A.: Algorithmic Logic. D.Reidel Publ. Comp. Dordrecht, PWN–Polish Scient. Publ. Warsaw (1987)

    Google Scholar 

  • Milne, R., Strachey, C.: A Theory of Programming Language Semantics, parts a, b. Chapman and Hall, Sydney, Australia (1976)

    Google Scholar 

  • Milner, R., Tofte, M., Harper, R.: The Definition of ML. MIT Press, Cambridge (1990)

    Google Scholar 

  • Naur, P., et al.(ed.) Report on the Algorithmic Language ALGOL60. Num. Math. 2, 106–136 (1960)

    Article  Google Scholar 

  • Naur, P., et al.(ed.) Revised Report on the Algorithmic Language ALGOL60. Num. Math. 4, 420–453 (1963)

    Google Scholar 

  • Olderog, E.R.: Korrektheits- und Vollständigkeitsaussagen über Hoarsche Ableitungskalküle. Diplomarbeit, Christian-Albrechts-Univ. Kiel (1979)

    Google Scholar 

  • Olderog, E.R.: Sound and Complete Hoare–like Calculi Based on Copy Rules. Acta Informatica 16, 161–197 (1981)

    Article  MATH  Google Scholar 

  • Olderog, E.R.: Characterisierung Hoarescher Systeme für ALGOL–ähnliche Programmiersprachen. Dissertation, Inst. f. Informatik u. Prakt. Math., Univ. Kiel, Bericht 5/81 (1981)

    Google Scholar 

  • Olderog, E.R.: Correctness of Programs with Pascal–like Procedures without Global Variables. Theoretical Computer Science 30, 49–90 (1984)

    Article  MATH  Google Scholar 

  • Perlis, A.J., Samelson, K.: ACM Comunittee on Programming Languages and GAMM Comittee on Programming. Report on the Algorithmic Language ALGOL. Num. Math. 1, 41–60 (1959)

    MATH  Google Scholar 

  • Poetzsch-Heffter, A., Müller, P.: A Programming Logic for Sequential Java. In: Swierstra, S.D. (ed.) ESOP 1999 and ETAPS 1999. LNCS, vol. 1576, pp. 162–176. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  • Plotkin, G.D.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Comp. Sc. Dept., Aarhus, Denmark (September 1981)

    Google Scholar 

  • Samelson, K., Bauer, F.L.: Sequentielle Formelübersetzung. Elektr. Rechenanl 1(4), 176–182 (1959)

    MATH  Google Scholar 

  • Scott, D.S.: Outline of a Mathematical Theory of Computation. In: Proc. 4th Annual Princeton Conference on Information Sciences and Systems, pp. 169–176. Princeton, Princeton (1970)

    Google Scholar 

  • Salwicki, A.: Formalized Algorithmic Logic. Bull. PAS 18, 227–332 (1970)

    MATH  Google Scholar 

  • Samelson, K.: Probleme der Programmierungstechnik. In: Int. Koll. ü. Probleme d. Rechentechnik, Dresden 1955, pp. 61–68. Berlin: VEB Deutscher Verlag der Wissenschaften (1957)

    Google Scholar 

  • Steele jr. G.L.: CommonLisp: The Language. Digital Press (1984)

    Google Scholar 

  • van Wijngaarden, A., Mailloux, B.J., Peck, J.E.L., Koster, C.H.A.: Report on the Algorithmic Language ALGOL68. Num. Math. 14, 79–218 (1969)

    Article  MATH  Google Scholar 

  • Wilhelm, R., Maurer, D.: Übersetzerbau. Theorie, Konstruktion, Generierung. Springer, Heidelberg (1992)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Cliff B. Jones Zhiming Liu Jim Woodcock

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Langmaack, H. (2007). On Revival of Algol-Concepts in Modern Programming and Specification Languages. In: Jones, C.B., Liu, Z., Woodcock, J. (eds) Formal Methods and Hybrid Real-Time Systems. Lecture Notes in Computer Science, vol 4700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75221-9_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-75221-9_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-75220-2

  • Online ISBN: 978-3-540-75221-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics