Warning: mkdir() [
function.mkdir]: Permission denied in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: mkdir() [
function.mkdir]: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: fopen(/home/templatecore2cache//*cluesnet.com/5e/5eee574be72d607950ae89edd10330d2bbf93c69.tc2cache) [
function.fopen]: failed to open stream: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
130
Warning: fwrite(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
131
Warning: fclose(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
132
In computer science,
source code (commonly just
source or
code) is any sequence of statements and/or declarations written in some
human-readable computer programming language.
The source code which constitutes a
program is usually held in one or more
text files, sometimes stored in databases as
stored procedures and may also appear as
code snippets printed in books or other media. A large collection of source code files may be organized into a Directory (file systems), in which case it may also be known as a
source tree.
A computer program's
source code is the collection of files needed to convert from human-readable form to some kind of computer-executable form. The source code may be converted into an
executable file by a
compiler, or executed
on the fly from the human readable form with the aid of an
interpreter (computer software).
The
code base of a programming project is the larger collection of all the source code of all the computer programs which make up the project.
Purposes
Source code is primarily used
as input to the process that produces an executable program (ie., it is
compiler or interpreter). It is also sometimes used as a method of communicating
algorithms between people (eg., code snippets in books).
Programmers often find it helpful to review existing source code to learn about programming techniques. The sharing of source code between developers is frequently cited as a contributing factor to the maturation of their programming skills. Source code can be an expressive Media (arts); consider, for example, obfuscated code or PerlMonks.Org.
Source code is a vital component in the activity of
porting software to alternative computer platforms. Without the source code for a particular piece of software, portability is generally very expensive.
Binary translation can sometimes be used to run a program when only the executable form rather than the source code is available.
Decompilation can be used to generate source code, either
assembly code or in a
high level language.
Programmers frequently adapt source code from one piece of software to use in other projects, a concept known as
software reusability.
Organization
The source code for a particular piece of software may be contained in a single file or many files. A program's source code is not necessarily all written in the same programming language; for example, it is common for a program to be written primarily in the
C (programming language), with some portions written in
Assembly language for optimization purposes. It is also possible for some components of a piece of software to be written and compiled separately, in an arbitrary programming language, and later integrated into the software using a technique called library linking. In some languages, such as Java (programming language), this is essentially how each file is handled; each is compiled separately and linked at runtime.Yet another method is to make the main program an interpreter for a programming language, either designed specifically for the application in question or general-purpose, and then write the bulk of the actual user functionality as Macro (computer science) or other forms of add-ins in this language, an approach taken for example by the GNU Emacs text editor.
Moderately complex software customarily requires the compilation or assembly of several, sometimes dozens or even hundreds, of different source code files. This complexity is reduced considerably by the inclusion of a
Makefile with the source code, which describes the relationships among the source code files, and contains information about how they are to be compiled. The revision control system is another tool frequently used by developers for source code maintenance.
Licensing
Software, and its accompanying source code, typically falls within one of two licensing paradigms: free software and
proprietary software. Generally speaking, software is
free if the source code is free to use, distribute, modify and study, and
proprietary if the source code is kept secret, or is privately owned and restricted. The provisions of the various copyright laws are often used for this purpose, though trade secret and patents are also relied upon. Additionally, source code of
retail software has licensing that prevents
decompilation, reverse engineering, analysis, modification, or circumventing a copy protection. Types of source code protection -- beyond traditional
compiler to
object code -- include code encryption, code obfuscation or
code morphing.
Legal issues in the United States
As of 2003, court systems are in the process of deciding whether source code should be considered a Constitutionally protected form of
free speech in the United States. Proponents of the free speech argument claim that because source code conveys information to programmers, is written in a language, and can be used to share humour and other artistic pursuits, it is a protected form of communication. The opposing view is that source code is functional, more than artistic speech, and is thus not protected by First Amendment Rights of the
U.S. Constitution.
One of the first court cases regarding the nature of source code as free speech involved
University of California mathematics professor Dan Bernstein, who had published on the internet the source code for an encryption program that he created. At the time, encryption algorithms were classified as
munitions by the United States government; exporting encryption to other countries was considered an issue of
national security, and had to be approved by the
United States Department of State. The
Electronic Frontier Foundation sued the
Federal government of the United States on Bernstein's behalf; the court ruled that source code was free speech, protected by the First Amendment.
In
2000, in a related court case, the issue was again brought under some scrutiny when the
Motion Picture Association of America (MPAA) sued the 'hacker' magazine
2600 The Hacker Quarterly and a number of other websites for distributing the source code to DeCSS, an algorithm capable of decrypting scrambled DVD discs. The algorithm was developed to allow people to play legally purchased DVDs on the
Linux operating system, which had no DVD software at the time. The US
District court decision favored the MPAA;
2600 magazine was prohibited from posting or linking to the source code on their website. This ruling was widely considered a victory for the supporters of the Digital Millennium Copyright Act, as it established a Precedent for the notion that source code is not Constitutionally protected free speech. It was affirmed by the Appeal and
as of 2003 is being appealed to the Supreme Court of the United States.
Quality
The way a program is written can have important consequences for itsmaintainers. Many source code
programming style guides, which stress readability and some language-specific conventions are aimed at the maintenance of the software source code, which involves debugging and updating. Other issues also come into considering whether code is well written, such as the logical structuring of the code into manageable sections.
References
(VEW04) "Using a Decompiler for Real-World Source Recovery", M Van Emmerik and T Waddington, the
Working Conference on Reverse Engineering, Delft, Netherlands, 9th-12th November 2004. Extended version of the paper.
See also
External Links
- Source Code Definition - by The Linux Information Project (LINFO)
source code from FOLDOC
source code < language, programming > (Or "source", or rarely "source language") The form in which a computer program is written by the programmer.
source code management from FOLDOC
source code management. The use of software systems to help program developers keep track of version history of source code modules as well as releases, parallel versions (code ...
Source code
bootmenu.zip: A utility to let you choose which partition to boot from, with assembler and C source code. ยค
mysociety: Directory /mysociety/twfy/
Instead of browsing above, you can get all the mySociety source code in two ways: Anonymous CVS. This is updated as we commit new changes. Set CVSROOT to :pserver:anonymous@cvs ...
Programming on SCOPE - Source Code Download
Programming on SCOPE - Source Code Download ... Wellcome Trust Sanger Institute Genome Campus Cambridge, CB10 1SA United Kingdom
Wolfenstein 3D Source Code
Download the latest files for editing the Wolfenstein 3D Source Code here. Wolfenstein 3D. Source Code . Welcome. There are few sites nowadays that have access to the files that ...
Source Code : Welcome!
Directory of links for developers. Includes news, resources, hardware sales.
Source code - Wikipedia, the free encyclopedia
In computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some human-readable computer programming language. Source ...
Source Code Availability for The W3C Markup Validation Service
W3C's easy-to-use HTML validation service, based on an SGML parser. ... Source code availability for the W3C Markup Validator Table of Contents
Getting Started - KDE TechBase
Anonymous SVN Quickstart Guide; Using Subversion with KDE A more in depth look at accessing KDE source code with subversion, including the repository layout and working with ...