Wednesday, September 28, 2005

Binary Files

Binary files are bytes or streams of 0s and 1s which computer's hardware can understand. On the other end we have source code which is series of literals and enlish like keywords which are "human understandable". Source code is a set of instructions intended to achieve some desired goal/objective/functionality. These two broadly are the two ends of spectrum of software industry.

Terminology may differ. People in OOP would make source files and class file representing them but the fact remains same. Machines and humans dont understand each other's langauge. Part of the reason the situation remains same is architecture of computing machines taken. When they where made machines where thought of as number crunching monsters. So there hardware was designed so as to compute addition, multiplication and all the logical stuff needed. Then from computing we moved to word processing and office automation which thpugh required totally different features. These features where mapped on the same hardware and general purpose machines where made. This is a separate topic of discussion. Lets not move in hardware lets just talk about the SOFTware.

Language incompatibility amongst machines and humans led to creation of this spectrum. Human readable source code on one side and machine readable binary on otherside. Source code in all its essence represents human will which gets translated in machine instructions. What happens in between? If i am the master and computer is the slave then why do i need big big companies to make my PC understand what i want to do.


Software in real life would be flexible to allow user to express her/his whims and fancies. The way we currently do it is that binary would read from a file/setting/property and change its behaviour. If you want to change "behaviour" of a program then either we have to change the "settings" somewhere which the binary would read and determine what to do. Notice that the binary is to check the values in setting and perform some action. Now behaviour of binary hasn't changed.

No comments: