Editing Source code
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | [[Image:CodeCmmt002.svg|thumb|right|300px|An illustration of [[Java (programming language)|Java]] source code with prologue comments indicated in red, inline comments indicated in green, and program statements indicated in blue]] | |
− | + | In [[computing]], '''source code''' is any collection of [[Computer program|computer instructions]] (possibly with [[Comment (computer programming)|comments]]) written using some [[human-readable]] [[computer language]], usually as [[plain text|text]]. The source code of a program is specially designed to facilitate the work of computer [[programmer]]s, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by a [[compiler]] program into low-level [[machine code]] understood by the computer. The machine code might then be stored for [[Execution (computing)|execution]] at a later time. Alternatively, an [[interpreter (computing)|interpreter]] can be used to analyze and perform the outcomes of the source code program directly on the fly. | |
− | + | Most [[computer application]]s are distributed in a form that includes [[executable file]]s, but not their source code. If the source code were included, it would be useful to a [[user (computing)|user]], programmer, or [[system administrator]], who may wish to modify the program or understand how it works. | |
− | + | Aside from its [[Machine-readable data|machine-readable]] forms, source code also appears in books and other media; often in the form of small [[code snippets]], but occasionally complete [[codebase|code bases]]; a well-known case is the source code of [[Pretty Good Privacy|PGP]]. | |
− | |||
− | == | + | == Definitions == |
− | + | The notion of source code may also be taken more broadly, to include machine code and notations in graphical languages, neither of which are textual in nature. An example from an article presented on the annual IEEE conference and on Source Code Analysis and Manipulation:<ref>[http://www.ieee-scam.org/ SCAM Working Conference], 2001–2010.</ref> | |
− | + | <blockquote>For the purpose of clarity ‘'''source code'''’ is taken to mean any fully executable description of a software system. It is therefore so construed as to include machine code, very high level languages and executable graphical representations of systems.<ref>[http://www.cs.ucl.ac.uk/staff/M.Harman/scam10.pdf Why Source Code Analysis and Manipulation Will Always Be Important] by [[Mark Harman (computer scientist)|Mark Harman]], 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010). | |
− | + | Timişoara, Romania, 12–13 September 2010.</ref></blockquote> | |
− | + | [[Porting]] software to other [[computer platform]]s is usually prohibitively difficult without source code. Without the source code for a particular piece of software, portability is generally computationally expensive.{{Citation needed|date=October 2008}} Possible porting options include [[binary translation]] and emulation of the original platform. | |
− | == | + | == Licensing == |
− | + | Software, and its accompanying source code, typically falls within one of two licensing paradigms: [[open source]] and [[proprietary software]]. | |
− | + | Generally speaking, software is ''open source'' 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 first software license to be published and to explicitly grant these freedoms was the [[GNU General Public License]] in 1989. The GNU GPL was originally intended to be used with the [[GNU operating system]]. | |
− | |||
− | + | For proprietary software, the provisions of the various copyright laws, [[trade secret|trade secrecy]] and [[patent]]s are used to keep the source code closed. Additionally, many pieces of [[retail software]] come with an [[Software license agreement|end-user license agreement]] (EULA) which typically prohibits [[decompilation]], [[reverse engineering]], analysis, modification, or circumventing of [[copy protection]]. Types of source code protection – beyond traditional [[compiler|compilation]] to [[object code]] – include code encryption, [[code obfuscation]] or [[code morphing]]. | |
− | == | + | == References == |
− | + | {{reflist}} | |
− | + | * (VEW04) "Using a Decompiler for Real-World Source Recovery", M. Van Emmerik and T. Waddington, the ''Working Conference on Reverse Engineering'', [[Delft]], [[Netherlands]], 9–12 November 2004. [http://www.itee.uq.edu.au/~emmerik/experience_long.pdf Extended version of the paper]. | |
− | |||
− | |||
− | |||
− | |||
− | == | + | == External links == |
− | {{ | + | * {{cite web| title=Obligatory accreditation system for IT security products (2008-09-22), may start from May 2009, reported by Yomiuri on 2009-04-24.|url=http://www.metafilter.com/75061/Obligatory-accreditation-system-for-IT-security-products|publisher=MetaFilter.com|accessdate=2009-04-24}} |
− | + | * [http://rosettacode.org/wiki/Main_Page Same program written in multiple languages] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [ |