In computer science Computer science or computing science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe, and transform information. Computer science, source code is any collection of statements or declarations written in some human-readable A human-readable medium or human-readable format is a representation of data or information that can be naturally read by humans computer programming language A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human communication. Source code is the means most often used by programmers A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A to specify the actions to be performed by a computer.

The source code which constitutes a program A computer program is a sequence of instructions written to perform a specified task for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute the instructions. The same program in its human- is usually held in one or more text files A text file is a kind of computer file that is structured as a sequence of lines. A text file exists within a computer file system. The end of a text file is often denoted by placing one or more special characters, known as an end-of-file marker, after the last line in a text file, sometimes stored in databases as stored procedures A stored procedure is a subroutine available to applications accessing a relational database system. Stored procedures are actually stored in the database data dictionary and may also appear as code snippets Snippet is a programming term for a small region of re-usable source code, machine code or text. Ordinarily, these are formally-defined operative units to incorporate into larger programming modules. Snippets are often used to clarify the meaning of an otherwise "cluttered" function, or to minimize the use of repeated code that is common printed in books or other media. A large collection of source code files may be organized into a directory tree Folder, directory, catalog, or drawer, in computing, is a virtual container within a digital file system, in which groups of computer files and other folders can be kept and organized, 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 In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU. However, in a more general sense, a file containing instructions file by a compiler A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program, or executed on the fly In reference to four-wheel drive vehicles, this term refers to the ability to change from two to four-wheel drive while the car is in gear and moving from the human readable form with the aid of an interpreter In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter may be a program that either.

The code base of a programming Computer programming is the process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language. The code may be a modification of an existing source or something completely new. The purpose of programming is to create a program that project is the larger collection of all the source code of all the computer programs A computer program is a sequence of instructions written to perform a specified task for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute the instructions. The same program in its human- which make up the project.

Contents

Organization

The source code for a particular piece of software may be contained in a single file or many files. Though the practice is uncommon, a program's source code can be written in different programming languages.[1] For example, a program written primarily in the C programming language C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system, might have portions written in Assembly language Assembly languages are a type of low-level languages for programming computers, microprocessors, microcontrollers, and other integrated circuits. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware 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 computer science, a library is a collection of subroutines or classes used to develop software. Libraries contain code and data that provide services to independent programs. This allows the sharing and changing of code and data in a modular fashion. Some executables are both standalone programs and libraries, but most libraries are not. This is the case in some languages, such as Java Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file): each class is compiled separately into a file and linked by the interpreter at runtime.

Yet another method is to make the main program an interpreter for a programming language[citation needed], either designed specifically for the application in question or general-purpose, and then write the bulk of the actual user functionality as macros A macro in computer science is a rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to an output sequence (also often a sequence of characters) according to a defined procedure. The mapping process that instantiates (transforms) a macro into a specific output sequence is known as macro or other forms of add-ins in this language, an approach taken for example by the GNU Emacs Emacs is a class of feature-rich text editors, usually characterized by their extensibility. Emacs has, perhaps, more editing commands than other editors, numbering over 1,000 commands. It also allows the user to combine these commands into macros to automate work text editor.

Moderately complex software customarily requires the compilation or assembly of several, sometimes dozens or even hundreds, of different source code files. In these cases, instructions for compilations, such as a Makefile In software development, make is a utility that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. Make can decide where to start through topological sorting. Though Integrated Development Environments and language-specific compiler features can, are included with the source code. These describe the relationships among the source code files, and contain information about how they are to be compiled.

The revision control Revision control, also known as version control, source control or software configuration management , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files. Changes are usually identified by a number or system is another tool frequently used by developers for source code maintenance.

Purposes

