| FazBrowse Wikipedia Viewer | Main Page | | |
| Viewing: https://en.wikipedia.org/wiki/Source_code |
| Contents |
|---|
| Purposes |
| Estimation |
| Communication |
| Modification |
| Copyright and licensing |
| Program execution | |
|---|---|
| General concepts | |
| Types of code | |
| Compilation strategies | |
| Notable runtimes | |
|
|
| Notable compilers & toolchains | |
|
|
| – either executed directly via an interpreter or translated into a more computer-consumable form such as via a compiler. Sometimes, code is compiled directly to machine code so that it can be run in the native language of the computer without further processing. Many modern environments, though, involve compiling to an intermediate representation such as bytecode that can either run via an interpreter or be compiled on-demand to machine code via just-in-time compilation.
Source code is typically stored in source files. Beyond software, the term source file is used across other domains — such as documents, images, hardware design, and typography — to refer to the original, editable file from which a distribution format is derived. Most programs do not contain all the resources needed to run them and rely on external libraries. Part of the compiler's function is to link these files in such a way that the program can be executed by the hardware. Software developers often use configuration management to track changes to source code files (version control). The configuration management system also keeps track of which object code file corresponds to which version of the source code file. PurposeseditEstimationeditThe number of source lines of code (SLOC) is often used as a metric when evaluating the productivity of computer programmers, the economic value of a code base, effort estimation for projects in development, and the ongoing cost of software maintenance after release. CommunicationeditSource code is also used to communicate algorithms between parties, e.g., code snippets online or in books. Computer programmers can find it helpful to review extant source code to learn about programming techniques. The sharing of source code between developers is often cited as a contributing factor to the maturing of their programming skills. Some consider source code an expressive artistic medium. Source code often contains comments—blocks of text marked for the compiler to ignore. This content is not part of the program logic, but is instead intended to help readers understand the program. Companies often keep the source code confidential in order to hide algorithms considered a trade secret. Proprietary, secret source code and algorithms are widely used for sensitive government applications such as criminal justice, which results in black box behavior with a lack of transparency into the algorithm's methodology. The result is avoidance of public scrutiny of issues such as bias. ModificationeditSoftware quality is an overarching term that can refer to a code's correct and efficient behavior, its reusability and portability, or the ease of modification. It is usually more cost-effective to build quality into a product from the start rather than try to add it later in a development process. Higher quality code reduces lifetime cost to both suppliers and customers as via higher reliability and maintainability. Maintainability is the quality of software enabling it to be easily modified without breaking extant functions. Following coding conventions such as using clear function and variable names that correspond to their purpose makes maintenance easier. Use of conditional loop statements only if the code could execute more than once, and eliminating code that will never execute can also increase understandability. Many software development organizations neglect maintainability during the development phase, even though it will increase long-term costs. Technical debt is incurred when programmers, often out of laziness or urgency to meet a deadline, choose quick and dirty solutions rather than build maintainability into their code. A common cause is underestimates in software development effort estimation, leading to insufficient resources allocated to development. A challenge with maintainability is that many software engineering courses do not emphasize it. Development engineers who know that they will not be responsible for maintaining the software do not have an incentive to build in maintainability. Copyright and licensingedit
|