http___en.wikipedia.org_wiki_Source-code.xml
1.1 2.1 2.2 2.3 3.1 3.2 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2 15.3 16.1 16.2 16.3 16.4 16.5 17.1 18.1 18.2 19.1 20.1 21.1 21.2 21.3 22.1 22.2 22.3 23.1 24.1 25.1 26.1 27.1 27.2 27.3 27.4 27.5 27.6 28.1 28.2 28.3 29.1 30.1 30.2 30.3 31.1 32.1 32.2 33.1 34.1 34.2 34.3 35.1 36.1 37.1 38.1 39.1 39.2 40.1 41.1 42.1 42.2 43.1 44.1 44.2 44.3 44.4 45.1 46.1
Изходен код Изходният код (на английски: Source code) е сбор от инструкции (заедно с коментарите) написан на разбираем за човека език за програмиране (може и на повече от един език за програмиране) обикновено като текст. Изходният код на компютърната програма трябва да се компилира, за да се получи програма на машинен език, която може да се изпълнява от хардуера. Друг вариант е да се ползва интерпретатор, който да анализира и да изпълни кода на момента. Повечето компютърни програми се разпространяват във вид на изпълними файлове, но не и техния изходен код. Ако кодът е включен, то е полезно за потребителя, програмиста или системния администратор, за да се разбере действието, или за да се промени или допълни успешно дадена програма. Съдържание Синоними[редактиране | редактиране на кода] - програмен код - изходен код - код източник - сорс код (на английски: source code) - сорс - първичен код Значение[редактиране | редактиране на кода] Изходният код позволява модификация на програмата, разглеждане на начина, по който тя работи, откриване на грешки и други действия. Организация[редактиране | редактиране на кода] Сорс кодът, който съставлява програмата обикновено е качен на един или повече текстови файла, съхранявани в хард диска на компютъра. Обикновено тези файлове са внимателно подредени в дървовидна структура от директории, позната и като структура от сорс. Сорс кодът може също да бъде съхраняван в бази данни (както е прието за стор процедурите) или на друго място. Сорс кодът за определена част от софтуера може да се съдържа в един или в няколко файла. Въпреки че следващия метод не се използва често, сорс кода може да бъде записан в различни езици за програмиране. Например програма, написана в C може да има части, написани на асемблер за оптимизационни цели. Също така е възможно за някои компоненти на части от софтуера да са написани и компилирани отделно, в условен програмен език и по-късно да бъдат интегрирани в софтуер, използвайки технология, наречена рефериране. Така се процедира при някои езици например Java: всеки клас се компилира отделно във файл и се свързва с интерпретатора по време на изпълнението. Друг метод е да се направи главната програма интерпретираща за програмния език или специално за приложението във въпроса, след което да се състави тялото на потребителската функционалност като макрос, или като допълнителна библиотека на езика. Кодовата база на даден проект е по-голямата колекция от всички сорс кодове на всички компютърни програми, които образуват проекта. Все по-често използвана практика е кодовете да се поддържат в системи за контрол на версиите. Цел[редактиране | редактиране на кода] Изходният код главно се използва като начален процес, при които се създава стартираща програма (компилирана или интерпретирана). Програмистите, често намират за полезно да изследват съществуващ код, за да научат техники за програмиране. Споделянето на код между разработчици, често се отбелязва като основен белег необходим за развиването на уменията за програмиране. [1] Някои хора смятат изходния код като среда за художествено изразяване.[2] Прехвърлянето на софтуер на други компютърни платформи, обикновено е много трудно без изходния код. Без изходен код прехвърлянето на софтуера може да изисква много ресурси. Възможността за прехвърляне включва двоично превеждане или емулация на оригиналната платформа. Декомпилация на изпълним файл може да се използва за получаване на изпълним код или във програмен код от ниско ниво или от език на високо ниво. Програмистите често адаптират програмния код от един софтуерен продукт, така че да може да се използва и в други проекти, този похват се нарича софтуерно преизползване. Лиценз[редактиране | редактиране на кода] Софтуерът и придружаващият го програмен код, принадлежи към една от две лицензни групи: свободен софтуер и патентован софтуер. Общо казано, софтуерът е свободен ако програмният код е свободен за употреба, разпространение, извършване на промени и изучаване и патентен, ако програмния код се пази в тайна или е частна собственост и ограничен. Забележете, че под „свободен” се разбира свобода, а не безплатен. При много лицензи е приемливо да бъде плащано за „свободен софтуер”. Първият лиценз за свободен софтуер, който е публикуван за да дава тези права за свобода е GNU General Public License през 1989. GNU GPL е бил първоначално насочен да бъде използван с GNU операционна система. По-късно GNU GPL е бил адаптиран и от други не-GNU софтуерни проекти като например Линукс ядрото. За патентования софтуер, се осигуряват различни закони за защитата на авторското право, търговската тайна и патенти, за да бъде запазен програмния код затворен. Допълнително много от софтуера идва със споразумение за крайния потребител (EULA) което обикновено забранява декомпилацията, обратното инженерство, анализа, модифицирането или заобикалянето на защитата от копиране. Видовете защита на програмния код, освен традиционното компилиране до обектен код, включва засекретяване на кода, маскиране на кода или морфиране на кода. Обратно инженерство[редактиране | редактиране на кода] Обратното инженерство (на английски: reverse engineering) представлява процесът на генериране на изходен код на програма от нейния машинен код. Това е сложен и понякога забранен от автора на програмата процес. Обикновено полученият по този начин изходен код е неразбираем за човек. Примери[редактиране | редактиране на кода] Кодът отдолу представлява програмен код на езика C# за събиране на две цели числа. След компилиране, се създава изпълним файл, от който се стартира програмата. using System; class SumofTwoIntegerNumbers // дефинира клас SumofTwoIntegerNumbers { static void Main() // дефинира метода Main { // следва съдържанието на Main() int a = 5; // декларира променливата ''а'' от целочислен тип и присвоя стойност равна на 5 int b = 6; // декларира променливата ''b'' от целочислен тип и присвоя стойност равна на 6 int sum = a + b; // декларира променливата ''sum'' от целочислен тип и присвоя стойност равна на сбора от ''a'' и ''b'' Console.WriteLine("Сумата на двете числа е: " + sum); // извежда на екрана стойността на ''sum'' } } Същият код може да бъде написан така че да бъде изпълнен от интерпретатор, като например bash. Тук командния интерпретатор чете кода ред по ред и не е необходима компилация, като изходът се визуализира веднага след последната команда. Кодът може да бъде изпълнен, като всяка стъпка се въвежда последователно в терминала bash. #!/bin/bash # задава стойности на ''a'' и ''b'' let a=4 let b=5 # присвоява сумата на ''a'' и ''b'' на ''c'' let c=$a+$b # извежда резултата на екрана echo $c Терминология[редактиране | редактиране на кода] На руски език терминът е исхо̀дный код. Според руско-българския речник[3], думата исхо̀дный означава ѝзходен, нача̀лен, отпра̀вен. В израза исхо̀дный код правилният превод на думата исхо̀дный е начален, от източника, което разбира се точно съответства на английския оригинал. А българското „изходен“ (в първо значение - антоним на „входен“), се превежда на руски като выходной (антоним на „входной“), а на английски като exit (антоним на „entry, entrance“). Думите исхо̀дный и изходен са пример за фалшиви приятели, тъй като не винаги имат еднакво значение (в руския език думата исхо̀дный не се използва за неща, които служат за изход, въпреки че в българския език второто значение на думата изходен съвпада с това на исхо̀дный). Източници[редактиране | редактиране на кода] - ↑ Spinellis, D: Code Reading: The Open Source Perspective. Addison-Wesley Professional, 2003. - ↑ "Art and Computer Programming" ONLamp.com, (2005) - ↑ С. Чукалов. Русско-болгарский словарь, изд. Русский язык, 1986 Външни препратки[редактиране | редактиране на кода] - Показаха изходния код на Photoshop 1.0.1 посетено на 21 февруари 2013
1.1 2.1 2.2 2.3 2.4 2.5 3.1 3.2 4.1 5.1 6.1 7.1 7.2 8.1 8.2 9.1 10.1 10.2 11.1 11.2 11.3 11.4 12.1 13.1 13.2 13.3 13.4 13.5 14.1 15.1 16.1 16.2 17.1 18.1 18.2 19.1 20.1 21.1 22.1 23.1 23.2 23.3 24.1 24.2 24.3 25.1 26.1 26.2 27.1 27.2 27.3 28.1 29.1 29.2 29.3 30.1 31.1 32.1 33.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 43.2 44.1 45.1 45.2 46.1 47.1 47.2 48.1 49.1 50.1 50.2 51.1
Source code In computing, source code is any collection of computer instructions (possibly with comments) written using some human-readable computer language, usually as text. The source code of a program is specially designed to facilitate the work of computer programmers, 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 at a later time. Alternatively, an interpreter can be used to analyze and perform the outcomes of the source code program directly on the fly. Most computer applications are distributed in a form that includes executable files, but not their source code. If the source code were included, it would be useful to a user, programmer, or system administrator, who may wish to modify the program or to understand how it works. Aside from its machine-readable forms, source code also appears in books and other media; often in the form of small code snippets, but occasionally complete code bases; a well-known case is the source code of PGP. Contents Definitions[edit] 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:[1] 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.[2] Organization[edit] The source code which constitutes a program is usually held in one or more text files stored on a computer's hard disk ; usually these files are carefully arranged into a directory tree, known as a source tree. Source code can also be stored in a database (as is common for stored procedures) or elsewhere. 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.[3] For example, a program written primarily in the C programming language, might have 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. This is the case in some languages, such as Java: 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 or other forms of add-ins in this language, an approach taken for example by the GNU Emacs text editor. The code base of a computer programming project is the larger collection of all the source code of all the computer programs which make up the project. It has become common practice to maintain code bases in version control systems. 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, 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 system is another tool frequently used by developers for source code maintenance. Purposes[edit] Source code is primarily used as input to the process that produces an executable program (i.e., it is compiled or interpreted). It is also used as a method of communicating algorithms between people (e.g., code snippets in books).[4] Computer Programmers often find it helpful to review existing source code to learn about programming techniques.[4] The sharing of source code between developers is frequently cited as a contributing factor to the maturation of their programming skills.[4] Some people consider source code an expressive artistic medium.[5] 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] Possible porting options include binary translation and emulation of the original platform. Decompilation of an executable program can be used to generate source code, either in 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. Licensing[edit] 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 secrecy and patents are used to keep the source code closed. Additionally, many pieces of retail software come with an 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 compilation to object code – include code encryption, code obfuscation or code morphing. Legal issues in the United States[edit] In a 2003 court case in the United States, it was 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 humor 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[edit] The way a program is written can have important consequences for its maintainers. Coding conventions, 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 program's execution, or the ability to compile the program for multiple architectures, often make code readability a less important consideration, since code quality generally depends on its purpose. See also[edit] - Coding conventions - Legacy code - Machine code - Bytecode - Obfuscated code - Object code - Open-source software - Programming language - Source code repository - Syntax highlighting References[edit] - ^ SCAM Working Conference, 2001–2010. - ^ Why Source Code Analysis and Manipulation Will Always Be Important by Mark Harman, 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010). Timişoara, Romania, 12–13 September 2010. - ^ Extending and Embedding the Python Interpreter — Python v2.6 Documentation [1] - ^ a b c Spinellis, D: Code Reading: The Open Source Perspective. Addison-Wesley Professional, 2003. - ^ "Art and Computer Programming" ONLamp.com, (2005) - (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. Extended version of the paper. External links[edit] - Source Code Definition by The Linux Information Project (LINFO) - "Obligatory accreditation system for IT security products (2008-09-22), may start from May 2009, reported by Yomiuri on 2009-04-24.". MetaFilter.com. - Same program written in multiple languages