![]() ![]() Here, the adding of extra levels of indirection may cause higher layers to duplicate the functionality of lower layers, leading to inefficiency, and functionality at one layer may need data present only at another layer, which fundamentally violates the goal of separation into different layers. For example, the use of protocol layering in computer networks, which today is ubiquitous, has been criticized in ways that are typical of more general disadvantages of abstraction. All problems in computer science can be solved by another level of indirection, is a famous quote attributed to Butler Lampson, the scientist who in 1972. All attempts to implement these more general abstractions have relied on a layer of indirection. When in doubt, add another layer of indirection Posted 12:15 UTC (Fri) by dlang (guest, 313) In reply to: When in doubt, add another layer of indirection by jengelh Parent article: Object-oriented design patterns in the kernel, part 1. The theorem is often expanded by the humorous clause "…except for the problem of too many levels of indirection," referring to the fact that too many abstractions may create intrinsic complexity issues of their own. inal point-to-point abstraction and these more general ones. It is also sometimes misattributed to Butler Lampson. ![]() 1 This is often deliberately misquoted with 'abstraction' substituted for 'indirection'. The theorem does not describe an actual theorem that can be proven rather, it is a general principle for managing complexity through abstraction. A famous aphorism of David Wheeler is 'All problems in computer science can be solved by another level of indirection'. The intermediary is the cause of indirection, and is (strictly) an entity. ![]() "We can solve any problem by introducing an extra level of indirection." Proposed: Indirection refers to dispatch of communications via an intermediary. The fundamental theorem of software engineering ( FTSE) is a term originated by Andrew Koenig to describe a remark by Butler Lampson attributed to David J. In computer programming, indirection (also called dereferencing) is the ability to reference something using a name, reference, or container instead of the. General principle for managing complexity through abstraction ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |