Skip to main content

Advertisement

Log in

A unified approach for developing efficient algorithmic programs

  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

Abstract

A unified approach called partition-and-recur for developing efficient and correct algorithmic programs is presented. An algorithm (represented by recurrence and initiation) is separated from program, and special attention is paid to algorithm manipulation rather than program calculus. An algorithm is exactly a set of mathematical formulae. It is easier for formal derivation and proof. After getting efficient and correct algorithm, a trivial transformation is used to get a final program. The approach covers several known algorithm design techniques, e.g. dynamic programming, greedy, divide-and-conquer and enumeration, etc. The techniques of partition and recurrence are not new. Partition is a general approach for dealing with complicated objects and is typically used in divide-and-conquer approach. Recurrence is used in algorithm analysis, in developing loop invariants and dynamic programming approach. The main contribution is combining two techniques used in typical algorithm development into a unified and systematic approach to develop general efficient algorithmic programs and presenting a new representation of algorithm that is easier for understanding and demonstrating the correctness and ingenuity of algorithmic programs.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  1. Backhouse R C. Program Construction and Verification. Prentice-Hall, London, 1986.

    Google Scholar 

  2. Dijkstra E W. A Discipline of Programming. Prentice-Hall, New Jersey, 1976.

    MATH  Google Scholar 

  3. Dijkstra E W, Scholten C S. Predicate Calculus and Program Semantics. Springer-Verlag, New York, 1990.

    MATH  Google Scholar 

  4. Gries D. The Science of Programming. Springer-Verlag, New York, 1981.

    MATH  Google Scholar 

  5. Paull M C. Algorithm Design—A Recursion Transformation Framework. John Wiley & Sons, 1988.

  6. Smith D R. KIDS: A semiautomatic program development system.IEEE Trans. on Software Engineering, 1990, 16(9): 1024–1043.

    Article  Google Scholar 

  7. Smith D R (ed). Structure and Design of Problem Reduction Generators, Constructioning Program from Specification. IFIP, 1991, pp. 1320–1328.

  8. Xu Jiafu. The Automation of Software. Qinghua University Press, 1993.

  9. Baase S. Computer Algorithms, Introduction to Design and Analysis (2nd edition). Addison-Wesley, 1991, pp. 15–17.

  10. Beery D M. Whether formal methods? Some thoughts on the application of formal methods. InWorkshop on Increasing the Practical Impact of Formal Methods for Computer-Aided Software Development: Software Evolution, Sept. 1994, pp. 22–37.

  11. Luqi. Monterey workshop 94: Software evolution. InProc. of Monterey Workshop on Increasing the Practical Impact of Formal Methods for Computer-Aided Software Development: Software Evolution, Sept. 1994, pp. 1–9.

  12. Manber U. Using induction to design algorithms.CACM, 1988, 31(11): 1300–1313.

    Google Scholar 

  13. Manber U. Introduction to Algorithms—A Creative Approach. Addison-Wesley, 1989.

  14. Gries D. A note on a standard strategy for developing loop invariants and loops.Science of Computer Programming, 1982, 2: 207–214.

    Article  MATH  MathSciNet  Google Scholar 

  15. Horowitz E. Design and classification of algorithms. InAcademic Encyclopedia Computer Science, Third Edition, Ralston A, Reilly E D (eds.), Van Nostrand, Reinhold, New York, 1993, pp.33–37.

    Google Scholar 

  16. Xue Jinyun, David G. Developing a linear algorithm for cubing a cycle permutation.Science of Computer Programming, 1988, 11: 161–165.

    Article  MATH  MathSciNet  Google Scholar 

  17. Knuth D. The Art of Computer Programming, Vol.1. Addison-Wesley, 1973.

  18. Gries D, Volpano D. The transform—A new language construct.Structure Programming, 1991, 11: 1–10.

    Google Scholar 

  19. Kingston J H. Algorithms and Data Structures, Design, Correctness, Analysis. Addison-Wesley, 1990.

  20. Xue Jinyun. Two new strategies for developing loop invariants and their applications.Journal of Computer Science and Technology, 1993, 8(3).

  21. Gries D, Xue Jinyun. The Hopcroft-Tarjan Planarity Algorithm: Presentations and Improvements. TR88-906, CS Dept. of Cornell University.

  22. Xue Jinyun. Design and Proof of Algorithm and Programs. Textbook used in Jiangxi Normal University, 1994.

  23. Aho A, Hopcroft J, Ullman J. Data Structures and Algorithms. Addison-Wesley, 1983.

  24. Xue Jinyun. A systematic method for designing and proving algorithmic programs. InAdvances of Theoretical Computer Science, Proc. of National Theoretical Computer Science Conf. of China, 1994.

  25. Xue Jinyun. The standard proof and formal derivation of complex algorithmic programs. InThe 8th Academic Conf. of China Computer Federation, Beijing, 1992, pp. 61–68.

  26. Knuth D. A Simple Program Whose Proof Isn’t, Beauty is Our Business, A Birthday Salute to E.W. Dijkstra. Feijen W H Jet al (eds), 1990.

  27. Xue Jinyun, Davis R, Lin F. A simple program whose derivation and proof are also. (to appear inSoftware Concepts and Tools)

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was supported by the 863 Hi-Tech Programme and the National Natural Science Foundation of China.

Xue Jinyun graduated from Department of Mathematics of Nanjing University in 1970. From Dec. 1985 to April 1988, he worked as a visiting scholar at Cornell University. After June 1995, he spent 10 months as a visiting scholar at Santa Clara University. He is a Professor and the Director of Computer Software Institute at Jiangxi Normal University. His research interests include Cover’s theory of algorithms and programs, software engineering and computer-aided instruction.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Xue, J. A unified approach for developing efficient algorithmic programs. J. of Comput. Sci. & Technol. 12, 314–329 (1997). https://doi.org/10.1007/BF02943151

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Keywords

Navigation