Difference between revisions of "Source code"

From Emulation General Wiki
Jump to navigation Jump to search
(Starting page, with using the Wiki page as a basis while removing stuff not needed)
 
(trimming)
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]]
+
'''Source code''' is  any collection of computer instructions written using some [[human-readable]] computer language. The source code is often transformed by a [[compiler]] program into low-level [[machine code]] understood by the computer. Alternatively, an [[interpreter (computing)|interpreter]] can be used to analyze and perform the outcomes of the source code program directly on the fly.
  
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.
+
Software, and its accompanying source code, typically falls within one of two licensing paradigms: [[open source]] and [[proprietary software]]. 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.  
  
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.
+
[[Porting]] software to other computer platforms 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.
  
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]].
+
== Licensing ==
  
== Definitions ==
+
Software may be open source or closed source.  
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).
+
==Languages==
Timişoara, Romania, 12–13 September 2010.</ref></blockquote>
+
Include stuff about the advantages and disadvantages of each.  
  
[[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.
+
===Assembly===
 
 
== 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]].
+
===Java===
  
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]].
+
===C++===
  
 
== References ==  
 
== References ==  

Revision as of 23:52, 7 July 2014

Source code is any collection of computer instructions written using some human-readable computer language. The source code is often transformed by a compiler program into low-level machine code understood by the computer. Alternatively, an interpreter can be used to analyze and perform the outcomes of the source code program directly on the fly.

Software, and its accompanying source code, typically falls within one of two licensing paradigms: open source and proprietary software. 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.

Porting software to other computer platforms is usually prohibitively difficult without source code. Without the source code for a particular piece of software, portability is generally computationally expensive.Template:Citation needed Possible porting options include binary translation and emulation of the original platform.

Licensing

Software may be open source or closed source.

Languages

Include stuff about the advantages and disadvantages of each.

Assembly

Java

C++

References

External links