Software abstraction
Abstraction is the holy grail of programming in highlevel languages. Abstraction allows programmers to focus their attention on what needs to be done, instead of how it needs to be done. The programmers can employ abstractions without concern about how they are implemented. Consider a simple example of a library ‘sort’ routine that programmers use. The programmers need not be concerned with how the sort routine is implemented; all they need to know is, what are the arguments that need to be supplied to the sort routine, and how does it return the results. That allows them to use the ‘sort’ routine with minimal effort. Similarly, FoQsLGHr EDsLF GDWD WySHs suFK Ds WKH LQWHJHr or floDW, supported by a high-level programming language. mrogrammers can use these data types and the operations supported on them without having to be concerned with how those operations are implemented, or how the integer data type is internally represented inside the machine. Abstraction is useful because it allows programmers to think and spend their time on solving sSHFLfiF SroEOHPs, wKLOH PDNLQJ usH oI WKH DEsWrDFWLoQs provided by the high-level programming language. It improves programmer productivity and facilitates ease of programming.
Many high-level programming languages support abstract data types such as sets, lists or maps, in addition Wo EuLOW-LQ WySHs suFK Ds WKH LQWHJHr, FKDrDFWHr or floDW.