RAM: A Hypothetical Computer!
Algorithms can be studied independently of the programming language used to implement them and the hardware used to execute them. This is desired as it enables us to compare algorithms and design more efficient ones before implementation.
In this course, we stick to the Java programming language to express algorithms. For a machine-independent analysis of algorithms, we introduce a hypothetical computer called the Random Access Machine or RAM (as defined in "Algorithm Design Manual" by Steven Sekiena [with some adjustments]).
Resources
- The Algorithm Design Manual, 2nd Edition by Steven Skiena.
- Wikipedia entry on Random-access machine.