When read as recommendations to the programmer, the abstraction principle can be generalized as the "don't repeat yourself" (DRY) principle, which recommends avoiding the duplication of information in general, and also avoiding the duplication of human effort involved in the software development process.
Where similar functions are carried out by distinct pieces of code, it is generally beneficial to combine them into one by abstracting out the varying parts.As a requirement of the programming language, in its formulation by David A. Schmidt in The structure of typed programming languages (1994), the abstraction principle reads:.
[3] The phrases of any semantically meaningful syntactic class may be named.The abstraction principle is mentioned in several books.
The quest for richer abstractions that allow less duplication in complex scenarios is one of the driving forces in programming language research and design.
"Don't repeat yourself", or the "DRY principle", is a generalization developed in the context of multi-tier architectures, where related code is by necessity duplicated to some extent across tiers, usually in different languages.
In practical terms, the recommendation here is to rely on automated tools, like code generators and data transformations to avoid repetition.