Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures_SSD2_Yermakova / Lectures_SSD2 Yermakova.doc
Скачиваний:
227
Добавлен:
25.02.2016
Размер:
3.16 Mб
Скачать

Free Software

The term free software was popularized by Richard M. Stallman, founder of the Free Software Foundation. Stallman wrote:

"Free software" is a matter of liberty, not price. To understand the concept, you should think of "free" as in "free speech," not as in "free beer."

The term "open source" was proposed because of the many misunderstandings that arose with use of the word "free." The open source and free software movements have a lot in common, but there are some philosophical differences.

Free software may be used for any purpose, copied, modified, and redistributed at will. In order to ensure that these freedoms are preserved in all copies and derivative versions, the software is protected by a license. A variety of free software licenses have been proposed. One is called copyleft, a pun on "copyright." Another is known as the GPL, for General Public License. The licenses differ on technical points, but basically, they state that people who make copies of the software must preserve the license. They must distribute the source along with the object code, and they must allow others to make copies of either. If they modify the software, they must make their modifications freely available under the same license terms. Thus, no one can take a piece of free software and turn it into a closed-source product, because the license prevents this.

4.5.3 Tools for Software Creation and Management

  • Editors

  • Compilers

  • Debuggers

  • Integrated Development Environments (IDEs)

Software is written by programmers who use special applications called programming tools. Because human programmers and machines are so very different, the programs that humans write must then be translated into a form that is suitable for machine execution. The tools used to support these activities are described next.

Editors

Programming languages are precise. If they were not precise, computers would not be able to execute instructions reliably. Part of the precision comes about through very precise language syntax: the syntax of a programming language specifies what constitutes a legal program.  The other important element of precision is a programming language's semantics, which determine the meaning of a program, the exact computations it specifies.  To write programs, people use text editors—Microsoft Word and Emacs are particularly common general-purpose editors that can be used for programming. Other editors, largely those found in Ides (see below), are tuned to support a specific programming language. Such editors have a degree of automation built into them, so they are able to keep track of open and closed parentheses and other delimiters to inform the programmer of syntax errors; in fact, such editors can often "fill in" syntactic constructs such as conditional or repeating statements automatically. Some editors do even more to assist the programmer by also keeping track of semantic elements of programs, ensuring a meaningful fit between program components (for example, that a variable assigned an integer value has in fact been declared to be of type integer.)