Skip to main content
Log in

A partial evaluator for the Maruti hard real-time system

  • Published:
Real-Time Systems Aims and scope Submit manuscript

Abstract

The use of high-level programming constructs (such as recursion, loops, and dynamic data structures) makes it difficult to estimate at compile-time the execution time and resource requirements of a program. We contend thatpartial evaluation provides a solution to this problem. Given a real-time program employing high level language constructs, partial evaluation uses information about the execution environment to create a specialized program tailored for that particular environment. Specialized programs can be better analyzed to estimate accurately the execution time and resource requirements. Our techniques offer substantially greater power and flexibility to the programmer than previous estimation techniques for real-time systems.

This paper describes the application of partial evaluation to programming languages for hard-real-time systems, gives examples of programs handled by our techniques, discusses how the system appears from a user's perspective, provides an overview of the partial evaluation techniques employed using examples and describes some limitations of our techniques and possible solutions.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aho, A.V., Sethi, R. and Ullman, J. 1986.Compilers: Principles, Techniques and Tools. Reading, MA: Addison-Wesley.

    Google Scholar 

  2. Balasundaram, V. 1989. Compile-time detection of race conditions in a parallel program. In3rd International Conference on Supercomputing, June, pp. 175–185, ACM.

  3. Berlin, A.A. 1990. Compiling scientific code using partial evaluation.IEEE Computer Magazine, 23(12):25–37.

    Google Scholar 

  4. Bulyonkov, M.A. (1984). Polyvariant mixed computation for analyzer programs.Acta Informatica, 21:473–484.

    Google Scholar 

  5. Consel, C. 1990. Binding time analysis for higher-order untyped functional languages. InLisp and Functional Programming '90, ACM.

  6. Ershov, A.P. and Ostrovsky, B.N. 1986. Controlled mixed computation and its applications to systematic development of language-oriented parsers. In (L.G.L.T. Meertens, ed.)IFIP TC2/WG 2.1 Working Conference on Program Specification and Transformation, pp. 31–48. Amsterdam: North Holland.

    Google Scholar 

  7. Ershov, A.P. 1977. On the partial evaluation principle.Information Processing Letters, 6(2):38–41.

    Google Scholar 

  8. Ershov, A.P. 1982. Mixed computation: Potential applications and problems for study.Theoretical Computer Science, 18:41–67.

    Google Scholar 

  9. Ghezzi, C., Mandrioli, D., and Tecchio, A. 1985. Program simplification via symbolic interpretation. In (S.N. Maheshwari, ed.)Foundations of Software Technology and Theoretical Computer Science, Fifth Conference, New Delhi, pp. 116–128. Berlin, New York: Springer-Verlag, LNCS 206.

    Google Scholar 

  10. Hoare, C.A.R. 1969. An axiomatic basis for computer programming.Communications of ACM, 12(10):576–583.

    Google Scholar 

  11. Jones, N.D., Sestoft, P., and Søndergaard, H. 1985. An experient in partial evaluation: The generation of a compiler generator. In (J.P. Jounnaud, ed.),Rewriting Techniques and Applications, LNCS 202, Berlin, New York: Springer-Verlag.

    Google Scholar 

  12. Jones, N.D., Sestoft, P., and Søndergaard, H. 1989. Mix: A self-applicable partial evaluator for experiments in compiler-generator.LISP and Symbolic Computation, 2(1):9–50.

    Google Scholar 

  13. Kopetz, H., Damm, A., Koza, Ch., Mulazzani, M., Schwalbl, W., Senft, Ch., and Zainlinger, R., 1989. Distributed fault-tolerant real-time systems: The MARS approach.IEEE Micro, 9(1):25–40.

    Google Scholar 

  14. Kligerman, E., and Stoyenko, A.D. 1986. Real-time euclid: a language for reliable real-time systems.IEEE Trans. on Software Engineering, SE-12(9):941–949, September.

    Google Scholar 

  15. Levi, S.T. and Agrawala, A.K. 1987. Objects architecture for real-time, distributed, fault tolerant operating systems. In6th IEEE Workshop on Real-Time Operating Systems, Cambridge, MA, July, pp. 142–148.

  16. Levi, S.T., and Agrawala, A. 1990.Real Time System Design. New York: McGraw Hill.

    Google Scholar 

  17. Al Mok and Amarsinghe, K. 1987. Evaluating tight execution time bounds of programs by annotations. In6th Workshop on Real-Time Operating Systems and Software. IEEE, May, pp. 74–80.

  18. Meyer, U. 1991. Techniques for partial evaluation of imperative languages. InSymposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-'91), ACM SIGPLAN Notices 26(9):94–105.

  19. Michie, D. 1968. “Memo” functions and machine learning.Nature, 218:19–22, April.

    Google Scholar 

  20. Nirkhe, V. 1992.Application of Partial Evaluation to Real-Time Programming. Ph.D. thesis, Department of Computer Science, University of Maryland. CS-TR-2904.

  21. Nirkhe, V. and Pugh, W. 1992. Partial evaluation of a high level imperative programming language with applications in hard real-time systems. In12th ACM Conference on Principles of Programming Languages, pp. 269–280, January.

  22. Nirkhe, V., Tripathi, S., and Agrawala, A. 1990. Language support for the Maruti real-time system. In11th IEEE Real-Time Systems Symposium, December, pp. 257–266.

  23. Owicki, S. and Gries, D. 1976. Verifying properties of parallel programs: an axiomatic approach.Communications of ACM, 19(5):279–285.

    Google Scholar 

  24. Puschner, P. and Koza, Ch. 1989. Calculating the maximum execution times of real-time programs.Real-Time Systems, 1(2):159–176.

    Google Scholar 

  25. Park, C.Y., and Shaw, A.C. 1991. Experimenting with a program timing tool based on source-level timing schema.IEEE Computer Magazine, 24(5):48–57, May.

    Google Scholar 

  26. Tayor, R.N. 1983. A general-purpose algorithm for analyzing concurrent programs.Communications of ACM, 26(5):362–376.

    Google Scholar 

  27. Shaw, A. 1989. Reasoning about time in higher-level language software.IEEE Transactions on Software Engineering, 15(7):875–889.

    Google Scholar 

  28. Stoyenko, A.D. and Marlowe, T.J. 1992. Polynomial-time transformations and schedulability analysis of parallel real-time programs with restricted resource contention.Real-Time Systems Journal, 4(4).

  29. Stankovic, J.A. and Ramamritham, K. 1989. The spring kernel: A new paradigm for real-time operating systems.ACM SIGOPS Operating Systems Review, 23(3):54–71.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Nirkhe, V., Pugh, W. A partial evaluator for the Maruti hard real-time system. Real-Time Syst 5, 13–30 (1993). https://doi.org/10.1007/BF01088695

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01088695

Keywords

Navigation