OK, one more try. By the way, the computer language used makes no diference at all. Doesn't matter if it's FORTRAN, C, Basic, or assembly language. The issue is whether the programmer wrote the program to correctly handle arithmetic overflow errors.
Computers use binary arithmetic. All digits are 1s and 0s. An integer number can be signed or unsigned (unsigned means positive numbers only, signed numbers can be positive or negative).
Computers process data in chunks of bits.
A byte is 8 bits which can represent 0 to 256 (unsigned) or -127 to 127 (signed).
A word is 16 bits which can represent 0 to 65536 (unsigned) or -32767 to 32767 (signed)
A longword is 32 bits which can represent 0 to 4294967295 (unsigned) or -2147483647 to 2147483647 (signed).
So it looks like the program Comair was using was tracking change events with a 16 bit signed integer value. The number of changes hit the limit (32767) and then went 1 over. Whenever that happens, the positive number now overflows to a negative number and the computer throws a numeric overflow exception. If the programmer who wrote the program never anticipated that an overflow would happen, he probably did not code for the event and the program crashed (apparently without saving any data).