A computer program, from one perspective, is a sequence of instructions that dictate the flow of electrical
impulses within a computer system. These impulses affect the computer’s memory and interact with
the display screen, keyboard, mouse, and perhaps even other computers across a network in such a way
as to produce the “magic” that permits humans to perform useful tasks, solve high-level problems, and
play games. One program allows a computer to assume the role of a financial calculator, while another
transforms the machine into a worthy chess opponent. Note the two extremes here:
• at the lower, more concrete level electrical impulses alter the internal state of the computer, while
• at the higher, more abstract level computer users accomplish real-world work or derive actual pleasure.
So well is the higher-level illusion achieved that most computer users are oblivious to the lower-level
activity (the machinery under the hood, so to speak). Surprisingly, perhaps, most programmers today write
software at this higher, more abstract level also. An accomplished computer programmer can develop
sophisticated software with little or no interest or knowledge of the actual computer system upon which it
runs. Powerful software construction tools hide the lower-level details from programmers, allowing them
to solve problems in higher-level terms.
The concepts of computer programming are logical and mathematical in nature. In theory, computer
programs can be developed without the use of a computer. Programmers can discuss the viability of a
program and reason about its correctness and efficiency by examining abstract symbols that correspond
to the features of real-world programming languages but appear in no real-world programming language.
While such exercises can be very valuable, in practice computer programmers are not isolated from their
machines. Software is written to be used on real computer systems. Computing professionals known
as software engineers develop software to drive particular systems. These systems are defined by their
underlying hardware and operating system. Developers use concrete tools like compilers, debuggers, and
profilers. This chapter examines the context of software development, including computer systems and
tools.
A computer program, from one perspective, is a sequence of instructions that dictate the flow of electricalimpulses within a computer system. These impulses affect the computer’s memory and interact withthe display screen, keyboard, mouse, and perhaps even other computers across a network in such a wayas to produce the “magic” that permits humans to perform useful tasks, solve high-level problems, andplay games. One program allows a computer to assume the role of a financial calculator, while anothertransforms the machine into a worthy chess opponent. Note the two extremes here:• at the lower, more concrete level electrical impulses alter the internal state of the computer, while• at the higher, more abstract level computer users accomplish real-world work or derive actual pleasure.So well is the higher-level illusion achieved that most computer users are oblivious to the lower-levelactivity (the machinery under the hood, so to speak). Surprisingly, perhaps, most programmers today writesoftware at this higher, more abstract level also. An accomplished computer programmer can developsophisticated software with little or no interest or knowledge of the actual computer system upon which itruns. Powerful software construction tools hide the lower-level details from programmers, allowing themto solve problems in higher-level terms.The concepts of computer programming are logical and mathematical in nature. In theory, computerprograms can be developed without the use of a computer. Programmers can discuss the viability of aprogram and reason about its correctness and efficiency by examining abstract symbols that correspondto the features of real-world programming languages but appear in no real-world programming language.While such exercises can be very valuable, in practice computer programmers are not isolated from theirmachines. Software is written to be used on real computer systems. Computing professionals knownas software engineers develop software to drive particular systems. These systems are defined by theirunderlying hardware and operating system. Developers use concrete tools like compilers, debuggers, andprofilers. This chapter examines the context of software development, including computer systems andtools.
การแปล กรุณารอสักครู่..
