Algorithms in Genesis

  • Authors:
  • Larry J. Morell

  • Affiliations:
  • Arkansas Tech University, Russellville, Arkansas

  • Venue:
  • Proceedings of the 2nd annual conference on Mid-south college computing
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper introduces an algorithmic design language called Genesis. The purpose of this language is to introduce the concepts of algorithm design to beginning programmers. Genesis allows algorithms to be defined that are largely machine-independent, reusable, easily translatable to typical procedural languages, while maintaining an appropriate level of abstraction. Three features of Genesis are proposed to replace basic iteration. Generators allow the user to specify a desired pattern of access to a data stream or structure. Filters allow the user to specify processing for an arbitrary stream of access points. Pipes connect generators to filters to allow the processing defined by the filters to be applied at the access points defined by the generator. This separation of traditional loops into pipelines reduces the complexity for writing many classic algorithms. Another advantage of the new notation is that it provides sufficient abstraction with minimal syntax that allows a student to effectively write an algorithm without having to think in terms of traditional procedural code (e.g. Java or C).