“To err is human, to really foul things up requires a computer.” – Bill Vaughan
“A computer lets you make more mistakes faster than any invention in human history – with the possible exceptions of handguns and tequila.” – Mitch Ratcliffe
Programming errors, more commonly known as ‘Bugs’ in computing lingo, are the bane of any software developer. Since machines are increasingly being used in automated mode, with onboard embedded systems or computers controlling their functioning, a programming error can have drastic consequences. There have been cases of space shuttles and planes crashing due to software bugs in embedded computing equipment. A single loophole left in operating system code can provide an entry point to hackers who can exploit the vulnerability, putting computer security at risk. Ergo, errors need to be taken very seriously as we increasingly rely on computers.
Prime Types of Programming Errors
Computer programming is a vast field with hundreds of languages to be mastered and millions of applications. From core operating system programming, application programming, embedded system coding, web development, mobile platform apps, development of software programs deployed online to scientific computing, the extent of the field is simply vast. So is the scope for making programming errors of various kinds!
Programming Error Type
This is perhaps the most serious of all errors. When a written program in any language compiles and runs properly only to provide incorrect output, the flaw lies in the underlying programming logic. It’s an error which has been inherited from a flaw in the base algorithm. The very logic on which the entire program is based is flawed, in such a case. These types of errors need a fundamental change in your approach to find a solution. You need to start digging at the algorithmic level to narrow down to the cause of such an error.
Every computer language like C, Java, Perl and Python has a specific syntax in which code needs to be written. When a programmer doesn’t adhere to the ‘grammar’ specifications of a computer language, a syntax error results. These kinds of errors are easily rectified during the compilation phase.
Compilation is the process where a program written in a high level language is converted to machine readable form. Many types of errors can occur during this phase, including syntax errors. Sometimes, the syntax of a source code might be flawless, but a compilation error might still occur. This may be due to a problem in the compiler itself. These errors are rectifiable in the development phase.
Run Time Error
The program code has compiled successfully and an executable file has been created. You breathe a sigh of relief and run the program to test its working to find an error. This is a ‘Run Time Error’. These may result from the failure on part of the developer to anticipate actual program deployment conditions. These can be rectified by going back to the coding phase.
Many programs use numerical variables and the algorithm may involve several mathematical calculations. Arithmetic errors crop up when the computer cannot handle problems like ‘Division By Zero’ leading to an infinite result. This is again a logical error which can only be corrected by changing the algorithm.
When the value of a variable overflows its maximum allowed value, a resource error may result. Buffer overflow, usage of an uninitialized variable, access violations and stack overflows are examples of some common errors.
These may arise due to mismatch of a software program with the hardware interface or application programming interface used. In case of web applications, an interface error may result from incorrect use of a web protocol.
An intensive testing and debugging phase is an essential part of the software development cycle which can help nip these errors in the bud, before full scale deployment of the software program. A lot of errors can be avoided through pre-planning and care during the coding phase. Through practice and discipline and following rigorous debugging procedures, most of the errors can be rectified during software development. Making mistakes is a part of learning and they can never be entirely avoided. However, I would suggest that you focus on making new mistakes and avoid repeating the ones you made before!