Wednesday 27 February 2013

Define functions. Write the advantages and disadvantages of functions.

Definition of Function:

A function is a routine or a set of instruction or code that performs a specific task and can be processed independently.
When the program passes control to a function the function perform that task and returns control to the instruction following the calling instruction. The most important reason to use the function is make program handling easier  as only a small part of the program is dealt with at a time.
A function is a “black box” that we’ve locked part of our program into. The idea behind a function is that it compartmentalizes part of the program, and in particular, that the code within the function has some useful properties.


Advantages of Functions:

i)                     The length of  a source program can be reduced by using functions at appropriate places. This factor is particularly critical with microcomputers where memory space is limited.
ii)                    It is easy to locate and isolate a faulty function for further investigations.
iii)                   A function may be used by many other programs. This means that a C programmer can build on what others have already done, instead of starting all over again from scratch.
iv)                   It facilitates top-down modular programming. In this programming style, the high level logic of the overall problem is solved first while the details of each lower-level function are addressed later.
v)                    Its interface to the rest of the program is clean and narrow.

Disadvantages of Functions:

vi)                   While adding a user function can speed up code that is best written in C rather than a scripting language, it is not always the best choice for implementation:
vii)                 It requires the programmer to be well versed in C, including pointers, function pointers, dynamic memory allocation, and debugging. Often the headaches C causes, especially for the neophyte, far outweigh any run-time savings. Bugs in the code might not manifest themselves until well after the C function ends, making debugging a nightmare.
viii)                There may not be any speed advantage. Vortex is pretty fast at most operations; for small functions it may be just as fast - and much easier - to write the function in Vortex. Since Vortex already has powerful data processing functions, and the ability to execute external programs, it may be faster to <EXEC> the C code in a separate program and parse it in Vortex, especially as a quick prototype.
ix)                   It's less portable. A C function means a new Vortex executable must be made if the hardware platform changes. Other Vortex users won't have the custom function in their taxis executable.