Source code is primarily used as input to the process that produces an executable program (ie., it is compiled A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program or interpreted In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter may be a program that either). It is also used as a method of communicating algorithms In mathematics, computer science, and related subjects, an algorithm is an effective method for solving a problem expressed as a finite sequence of instructions. Algorithms are used for calculation, data processing, and many other fields between people (eg., code snippets Snippet is a programming term for a small region of re-usable source code, machine code or text. Ordinarily, these are formally-defined operative units to incorporate into larger programming modules. Snippets are often used to clarify the meaning of an otherwise "cluttered" function, or to minimize the use of repeated code that is common in books).[2]

Programmers A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A often find it helpful to review existing source code to learn about programming techniques.[2] The sharing of source code between developers is frequently cited as a contributing factor to the maturation of their programming skills.[2] Some people consider source code an expressive artistic medium In drawing, "media" refers to the type of held dry tool used and the base onto which it is transferred. The "held dry tool" normally means a pencil, or stick medium, referred to as a "crayon". Small particles of broken-off stick medium are transferred to a base or plane of production on which the artwork is produced.[3]

Porting In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed . The term is also used in a general way to refer to the changing of software/hardware to make them usable in different environments software to other computer platforms In computing, a platform describes some sort of hardware architecture or software framework , that allows software to run. Typical platforms include a computer's architecture, operating system, programming languages and related runtime libraries or graphical user interface is usually prohibitively difficult without source code. Without the source code for a particular piece of software, portability is generally computationally expensive[citation needed]. Possible porting options include binary translation In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and and emulation of the original platform.

Decompilation A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. That is, it translates a file containing information at a relatively low level of abstraction into a form having a higher level of abstraction (usually designed to be human readable) of an executable program can be used to generate source code, either in assembly code Assembly languages are a family of low-level languages for programming computers, microprocessors, microcontrollers, and other integrated circuits. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware or in a high level language A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be more portable across platforms. Such languages hide the details of CPU operations such as memory access models and.

Programmers frequently adapt source code from one piece of software to use in other projects, a concept known as software reusability In computer science and software engineering, reusability is the likelihood a segment of source code that can be used again to add new functionalities with slight or no modification. Reusable modules and classes reduce implementation time, increase the likelihood that prior testing and use has eliminated bugs and localizes code modifications when.

Licensing

Main article: software license A software license is a legal instrument (by way of contract law) governing the usage or redistribution of software. All software is copyright protected, except material in the public domain. Contractual confidentiality is another way of protecting software. A typical software license grants an end-user permission to use one or more copies of

Software, and its accompanying source code, typically falls within one of two licensing paradigms: free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and that manufacturers of consumer- and proprietary software The term proprietary software is often used to mean computer software which is neither free nor open source . Terminology for forms of software licensing is not fully standardized and can be controversial. A literal meaning of "proprietary" in relation to software is that it has a copyright owner who can exercise control over what users. 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. Note that "free" refers to freedom, not price. Under many licenses it is acceptable to charge for "free software". The first free software license to be published and to explicitly grant these freedoms was the GNU General Public License The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU project in 1989. The GNU GPL was originally intended to be used with the GNU operating system GNU (pronounced /ˈɡnuː/ , or in some countries[which?] /ˈnjuː/[citation needed]) is a computer operating system composed entirely of free software. Its name is a recursive acronym for “GNU's Not Unix!” This name was chosen because GNU's design is Unix-like, but differs from Unix by being free software and containing no Unix code. The GNU GPL was later adopted by other non-GNU software projects such as the Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software. For proprietary software, the provisions of the various copyright laws, trade secrecy A trade secret is a formula, practice, process, design, instrument, pattern, or compilation of information which is not generally known or reasonably ascertainable, by which a business can obtain an economic advantage over competitors or customers. In some jurisdictions, such secrets are referred to as "confidential information" or " and patents A patent is a set of exclusive rights granted by a state (national government) to an inventor or their assignee for a limited period of time in exchange for a public disclosure of an invention are used to keep the source code closed. Additionally, many pieces of retail software Retail software is computer software sold to end consumers, usually under restricted licenses. Until the emergence of the Internet, retail software represented, until the 2000s, the vast majority of all end consumer software used and was referred to as shrinkware because software almost always ships in a shrinkwrapped box. An important historical come with an end-user license agreement A software license agreement is a contract between the "licensor" and purchaser of the right to use software. The licence may define ways under which the copy can be used, in addition to the automatic rights of the buyer including the first sale doctrine and 17 U.S.C. § 117 (EULA) which typically prohibits decompilation A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. That is, it translates a file containing information at a relatively low level of abstraction into a form having a higher level of abstraction (usually designed to be human readable), reverse engineering Reverse engineering is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation. It often involves taking something (e.g., a mechanical device, electronic component, or software program) apart and analyzing its workings in detail to be used in maintenance, or to, analysis, modification, or circumventing of copy protection Copy protection, also known as content protection, copy obstruction, copy prevention and copy restriction, is a technology for preventing the reproduction of software, films, music, and other media. Types of source code protection -- beyond traditional compilation A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program to object code -- include code encryption, code obfuscation or code morphing.

