Abstract:
The advantages of programming in a high level language include abstraction and portability. Abstraction means programmers can describe algorithms in a "high level " notation that is independent of details about the machine that will execute the algorithm. Portability is a byproduct of abstraction that allows programs to be run on a wide variety of computers as long as there is a compiler that will translate them for each machine. In most programming situations reality is close to the ideal. Compilers for many high level languages are very good at generating efficient and portable code for typical computer systems, so programmers are able to express algorithms in high level languages and expect them to run efficiently on almost any machine. There may be a few isolated places where a programmer who invests a lot of effort may be able to write a more efficient routine in assembly language (the native language of the machine), but it is hardly ever worth the effort to write an entire program in assembly language. Obviously when all or part of a program is written in assembler it is not as abstract, since assembly language is the language of the machine and not the language of the application, and it is no longer portable from one machine to another.
Citations
|
3148
|
Computer Architecture: A Quantitative Approach
– Hennessy, Patterson
- 1996
|
|
1206
|
Introduction to Parallel Algorithms and Architectures: Arrays
– Leighton
- 1992
|
|
302
|
Performance of Various Computers Using Standard Linear Equations Software, (Linpack Benchmark Report
– Dongarra
- 1998
|
|
300
|
Ethernet: Distributed packet switching for local computer networks
– Metcalfe, Boggs
- 1976
|
|
269
|
Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities
– Amdahl
- 1967
|
|
254
|
Distributed shared memory: A survey of issues and algorithm
– Nitzberg, Lo
- 1991
|
|
166
|
The cosmic cube
– Seitz
- 1985
|
|
160
|
High Performance Computer Architecture
– Stone
- 1993
|
|
140
|
The Architecture of Pipelined Computers
– Kogge
- 1981
|
|
121
|
Introduction to parallel and vector solution of linear systems
– ORTEGA
- 1988
|
|
113
|
Some Computer Organizations and Their Effectiveness
– Flynn
- 1972
|
|
92
|
Piogramming for Parallelism
– Karp
- 1987
|
|
36
|
VLSI Processor Architecture
– Hennessy
- 1984
|
|
31
|
The performance of multicomputer interconnection networks
– Reed
- 1987
|
|
30
|
The Cray-1 computer system
– Russel
- 1978
|
|
24
|
Performance of multiprocessor interconnection networks
– Bhuyan, Yang, et al.
- 1989
|
|
23
|
Computer Structures: Principles and Examples
– Siewiorek, Bell, et al.
- 1982
|
|
19
|
On the Impact of Communication Complexity in the Design of Parallel Numerical Algorithms
– Gannon, Rosendale
- 1984
|
|
18
|
Parallel Computers 2
– Hockney, Jesshope
- 1988
|
|
14
|
Interconnection Networks for Large Scale Parallel Processing
– Siegel
- 1985
|
|
12
|
Highly Parallel Computation
– Denning, Tichy
- 1990
|
|
11
|
Advanced Parallel Processing with Supercomputer Architectures
– Hwang
- 1987
|
|
9
|
The Illiac IV System
– Bouknight, Denenberg, et al.
- 1972
|
|
9
|
Parallel: A survey of available parallel computing systems
– Wilson, Present
- 1991
|
|
9
|
The Ultimate Computer
– Ware
- 1972
|
|
6
|
Advanced Computer Architecture”, McGraw-Hill
– Hwang
- 1993
|
|
3
|
Concepts and Notations for Concurrent
– Andrews, Schneider
- 1983
|
|
3
|
The Future of High Performance Computers in
– Bell
- 1989
|
|
2
|
Remarks for the IFIP Congress '83 Panel on How to Obtain High Performance for
– Buzbee
- 1983
|
|
2
|
Detailed explanation of superscalar execution in a modern RISC processor
– Grohoski
- 1990
|
|
2
|
Form and Content in Computer
– Minsky
- 1970
|
|
2
|
Reduced Instruction Set Computers, Comm
– Patterson
- 1985
|
|
2
|
Parallel Iterative Solution of Sparse Linear Systems
– Reed, Patrick
- 1985
|