Advantages of source coding
Answers
Benefits of Source Code. Having full source code for software libraries you use promotes self-sufficiency. It gives you the control to fix, improve, and extend the code as needed. It aids in debugging by making it possible to trace into the code or add markers to it to find out why a function is not acting as expected.
Give thanks with a great full heart
Answer:
Explanation:
It aids in debugging by making it possible to trace into the code or add markers to it to find out why a function is not acting as expected. This may allow you to solve a problem more quickly or during hours when technical support is unavailable.
It helps you to learn the code. Manuals are never perfect. Whereas we make a major effort to make our manuals complete and up to date, some vendors' manuals are woefully inadequate. This shortcoming may not be obvious until you get into a difficult spot.
It allows you to rename or change anything that conflicts with other libraries for which you do not have source code.
It allows fixing problems in the code independently of vendor support. This may be necessary if, for example, your management will not renew support, the vendor abandons the product, or the vendor disappears.
It makes it easier to incorporate fixes and enhancements released by the vendor. You can apply just the fixes without having to get complete new libraries which may make changes you don't want or that cause more work for you to integrate.
It permits optimizing the code for your particular processor, for size rather than speed, etc. Typically, compilers have switches to target specific processors, but it is typical for pre-built libraries to be built for the generic processor architecture, so it runs on all of them (e.g. ColdFire). With source code, you can recompile with the switch for your specific processor to achieve better performance. Also, you can try different optimization levels or specific optimizations.
It allows you to further reduce memory usage for small SoCs with severely limited memory, by removing code and data you don't need within functions. (The linker should deadstrip whole functions you don't need.)
It allows you to extend the libraries, such as by adding new system calls (kernel), new media drivers (file system), class/function drivers (USB), etc. The existing code serves as a good example of how to create a new one.
It satisfies the requirement of certification agencies that require a project to have source code for all components