Legal issues in the United States

This article may need to be updated. Please update this article to reflect recent events or newly available information, and remove this template when finished. Please see the talk page for more information.

In a 2003 court case in the United States, the court ruled that source code should be considered a Constitutionally protected form of free speech. Proponents of free speech argued 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.

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 State Department. The Electronic Frontier Foundation sued the U.S. government on Bernstein's behalf; the court ruled that source code was free speech, protected by the First Amendment.

Quality

Main article: Software quality

The way a program is written can have important consequences for its maintainers. 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 priorities, such as the speed of the programs execution, or the ability to compile the program for multiple architectures, often make code readability a less important consideration, since code quality depends entirely on its purpose.

See also

Look up source code in Wiktionary, the free dictionary.

References

  1. ^ Extending and Embedding the Python Interpreter — Python v2.6 Documentation [1]
  2. ^ a b c Spinellis, D: Code Reading: The Open Source Perspective. Addison-Wesley Professional, 2003. ISBN 0-201-79940-5
  3. ^ "Art and Computer Programming" ONLamp.com, (2005)

External links

Categories: Source code

 

The above information uses material from Wikipedia and is licensed under the GNU Free Documentation License.
Some facts may not have been fully verified for accuracy. [Disclaimers]
This page was last archived by our server on Fri Sep 3 20:23:40 2010. [ refresh local cache ]
Displaying this page or its contents does not use any Wikimedia Foundation's resources.
The owners of this site proudly support the Wikimedia Foundation.


Analysis: Reverse Engineering and You - Gamasutra
news.google.com
Analysis: Reverse Engineering and You

Gamasutra

For instance, analyzing unencrypted machine code in order to translate those processes and functions to source code is generally permissible. ...
Google News Search: Source code,
Mon Sep 6 06:17:17 2010
display code png
help.znode.com
display code png
386px x 536px | 15.70kB

[source page]

The data retrieval and logic for pricing is included in the code behind file ProductPrice ascx cs

Yahoo Images Search: Source code,
Mon Sep 6 06:17:17 2010
 Lyoko Episode 91 Bad Connections Part 3
veoh.com
Lyoko Episode 91 Bad Connections Part 3

Fri, 03 Oct 2008 17:00:00 PDT

English Dub Part three. Episode 92 coming soon!. veoh.com.

Google Videos Search: Source code,
Mon Sep 6 06:17:17 2010
Better Know a Module: Menu Block (Part II) | Palantir.net
palantir.net
Better Know a Module: Menu Block (Part II) | Palantir.net

wilkins

hu, 02 Sep 2010 23:15:33 GM

You can enable syntax highlighting of . source code. with the following tags: . , . , . , . , . , . , . , . , . , . , . . Beside the tag style " . " it is also ...

Google Blogs Search: Source code,
Mon Sep 6 06:17:17 2010