Journal of Computing Sciences in Colleges
Adding object-orientation to Genesis
Journal of Computing Sciences in Colleges
Design of an extensible interpreter using information hiding
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
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).