What is the difference between layer of abstraction and level of . . . Abstraction deals with simplification, indirection deals with location Abstraction is a mechanism that "hides" complicated details of a object in terms of simpler, easier to manipulate terms In programming, a good example is the difference in details between machine code and the various tools for creating applications that are ultimately based on machine code Consider creating a Windows
C++ Pointers: Number of levels of Indirection 2 Note that a linked list of 42 elements contains 42 levels of indirection for accessing the last element To get to the element of a one-element list, you use a single indirection: given a pointer to the list, you do something like p->data To get to the second element, two indirections are required: p->next->data Each arrow is an indirection
What is an example, in Javascript, of the difference between . . . The statement "some types of abstraction may actually be indirection" doesn't necessarily make sense under scrutiny There are different kinds of abstraction, but in very general terms, an abstraction is a thing that you place between two interacting components, and make both of those components depend on that abstraction, so that they can vary
In C, is * an operator, or part of a type in a declaration? In C, * is called the indirection operator or the dereference operator I understand how it works when it is used in a statement It makes sense to write *p or * p, considering that it is a unary
programming practices - Can too much abstraction be bad? - Software . . . The very first words of The C++ Programming Language, 4th edition: All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection – David J Wheeler (David Wheeler was my thesis advisor The quote without the important last line is sometimes called "The first law of Computer Science ")