Principles Of Software Design And Development

Read Complete Research Material

PRINCIPLES OF SOFTWARE DESIGN AND DEVELOPMENT

Principles of Software Design and Development

Principles of Software Design and Development

A computer is totally worthless without any program to run on it. As you all know? any program needs a programming language to be written it - the language then becomes the medium via which the solution the program encompasses is communicated to the computer. But how exactly are the programming languages themselves developed? How is it known that the programming language would be capable of describing all programs that will ever be written in the language? How can programming languages limit or enhance the programs written in them? And finally? how exactly will the computer be able to execute that program? Everything starts with the processor inside a computer. Inside a processor will be at least a processor and some memory. The processor has its own language? called an Instruction Set. This is what you mean when you say x86? x64 or x86-64? IA-32? IA-64? AMD64? PowerPC etc. An Instruction Set is a set of Instructions - a specific bit string (16? 32? 64? 128 or 256 bits long) which the processor recognizes. An instruction triggers a specific response from the processor - fetch certain data from memory or perform certain operations on the data or write back the results to the memory. Consequently? instructions become the medium for communicating a program to the processor. All programs? regardless of whichever language they are written in? must be converted into a sequence of these instructions before they can be executed by the processor.

Before the first programming language was designed? manually creating these bit string sequences by hand was the only way to program a computer. Input devices like punched cards and floppy discs were created that had these bit string sequences hard coded and the computer would read off these devices and perform what was required. While this procedure worked? writing any complex program using arithmetic operations and conditional or unconditional jumps and numeric memory addresses (a processor doesn't have any notion of variables or labels? it only understands memory addresses; nor does a processor understand functions or methods? every program in the instruction set must be a single monolithic stream of bit strings) was too cumbersome.

To help the programmers keep track of what was being done in the program? some way of organizing the program was needed. This necessity gave rise to higher level programming languages? which increasingly gave the programmers better tools to organize the programs and express their intent more succinctly. With these languages came the notions of labels to denote different positions in the code? variables to name memory locations in a way that reflects their use and modules (also known as methods or functions) to organize the code. The programmer was relieved of tasks like replacing the labels and variable names with their addresses? and to call and return from functions in a way that it still looked like a monolithic sequence of bit strings to the ...
Related Ads