Software Programming Process
Archives > Software Programming Process
Part 1: Computers & Their Languages
This article was written by a software professional at Stylus Systems, Bangalore
India. We hope that you benefit from the information shared here and that you
consider our services. Please feel free to email us.?
Computers & Their Languages
Programming may be roughly defined as the implementation of an algorithm in a
computer language. This forms the basis of computer usage comprising mainly of
two sections - Information management and word processing.
Why is programming necessary? Why develop algorithms? Why not just use the
software available? Believe me, these are very common questions. We have
software for just about everything these days. Even software that generates
code. The answers would require more questions. Who makes this software? How
are they made?
To answer these questions I will have to take you back to the very basics of
computers. A computer is, very simply, a set of input, output and memory
devices connected to a processor, all of which are connected to a power source.
Programming is using the input devices to channel electric current through the
required paths in the processor chip, access the memory and output devices and
achieve the desired output.
The processor as you can imagine only accepts two kinds of inputs, one and zero,
the existence or non-existence of a pulse. In the earlier days where the output
consisted mainly of punched cards and so on, the input was also given in ones
and zeros which is now known as the machine language.
But then as the hardware became more powerful and more complicated inputs came
to play, an interpreter called the assembler was developed that was stored in
memory. It could be given an instruction in English like words that would then
be translated to the corresponding machine language command (or commands) and
passed on to the processor.
This was a cycle that led to more and more powerful computers and languages. But
still the basis remains the same. Every language comes with an interpreter that
converts the language to the machine language. The more advanced ones now come
with compilers, which make a file of all the interpreted machine language
instructions called an executable (exe) file.
So as you can see, "which language is the best" is pretty much a
rhetorical question. Each one has its advantages and disadvantages. The older
ones (low level) are a lot more basic and hence take longer to code with. But
they execute faster and have greater capabilities since one can directly
interact with registers, ports and system memory. The high level languages are
easier to use, have lots of in built functions (which execute a large set of
instructions at once) and are good for large projects. But for the nitty gritty
of systems programming, there's nothing like the good old assembler or maybe
'C' (which has often been called a middle level language).
Part
1
|
Part 2
|
Part 3
Back to top
|