Abstractions, Their Algorithms, and Their Compilers
Notice it is the second part that distinguishes abstractions in computer science from abstractions in other fields. Each abstraction thus allows us to design algorithms to manipulate data in certain specific ways. We want to design "good" abstractions, where the goodness of an abstraction is multidimensional. The ease with which an abstraction can be used to design solutions is one important metric. For example, we shall discuss in Section 3.1 how the relational model led to the proliferation in the use of databases. There are other performance metrics, such as the running time, on serial or parallel machines, of the resulting algorithms. Likewise, we favor abstractions that are easily implemented and that make it easy to create solutions to important problems. Finally, some abstractions offer a simple way to measure the efficiency of an algorithm (as we can find "big-oh" estimates of the running time of programs in a conventional programming language), while other abstractions require that we specify an implementation at a lower level before we can discuss algorithm efficiency, even approximately.
Jan-25-2022, 12:07:47 GMT
- Country:
- North America
- United States
- New York > New York County
- New York City (0.04)
- New Jersey > Mercer County
- Princeton (0.04)
- Massachusetts > Middlesex County
- Cambridge (0.04)
- California > Santa Clara County
- Stanford (0.04)
- New York > New York County
- Canada > Ontario
- Toronto (0.05)
- United States
- Europe > United Kingdom
- England > Cambridgeshire > Cambridge (0.04)
- North America
- Technology:
- Information Technology
- Software > Programming Languages (1.00)
- Hardware (1.00)
- Databases (1.00)
- Data Science (0.92)
- Software Engineering (0.87)
- Artificial Intelligence
- Representation & Reasoning (1.00)
- Natural Language > Grammars & Parsing (1.00)
- Information Technology