System Programming

Submitted by: Submitted by

Views: 46

Words: 8509

Pages: 35

Category: Science and Technology

Date Submitted: 03/10/2015 02:56 PM

Report This Essay

Course code: com 212

Course Title: Introduction to System Programming

System programming (or systems programming) is the activity of computer programming system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user (e.g. word processor), whereas systems programming aims to produce software which provides services to the computer hardware (e.g. disk defragmenter). It requires a greater degree of hardware awareness.

The following attributes characterize systems programming:

* The programmer will make assumptions about the hardware and other properties of the system that the program runs on, and will often exploit those properties, for example by using an algorithm that is known to be efficient when used with specific hardware.

* Usually a low-level programming language or programming language dialect is used that:

* can operate in resource-constrained environments

* is very efficient and has little runtime overhead

* has a small runtime library, or none at all

* allows for direct and "raw" control over memory access and control flow

* lets the programmer write parts of the program directly in assembly language

* Often systems programs cannot be run in a debugger. Running the program in a simulated environment can sometimes be used to reduce this problem.

Systems programming is sufficiently different from application programming that

Application software is a set of one or more programs designed to carry out operations for a specific application. Application software cannot run on itself but is dependent on system software to execute. Examples of application software include MS Word, MS Excel, a console game, a library management system, a spreadsheet system etc.

The term is used to distinguish such software from another type of computer program referred to as system...