1. Software classification

The purpose of a computer is to execute programs. The program contains commands that determine the order in which the computer operates. A set of computer programs forms software (software) . Based on functionality, system and application software are distinguished.

To a first approximation, all programs running on a computer can be divided into three categories (see figure):

1. application programs, directly ensuring the implementation of work required by users;

2. system programs, performing various auxiliary functions, for example:

    computer resource management;

    creating copies of used information;

    checking the functionality of computer devices;

    issuing reference information about the computer, etc.;

3. instrumental software systems , facilitating the process of creating new computer programs.

When constructing a software classification, one must take into account the fact that the rapid development of computer technology and the expansion of the scope of computer applications have sharply accelerated the process of evolution software.

If earlier it was possible to list the main categories of software on one hand - operating systems, translators, packages application programs, but now the situation has changed radically.

Software development has gone both in depth (new approaches to building operating systems, programming languages, etc. have appeared) and in breadth (application programs have ceased to be applied and have acquired independent value).

The relationship between the required software products and those available on the market is changing very quickly. Even classic ones software products, such as operating systems, are constantly evolving and endowed with intelligent functions, many of which previously related only to human intellectual capabilities.

In addition, non-traditional programs have appeared, which are very difficult, if not impossible, to classify according to established criteria, such as, for example, an electronic interlocutor program.

Today we can say that the following software groups have more or less definitely emerged:

    operating systems and shells;

    programming systems (translators, subroutine libraries, debuggers, etc.);

    instrumental systems;

    integrated software packages;

    dynamic spreadsheets;

    computer graphics systems;

    database management systems (DBMS);

    application software.

The structure of the software is shown in Figure. Of course, this classification cannot be considered exhaustive, but it more or less clearly reflects the directions of improvement and development of software.

operating system(OS) - a software system designed to control computer devices, manage data processing and storage, and provide a user interface.

The operating system is usually stored in external memory computer - on disk. When you turn on the computer, it is read from disk memory and placed in RAM.
This process is called loading the operating system.

The functions of the operating system include:

Carrying out a dialogue with the user;
input/output and data management;
planning and organizing the program processing process;
resource distribution (RAM and cache, processor, external devices);
launching programs for execution;
all kinds of auxiliary maintenance operations;
transfer of information between different internal devices;
software support peripheral devices(display, keyboard, disk drives, printer, etc.).

Depending on the number of simultaneously processed tasks and the number of users that the OS can serve, there are four main classes of operating systems:

1. single-user single-tasking, that support one keyboard and can only work with one (currently) task;

2. single-user single-tasking with background printing, which allow, in addition to the main task, to run one additional task, usually focused on printing information. This speeds up work when printing large volumes of information;

3. single-user multitasking, which provide one user with parallel processing of several tasks. For example, you can connect several printers to one computer, each of which will work for its “own” task;

4. multi-user multitasking, allowing multiple users to run multiple tasks on one computer. These operating systems are very complex and require significant machine resources.

Different computer models use operating systems with different architectures and capabilities. They require different resources to operate. They provide varying degrees of service for programming and working with ready-made programs.

Operating system for a personal computer aimed at professional use, must contain the following main components:

I/O control programs;
programs that control file system and scheduling tasks for the computer;
a command language processor that receives, parses, and executes commands addressed to the operating system.
Each operating system has its own command language, which allows the user to perform certain actions:
access the catalogue;
perform markup external media;
run programs;
... other actions.

Analysis and execution of user commands, including loading ready-made programs from files in RAM and their launch is carried out by the operating system command processor.

To control external computer devices, special system programs are used - drivers. Drivers standard devices Together they form the basic input/output system (BIOS), which is usually stored in the computer's permanent memory.

Modern operating systems for PCs differ from each other, primarily in their focus on machines of a certain class, the processing modes they support, and the service capabilities they provide. Examples of OS for PCs are CP/M, MS DOS, OS/2 Warp (IBM), Windows 95 (Microsoft).

Software tools - these are programs that are used in the course of developing, adjusting or developing other applied or system programs.

In their purpose they are similar to programming systems. Tool programs, for example, include:

    editors;

    program composition tools;

    debugging programs, i.e. programs that help find and fix errors in the program;

    auxiliary programs that implement frequently used system actions;

    graphic software packages, etc.

Software tools can provide assistance at all stages of software development.

NHI-1, 02.20.12

Instrumentation systems programming.

Translator, compiler, interpreter

Translators for computers are implemented in the form compilers And interpreters, which differ significantly.

CompilationR reads the text original program entirely , translates it and creates a machine language program, which is then executed entirely by the computer or written into a separate file.

The interpreter translates and executes operators as separate lines programs. Therefore, the program processed by the interpreter is translated into machine language every time the program is run.

Programming tool systems provide users with tools for developing programs. These include:

· compiler and/or interpreter;

· tools for creating and editing program texts;

· libraries standard programs and functions;

· interactive environment for the user;

· graphic libraries and utilities for working with libraries

· and other means.

Instrumental programming systems includeTurbo Basic, Quick Basic, Turbo Pascal, Turbo C, Delphy, Builder.

The BASIC language was created as a language for beginners.

The Pascal language was developed by Niklas Wirth to teach programming to students. Pascal is a language structured programming . Extended language option – Turbo Pascal.

Language Si connects properties of language high level with the possibility of using programming as in Assembly language.

Modern programming systems: Borland Delphi , Microsoft Visual Basic, Borland C++ , which are intended for creating programs in the environment Windows and provide convenient visual development tools.

Tool programs include:

· editors;

· program composition tools;

· debugging programs;

· graphic software packages, etc.

Software tools are used at all stages of software development.

Programming language can be defined as a formal sign system designed to record programs that specify an algorithm in a form understandable to the performer (for example, a computer). Programming language defines a set of lexical, syntactic and semantic rules used in composing a computer program. It allows the programmer to determine exactly what events the computer will respond to, how data will be stored and transmitted, and what actions should be performed on this data under various circumstances.

Since the creation of the first programmable machines, humanity has already come up with more than eight and a half thousand programming languages. Every year their number is replenished with new languages. Some languages ​​are used only by a small number of their own developers, while others become known to millions of people. Professional programmers sometimes use more than a dozen different programming languages ​​in their work. Modern applied and system programs, including operating systems and programming systems, are mainly developed in algorithmic languages or high-level languages ​​that provide convenience and high performance programmer's work.

The history of the development of programming languages ​​begins with machine languages. Programs for the first computers were developed in machine code, and the main storage media were punched cards and punched tapes. Programmers were required to know the machine's architecture thoroughly. The programs were quite simple, which was due, firstly, to the very limited capabilities of these machines, and secondly, to the great complexity of developing and, most importantly, debugging programs directly in machine language.

At the same time, this method of development provided the programmer with simply unlimited possibilities for working with the computer. It became possible to use such ingenious algorithms and ways of organizing programs that many modern programmers do not use (and some do not even know). For example, a feature such as self-modifying code could be used. Knowledge of the binary representation of commands sometimes made it possible not to store some data separately, but to embed them in the code as commands. And this is not a complete list of techniques, mastery of at least one of which now immediately promotes a programmer to the level of an extra class.

With development hardware computers increased processing speed and memory capacity. This led to changes in programming languages ​​- they became simpler and more understandable for people. Programming languages ​​have gone through almost the same stages in their development as computers themselves. The diagram in Figure 4.1 shows how programming languages ​​have evolved along with generations of computers over the past 50 years. The main trend is to increase the ease of user interaction with computer hardware and software.


Rice. 4.1.

The first significant step was the transition to assembly language (assembly language, or assembler). A seemingly not very noticeable step - the transition to symbolic encoding of machine instructions - was actually of great importance. The programmer no longer had to delve into the ingenious ways of encoding commands at the hardware level. Moreover, often essentially identical commands were encoded in different ways depending on their parameters.

A well-known example from the world of modern computers is the encoding of the mov instruction in Intel processors. There are several completely differently coded versions of the command. The choice of one or another option depends on the operands, although the essence of the operation performed is unchanged: place the contents (or value) of the second operand into the first. It also became possible to use macros and labels, which also simplified the creation, modification and debugging of programs. There was even some semblance of portability - it was possible to develop a whole family of machines with a similar instruction system and some kind of common assembler for them, without the need to ensure binary compatibility.

At the same time, the transition to a new language also contained some negative (at first glance) sides. It became almost impossible to use all sorts of clever techniques like those mentioned above. In addition, for the first time in the history of programming, two representations of a program appeared: in source text and in compiled form. At first, while assemblers were just translating mnemonic codes into machine codes, one was easily translated into another and back again, but then, as features such as labels and macros appeared, disassembling (translation from machine code to assembler) became more and more difficult.

By the end of the assembler era, the possibility of automatic translation in both directions was completely lost. In this regard, a large number of special disassembler programs have been developed that carry out inverse conversion, however, in most cases they have difficulty separating code and data. In addition, all logical information (names of variables, labels, etc.) is lost forever. In the case of the problem of decompiling high-level languages, examples of a satisfactory solution to the problem are completely rare.

In 1954, IBM was created by a group of developers led by John Backus. programming language Fortran. The significance of this event is difficult to overestimate. This is the first programming language high level. For the first time, a programmer could truly abstract himself from the peculiarities of machine architecture. The key idea that distinguished the new language from assembly language was the concept of subroutines.

Let us remind you that this modern computers support routines at the hardware level by providing the corresponding instructions and data structures (stack) directly at the assembler level, but in 1954 this was completely different. Therefore, compiling Fortran was by no means a trivial process. In addition, the syntactic structure of the language was quite complex for machine processing, primarily due to the fact that spaces were not used at all as syntactic units. This gave rise to a lot of opportunities for hidden errors.

The FORTRAN language was (and is) used for scientific computing. It suffers from the absence of many familiar language constructs and attributes; the compiler practically does not check the syntactically correct program in terms of semantic correctness (type matching, etc.). It does not support modern ways of structuring code and data. The developers themselves were aware of this. According to Backus himself, they were faced with the task of developing a compiler rather than a language. Understanding the independent significance of programming languages ​​came later.

The introduction of Fortran was met with even more criticism than the introduction of assembler. Programmers were afraid of the reduction in program efficiency due to the use of an intermediate link in the form of a compiler. And these fears were justified: indeed, good programmer, most likely, when solving some small problem by hand, will write code that runs faster than the code obtained as a compilation result. After some time, the understanding came that the implementation big projects impossible without the use of high-level languages. Power computers grew, and the drop in efficiency, which was previously considered threatening, became possible to come to terms with. The advantages of high-level languages ​​became so obvious that they prompted developers to create new languages, more and more advanced.

Lisp became the second high-level programming language in history. It was and is still used today mainly for solving complex problems. Lisp's birth date was 1958; its fame came a little later. In 1960, the journal Communications of the ACM published an article by John McCarthy (author of Lisp) with detailed description new language. He became the father of not only Lisp, but also the founder of all functional programming. The Lisp language is a language for processing lists. Has become quite widespread in systems artificial intelligence. Has several descendants: Planner (1967), Scheme (1975), Common Lisp (1984). Many of its features were inherited by modern functional programming languages.

In 1960, it was created in the USA programming language Cobol. It was designed specifically for creating commercial applications. Thousands of commercial application systems are written in Cobol. A distinctive feature of the language is the ability to effectively work with large amounts of data, which is typical for commercial applications. The popularity of Cobol is so high that even now, with all its shortcomings (in structure and design, Cobol is in many ways reminiscent of Fortran), new dialects and implementations are appearing. Thus, a COBOL implementation compatible with Microsoft has recently appeared. NET, which probably required introducing some object-oriented language features into the language.

In 1960, a team led by Peter Naur created programming language Algol. This language gave rise to a whole family of Algol-like languages ​​(the most important representative is Pascal). In 1968 it appeared a new version language - Algol 68. It did not find such wide practical application as the first version, but was very popular in theorist circles. The language was quite interesting, as it had many unique characteristics at that time.

By the mid-60s of the last century in the United States, the need for programming training not only for specialists in the field of computer technology, but also for a wide range of users, sharply increased. This was due to the sharp increase in the number of computers in business. Two Dartmouth College professors, Thomas Kurth and John Kemeny, created the BASIC language to teach students programming. The language got its name from the first letters of the English words "Beginner"s All-purpose Symbolic Instruction Code" - a universal code of symbolic instructions for beginners.

There is another translation - basic, basic, which corresponds well to the current state of affairs in business programming. The language was intended for teaching programming and became widespread in the form of various dialects, primarily as a language for home microcomputers. Subsequently, most of the criticism of this language was based on the fact that after Basic “a person cannot program normally, and this cannot be corrected. Be that as it may, in 1963 the language was created and received the name Dartmouth BASIC.

This language gained real popularity in 1975. Then Microsoft (at that time only two people - Bill Gates and Paul Allen) wrote a BASIC interpreter for the Altair 8800 computers, called Altair BASIC. The language quickly branched into many dialects. For example, the Apple II was based on one of its versions, and BASIC -80 was written for the CP/M operating system. Note that the second (or even third) wind for the development of Basic was again given by Microsoft. This happened in the early 90s of the last century, when Visual Basic was released, which was no longer at all similar to its ancestor.

In 1964, IBM created the PL/1 language, which was intended to replace Cobol and Fortran in most applications. The language had an exceptional wealth of syntactic structures. It introduced exception handling and parallelism support for the first time. It should be noted that the syntactic structure of the language was extremely complex. Spaces were already used as syntactic delimiters, but keywords were not reserved. Because of these features, developing a compiler for PL/1 was extremely difficult. The language never became popular outside the world of IBM, but was widely used in the former Soviet Union and countries of the socialist community. The reason for this is that these countries produced a number of software-compatible models of EC computers, which were practically copied from IBM /360 computers.

The creation of each of the above-mentioned languages ​​(with the possible exception of Algol) was driven by certain practical requirements. These languages ​​served as the foundation for later developments. They all represent the same programming paradigm. The following languages ​​went significantly further in their development, towards deeper abstraction.

In 1970 Niklaus Wirth created programming language Pascal. The language is remarkable in that it is the first widely used structured programming language (Algol was the first, but it was not as widely used). First unconditional jump operator no longer plays a fundamental role in controlling the order of execution of statements. This language also introduced strict type checking, which made it possible to identify many errors at the compilation stage.

A negative feature of the language was its lack of tools for dividing a program into modules. Wirth recognized this and developed the Modula-2 language (1978), in which the idea of ​​a module became one of the key concepts of the language. In 1988, the Modula-3 language appeared, which added object-oriented features. The logical continuation of Pascal and Modula are the Oberon and Oberon -2 languages. They are characterized by a movement towards object and component orientation. In this regard, it is interesting to consider C-like languages.

In 1972, Kernighan and Ritchie created programming language C. It was created as a language for developing the UNIX operating system. The C language is often called "portable assembler", meaning that it allows you to work with data almost as efficiently as in assembly language, while providing structured control constructs and high-level abstractions (structures and arrays). This is what accounts for his enormous popularity to this day. And this is precisely his Achilles heel. The C compiler has very little type control, so it's very easy to write a program that looks perfectly correct but is logically flawed.

In 1986, Bjarne Stroustrup created the first version of the C++ language, adding object-oriented features taken from Simula (see below) to the C language and correcting some of the language's bugs and bad decisions. C++ continues to improve to this day; in 1998, a new (third) version of the standard was released, containing some quite significant changes. The language has become the basis for the development of modern large and complex projects. He also has, however, weak sides, arising from efficiency requirements.

In 1995, the Sun Microsystems Corporation was created by Ken Arnold and James Gosling. Java language. It inherited the syntax of C and C++ and was spared some of the latter's unpleasant features. A distinctive feature of the language is the compilation of a certain abstract machine into code, for which an emulator (Java Virtual Machine) is then written for real systems. In addition, Java does not have pointers or multiple inheritance, which greatly increases the reliability of programming.

In 1998–2001, the C# language was created at Microsoft by a group of engineers led by Anders Hejlsberg. It is quite similar to Java (and was intended as an alternative to the latter), but it also has distinctive features. The C# language is focused mainly on the development of multi-component Internet applications. It is the main application development language for Microsoft platforms. NET. A C# compiler is included in the standard installation itself. NET, so programs can be created and compiled on it even without tools like Visual Studio.

In 1983, the Ada language was created under the auspices of the US Department of Defense. It is remarkable in that many errors can be detected at the compilation stage. In addition, many aspects of programming that are often left to the operating system are supported (parallelism, Exception Handling). In 1995, the Ada 95 language standard was adopted, which develops previous version, adding object orientation to it and correcting some inaccuracies. Both of these languages ​​are not widely used outside of military and other large-scale projects (aviation, rail transportation). The main reason is the difficulty of mastering the language and its rather cumbersome syntax (much more cumbersome than Pascal).

All the above languages ​​are languages general purpose in the sense that they are not targeted or optimized for the use of any specific data structures or for use in any specific areas. A large number of languages ​​have been developed, targeting fairly specific applications. Below is short review such languages.

In 1957, an attempt was made to create a language to describe mathematical data processing. The language was named APL (Application Programming Language). His distinctive feature was the use of mathematical symbols (which made it difficult to use on text terminals; the emergence graphical interfaces eliminated this problem) and a very powerful syntax that allowed many non-trivial operations directly on complex objects without resorting to breaking them down into components. Widespread use was prevented, as already noted, by the use of non-standard symbols as elements of syntax.

In 1962, the Snobol language (and in 1974, its successor Icon) appeared, designed for string processing. The syntax of Icon is reminiscent of C and Pascal at the same time. The difference lies in the presence of powerful built-in functions for working with strings and special semantics associated with these functions. A modern analogue of Icon and Snobol is Perl, a string and text processing language that adds some object-oriented capabilities. It is considered a very practical language, but lacks elegance.

In 1969, the SETL language was created - a language for describing operations on sets. The main data structure in the language is a set, and the operations are similar to mathematical operations on sets. The language is useful when writing programs that deal with complex abstract objects.

Recently, due to the development of Internet technologies, the widespread use of high-performance computers and a number of other factors, so-called scripting languages ​​have become widespread. These languages ​​were initially oriented towards use as internal control languages ​​in all kinds of complex systems. Many of them, however, have gone beyond the scope of their original application and are now used in completely different areas. The characteristic features of these languages ​​are, firstly, their interpretability (compilation is either impossible or undesirable), secondly, simplicity of syntax, and thirdly, easy extensibility. Thus, they are ideal for work in frequent changeable programs, very small programs, or in cases where executing language statements takes time that is not comparable to the time it takes to parse them. A fairly large number of such languages ​​have been created; we will list only the main and most frequently used ones.

JavaScript was created by Netscape Communications as a language for describing the complex behavior of web pages. The language was originally called LiveScript; the reason for the name change was for marketing reasons. It is interpreted by the browser when the web page is rendered, and is similar in syntax to Java and (vaguely) to C/C++. The language has the ability to use the browser's built-in object functionality, but is not a truly object-oriented language.

Another scripting language, VBScript, was created by Microsoft largely as an alternative to JavaScript. It has a similar scope, is syntactically similar to the Visual Basic language (it is a truncated version of the latter); just like JacaScript, it is executed by the browser when displaying web pages and has the same degree of object orientation.

The Perl language, which is used for dynamically generating web pages on web servers, was created to help the system administrator of the Unix operating system for processing various types of texts and highlighting necessary information. It has developed into a powerful tool for working with texts. It is an interpreted language and is implemented on almost all existing platforms. Interpreted object-oriented programming language Python is close in structure and scope to Perl, but is less widespread and more strict and logical. There are implementations for most existing platforms.

It is interesting to consider a group of early object-oriented languages. Object-oriented approach, which replaced the structural one, did not first appear in C++, as some believe. There is a whole series of pure object-oriented languages, without information about which our review would be incomplete. The first object-oriented language was Simula (1967). This language was intended for modeling various objects and processes, and object-oriented features appeared in it precisely to describe the properties of model objects.

The popularity of object-oriented programming was brought by the Smalltalk language, created in 1972. The language was intended for designing complex graphical interfaces and was the first truly object-oriented language. In it, classes and objects are the only programming constructs. The disadvantage of Smalltalk is its large memory requirements and low performance received programs. The reason is the not very successful implementation of object-oriented features. The popularity of the C++ and Ada 95 languages ​​is due precisely to the fact that object orientation is implemented without a significant decrease in performance.

There is also a language with a very good implementation of object orientation, which is not a superstructure on any other language. This is the language of Eiffel (1986). Being a pure object-oriented programming language, it also improves the reliability of the program through the use of "control statements".

Most computer architectures and programming languages ​​are designed to execute program statements sequentially. Currently, there are software and hardware systems that make it possible to organize the parallel execution of various parts of the same computing process. To program such systems, special support is required from programming tools, in particular programming languages. Some general-purpose languages ​​contain elements of concurrency support, but programming true parallel systems sometimes requires special techniques.

The Occam language was created in 1982 and is intended for programming transputers - multiprocessor distributed data processing systems. It describes the interaction of parallel processes in the form of channels - ways of transmitting information from one process to another. Let us note a feature of the syntax of the Occam language - in it, sequential and parallel orders of execution of operators are equal, and they must be explicitly indicated keywords PAR and SEQ.

In 1985, the Linda parallel computing model was proposed. Its main task is to organize interaction between parallel running processes. This is achieved by using a global tuple space. A process can place a tuple of data there (that is, a collection of several, possibly heterogeneous data), and another process can wait for a certain tuple to appear in the tuple area and, after its appearance, read the tuple and possibly then delete it.

Note that a process can, for example, place a tuple in an area and exit, and another process can use that tuple some time later. This ensures the possibility of asynchronous interaction. It is obvious that with the help of such a model it is possible to emulate synchronous interaction. Linda is a parallel computing model and can be added to any programming language. There are quite efficient implementations of Linda that get around the problem of having a global tuple region with potentially unlimited memory.

All the languages ​​discussed earlier have one thing in common: they are imperative. This means that programs on them ultimately represent step by step description solving this or that problem. You can try to describe only the statement of the problem, and entrust the compiler to solve the problem. There are two main approaches that develop this idea: functional and logical - produced only when it is really necessary. The former languages ​​have more efficient implementation, while the latter have better semantics.

Among languages ​​with energetic semantics, we mention ML and its two modern dialects – Standard ML (SML) and CaML. The latter has an object-oriented descendant - Objective CaML (O"CaML). Among languages ​​with lazy semantics, the two most common are: Haskell and its simpler dialect Clean. The functional programming language F# is interesting. It is a multi-paradigm programming language. You can write functional, imperative and object-oriented code. This allows you to be more pragmatic, rather than trying to force every task facing a developer into a Procrustean bed of classes and interfaces. The F# language is included in the standard set of Visual Studio 2010, although it is still present as a plugin for VS2008.

Window. It's fun to program with. This language breaks down many of the barriers associated with programming and allows you to concentrate on writing the code that the developer needs.

It's important to note that F# supports almost all the features that C# has. Therefore, it can be used without fear of the all-or-nothing principle. There's no need to throw away your existing code and move everything to F#. In general, it is expected that F# code will primarily be used as class libraries integrated into a larger software.

Programs in logic programming languages ​​are expressed as mathematical logic formulas, and the compiler attempts to derive consequences from them. The ancestor of most logic programming languages ​​is Prolog (1971). It has a number of descendants - Parlog (1983, focused on parallel computing), Delta Prolog, etc.

Programming technology is largely determined by the programming language in which programs are written. The language may contain tools that influence the manufacturability and architecture of the system being developed (for example, object orientation, 0

To conclude this section, we can highlight some general trends in the development of programming languages. Languages ​​evolve towards greater and greater abstraction. And this is accompanied by a drop in efficiency. Question: is abstraction worth it? Answer: it’s worth it, since increasing the level of abstraction entails increasing the level of programming reliability. Low efficiency can be combatted by building faster computers. If memory requirements are too high, you can increase the memory size. It takes time and money, but it can be solved. But there is only one way to deal with errors in programs: they must be corrected. Better yet, don’t do it. And even better - make it as difficult as possible to commit them. And this is precisely what all research in the field of programming languages ​​is aimed at.

Send your good work in the knowledge base is simple. Use the form below

Students, graduate students, young scientists who use the knowledge base in their studies and work will be very grateful to you.

Posted on http://www.allbest.ru/

Exercise 1

Instrumental software, its purpose and composition

Task 2

The first stage is problem statement

The second stage is an economic and mathematical description of the problem and the choice of a method for solving it

The third stage - algorithmization

The fourth stage is programming

Fifth stage - debugging

Bibliography

Exercise 1

Instrumental software, its purpose and composition

Software

A set of programs designed to solve problems on a PC is called software. The composition of PC software is called software configuration.

Software can be divided into three categories:

system software (general use programs) that perform various auxiliary functions, such as creating copies of used information, providing help information about the computer, checking the functionality of computer devices, etc.

application software that allows you to perform the necessary work on a PC: editing text documents, creating drawings or pictures, processing information arrays, etc.

tool software (programming systems) that ensures the development of new computer programs in a programming language.

System software

These general-use programs are not associated with a specific PC application and perform traditional functions: scheduling and task management, I/O management, etc.

In other words, system programs perform various auxiliary functions, for example, creating copies of used information, providing help information about the computer, checking the functionality of computer devices, etc.

System software includes:

operating systems (this program is loaded into RAM when the computer is turned on) method use application program

shell programs (provide a more convenient and visual way to communicate with a computer than using command line DOS, for example, Norton Commander)

operating shells are interface systems that are used to create graphical interfaces, multiprogramming, etc.

Drivers (programs designed to control peripheral device ports, usually loaded into RAM when the computer starts)

utilities (auxiliary or utilities, which present the user with a series additional services)
Utilities include:

file managers or file managers

dynamic data compression tools (allow you to increase the amount of information on the disk due to its dynamic compression)

viewing and playback tools

diagnostic tools; control tools allow you to check the computer configuration and check the functionality of computer devices, primarily hard drives

communication tools (communication programs) are designed to organize the exchange of information between computers

means of support computer security (backup, antivirus software).

It should be noted that some of the utilities are included in the operating system, while the other part functions autonomously. Most of the general (system) software is included in the OS. Some of the general software is included in the computer itself (some of the OS programs and control tests are written in ROM or PROM installed on the motherboard). Some of the common software are stand-alone programs and are supplied separately.

Application software

Application programs can be used independently or as part of software systems or packages. Application software - programs that directly provide the necessary work on a PC: editing text documents, creating drawings or pictures, creating spreadsheets, etc.

Application software packages are a system of programs that, according to their scope of application, are divided into problem-oriented, general-purpose packages and integrated packages. Modern integrated packages contain up to five functional components: test and spreadsheet processor, DBMS, graphic editor, telecommunications tools.

Application software, for example, includes:

MS OFFICE suite of office applications

Accounting systems

Financial analytical systems

Integrated office management packages

CAD - systems (computer-aided design systems)

HTML or Web editors

Browsers - tools Web browsing- pages

Graphic editor

Tool software

Tool software or programming systems are systems for automating the development of new programs in a programming language.

In the most general case, to create a program in the selected programming language (system programming language), you need to have the following components:

1. Text editor to create a file with the source code of the program.

2. Compiler or interpreter. The source text is translated into intermediate object code using a compiler program. The source code of a large program consists of several modules (source files). Each module is compiled into a separate file with object code, which then must be combined into one.
3. A link editor or assembler that links object modules and produces a working application as an output - executable code.

Executable code is a complete program that can be run on any computer that has the operating system for which the program was created. As a rule, the resulting file has the extension .EXE or .COM.

4. Recently, visual programming methods (using scripting languages) aimed at creating Windows applications have become widespread. This process is automated in rapid design environments. In this case, ready-made visual components are used, which are configured using special editors.

Most popular editors(program programming systems using visual tools) visual design:

Borland Delphi - designed to solve almost any application programming problem

Borland C++ Builder is an excellent tool for developing DOS and Windows applications

Microsoft Visual Basic is a popular tool for creating Windows programs

Microsoft Visual C++ - this tool allows you to develop any applications running in an OS environment such as Microsoft Windows.

Task 2

Generate and fill out a cumulative statement of accrual of payment for rooms at the Start Hotel for March 2004. Single hotel rooms cost 750 rubles for each client. per day, double rooms - 650 rub. from each client. The room can be reserved. Hotel reservations can be of two types: group and individual and are paid separately. When booking for a group, payment for the first day of stay increases by 25% of the room price; in cases where there is no reservation or it is individual, there is no additional payment.

The type of reservation and the number of days of stay in each room are presented in the table.

Calculate the reservation fee for each room, if any. Calculate the payment for all days of stay for each hotel room. Calculate the final data for the hotel: payment for the reservation, number of days of stay per month, full payment for the hotel for the month. Determine the average number of days of stay, the maximum and minimum payment for days of stay.

Statement of accrual of payment for rooms of the "Start" hotel forMarch 2004

Room number

Occupied number type

Armor type

Payment for booking (RUB)

Number of days of stay

1-seater

1-seater

1-seater

2-seater

2-seater

2-seater

2-seater

Total:

Build diagrams:

· Pie chart for the column “Number of days of stay”.

· Histogram for the column “Payment for days of stay”.

Statement of accrual of payment for rooms of the Start Hotel for March 2004.

It is necessary to generate and fill out a statement of accrual of payment for rooms at the Start Hotel for March 2004.

Let's consider the stages of preparing a solution to a problem on a PC.

The first stage is problem statement

The purpose of solving this problem is to calculate the payment for reservations and days of stay of guests of the Start Hotel for March 2004.

To solve the problem, the following indicators (input information) are used: room number, type of room occupied, type of reservation, room cost per person per day, number of days of stay. Output information: payment for reservation, payment of days for stay.

The second stage is an economic and mathematical description of the problem and the choice of a method for solving it

The problem under consideration is solved by the direct counting method.

Let us denote the initial data:

OB - payment for reservation;

TB - type of armor;

SNChD - room rate per person per day;

KDP - number of days of stay;

ODP - payment for days of stay;

The reservation fee is calculated as follows:

OB = 0.25*SNCHD,

if TB = “group”, otherwise 0.

Payment for days of stay is calculated as follows:

ODP = OB + SNCHD*KDP.

To solve this problem we will use Microsoft Excel.

The third stage - algorithmization

Let's launch Excel program. We will do the work on Sheet 1.

In the range of cells A1:G1 we enter the name of the graph. To give the table header an aesthetic appearance, we will place the graph names in the center of the cell vertically and horizontally with word wrapping. To do this, select the range of cells A1:G1, call the context-sensitive menu (click on the selected area right click mouse), select the Format Cells command from the menu. In the dialog box that appears, select the Alignment tab, set the options: Horizontal - centered; Vertical - centered; Wrap by words and click OK.

In columns A, B, C, D and F we enter the data specified in the task. Next, we will make the necessary calculations using formulas. Below is a calculation table in formulaic and numerical form.

Table in formula form.

Room number

Occupied number type

Room cost per person per day (RUB)

Armor type

Payment for booking (RUB)

Number of days of stay

Payment for days of stay (RUB)

1-seater

IF(D2="group";0.25*C2;0)

1-seater

IF(D3="group";0.25*C3;0)

1-seater

IF(D4="group";0.25*C4;0)

2-seater

IF(D5="group";0.25*C5;0)

2-seater

IF(D6="group";0.25*C6;0)

2-seater

IF(D7="group";0.25*C7;0)

2-seater

IF(D8="group";0.25*C8;0)

Total:

=SUM(E2:E8)

=SUM(F2:F8)

=SUM(G2:G8)

As a result, we obtain the following results.

Room number

Occupied number type

Room cost per person per day (RUB)

Armor type

Payment for booking (RUB)

Number of days of stay

Payment for days of stay (RUB)

1-seater

1-seater

1-seater

2-seater

2-seater

2-seater

2-seater

Total:

537.50 rub.

RUB 18,737.50

Let us determine the average number of days of stay, the amount of maximum and minimum payment for days of stay. To do this, we will use the statistical functions AVERAGE(), MAX() and MIN(), respectively. Below is a table with additional calculations in formulaic and numerical form.

A table with additional calculations in formula form is presented below.

Below is a pie chart for the column “Number of days of stay” and a histogram for the column “Payment for days of stay.”

The fourth stage is programming

No programming is required to solve this problem.

Fifth stage - debugging

To check the correct operation of the entered formulas, you must manually calculate the control values.

Let's calculate the control values ​​for room 31.

OB = 0.25*750 = 187.5, since TB = “group”.

ODP = 187.5 + 750*4 = 3187.5.

Let's calculate the control values ​​for room 35.

OB = 0, since TB does not equal “group”.

ODP = 650*1 = 650.

These control values ​​coincide with the values ​​calculated in the table, therefore, the task was completed correctly.

Bibliography

1. Ilyushechkin V., Kostin A. System software - M.: Higher school, 2008. 127 p.

2. Rudenko V.D. Computer Science Course. - K.: Phoenix, 2008. - 368 p.

3. Stepanov A. Informatics: Textbook for universities. 3rd edition. 2003. - 768 p.

Posted on Allbest.ru

Similar documents

    System, application and instrumental software. The most common application software packages. Purpose and structure of system programs. Filling out a table and working with results in Excel, filtering data and building a chart.

    test, added 01/29/2014

    The essence of the concept of "software". Types of application programs. Modern systems programming for personal computers. Software levels: basic, system, service. Classification of utility software.

    abstract, added 04/01/2010

    Definition of the concept and essence of software. Reviews the fundamentals of interpreted and compiled programs. Features of proprietary, open source, free, system, application and instrumental programs; basic principles of their application.

    abstract, added 11/06/2014

    The essence and purpose of software is a set of programs that control the operation of a computer or automated system. Functions of an operating system - a set of interacting programs that ensure the operation (functioning) of a computer.

    test, added 01/18/2011

    Development of integrated application software packages, mechanisms such as OLE and OpenDoc, ensuring their joint operation. Analysis of the most well-known complexes consisting of application programs that work both independently and in an integrated manner.

    abstract, added 03/03/2012

    A set of programs used to work on a computer. Functional purpose software, legal norms its use. Operating system and service programs. Development computer programs in a programming language.

    presentation, added 10/10/2016

    Goals and objectives of software engineering. Software concept. Six principles for using software effectively. Types of software: system-wide, network and application. Principles of software construction.

    course work, added 06/29/2010

    Review and characteristics of computer software as a set of programs for an information processing system. Characteristics of hardware as a complex of electrical and mechanical devices included in a computer. Interaction of systems.

    presentation, added 12/23/2010

    Main types of software. Characteristics of application software packages. Types and groups of number systems. Converting whole and fractional numbers from one number system to another. Arithmetic operations in the binary system. Computer crimes.

    cheat sheet, added 01/19/2014

    Classification of software, its features, purpose. Software for working with text, images, application, office, for working on the Internet. Programming systems, software specifics, what viruses are.

MINISTRY OF AGRICULTURE OF THE RUSSIAN FEDERATION

FSBEI HPE "Voronezh State Agrarian University named after Emperor Peter I"

Department information support

And modeling of agro-economic systems

Test

By discipline

"Economic Informatics"

Completed by: student EPs-1

correspondence department

Mamychev D.A.

Code UEEko-15126

Checked:_________________

Voronezh 2016

1. Software tools. Translators and their types. Programming systems.

2. Processing packages graphic information.

3. Global computer internet network: basic concepts.

4. List of references.

Software tools. Translators and their types. Programming systems.

Software tools are programs that allow you to modify multimedia files and create multimedia applications.

Software tools are software packages for creating multimedia applications:

− still graphic image editors,

− tools for creating animated GIF files,

− audio and video editing tools,

− tools for creating presentations,



− means of recognizing texts entered from a scanner,

− tools for creating training programs,

− application creation systems virtual reality and others.

Tools significantly expand management capabilities multimedia devices compared to those that provide system tools, but these are always paid products and some of them are very expensive, e.g. professional systems video editing.

Translators and their types.

Since text written in a programming language is incomprehensible to a computer, it needs to be translated into machine code. This translation of a program from a programming language into a machine code language is called translation, and it is performed by special programs - translators.

A translator is a service program that converts a source program provided in the input programming language into a working program presented in an object language.

Currently, translators are divided into three main groups: assemblers, compilers and interpreters.

An assembler is a system utility program that converts symbolic structures into machine language commands. A specific feature of assemblers is that they carry out a verbatim translation of one symbolic instruction into one machine instruction. Thus, assembly language (also called autocode) is designed to facilitate the perception of the computer command system and speed up programming in this command system. It is much easier for a programmer to remember the mnemonic designation of machine commands than their binary code. At the same time, assembly language, in addition to analogues of machine commands, contains many additional directives that facilitate, in particular, managing computer resources, writing repeating fragments, and building multi-module programs. Therefore, the expressiveness of the language is much richer than just a symbolic coding language, which greatly improves programming efficiency.

A compiler is a service program that translates a program written in the source programming language into machine language. Just like an assembler, a compiler converts a program from one language to another (most often, into the language of a specific computer). At the same time, source language commands differ significantly in organization and power from machine language commands. There are languages ​​in which one command of the source language is translated into 7-10 machine commands. However, there are also languages ​​in which each command can have 100 or more machine commands (for example, Prolog). In addition, the source languages ​​quite often use strict data typing, carried out through their preliminary description. Programming may rely not on coding an algorithm, but on thinking carefully about data structures or classes. The process of translating from such languages ​​is usually called compilation, and the source languages ​​are usually classified as high-level programming languages ​​(or high-level languages). The abstraction of a programming language from the computer command system led to the independent creation of a wide variety of languages ​​focused on solving specific problems. Languages ​​have appeared for scientific calculations, economic calculations, access to databases, and others.

Interpreter - a program or device that carries out operator-by-operator translation and execution of the source program. Unlike a compiler, an interpreter does not produce a machine language program as output. Having recognized a command in the source language, it immediately executes it. Both compilers and interpreters use the same methods for analyzing the source code of a program. But the interpreter allows you to start processing data after writing even one command. This makes the process of developing and debugging programs more flexible. In addition, the absence of output machine code allows you to avoid cluttering external devices additional files, and the interpreter itself can be quite easily adapted to any machine architecture by developing it only once in a widely used programming language. Therefore, interpreted languages ​​such as Java Script and VB Script have become widespread. The disadvantage of interpreters is the low speed of program execution. Typically, interpreted programs run 50 to 100 times slower than native programs.

Any translator performs the following main tasks:

Analyzes the translated program, in particular determines whether it contains syntax errors;

Generates an output program (often called an object program) in machine instruction language;

Allocates memory for an object program.

Programming systems.

Programming systems are a set of software tools designed to work with programs in one of the programming languages. Programming systems provide services for programmers to develop their own computer programs.

Currently, the development of any system and application software is carried out using programming systems, which include:

Translators from high-level languages;

Tools for editing, composing and loading programs;

Macroassemblers (machine-oriented languages);

Debuggers of machine programs.

Programming systems typically include:

Text editor (Edit), which performs the functions of recording and editing the source text of the program;

Program loader (Load), allowing you to select the desired one from the directory text file programs;

Program launcher (Run), which carries out the process of program execution;

Compiler (Compile), designed to compile or interpret the source text of a program into machine code with the diagnosis of syntactic and semantic (logical) errors;

Debugger, which performs service functions for debugging and testing the program;

File manager (File), which provides the ability to perform operations with files: saving, searching, deleting, etc.

2. Packages for processing graphic information.

Software creation and processing of graphic information are divided into:

Graphic editors designed primarily for creating and processing planar images;

Computer graphics packages for printing, allowing you to supplement the text with illustrations of various formats, create page designs and print printed products;

2D animation programs used to create dynamic images and special effects in films;

3D animation packages used to create advertising, music videos and films.

All computer images are divided into two types: raster and vector.

Raster graphics. Raster graphic images are formed in the process of converting graphic information from analogue to digital form.

You can create a raster graphic image directly on your computer using a graphics editor, download from CD-ROM or DVD-ROM discs, or “download” from the Internet.

A raster image is stored using dots of different colors (pixels) that form rows and columns. Each pixel has a specific position and color. A pixel is the smallest area of ​​an image that can be independently assigned a color.

Quality bitmap depends on the size of the image (the number of horizontal and vertical pixels) and the number of colors that the pixels can accept. Storing each pixel requires a certain number of bits (color depth), which depends on the number of colors in the image.

Raster graphic images of multi-color photographs and illustrations are obtained using a scanner. Such images are usually large in size and have a high color depth (24 or 36 bits per dot). As a result, files storing raster images have a large information volume.

Raster images are very sensitive to scaling (enlargement or reduction). When a raster image is reduced, several adjacent dots are converted into one, so the legibility of fine details in the image is lost. When enlarged, the size of each dot increases and a step effect appears, which can be seen with the naked eye.

Vector graphics. Vector graphics are the optimal means for storing high-precision graphic objects (drawings, diagrams, etc.), for which it is important to maintain crisp and clear outlines. Computer-aided drawing and computer-aided design (CAD) systems and three-dimensional graphics processing programs are based on vector graphics.

Vector images are formed from objects (point, line, circle, rectangle, etc.), which are stored in computer memory in the form of graphic primitives and mathematical formulas describing them.

The advantage of vector graphics is that files storing vector graphic images are relatively small in size. It is also important that vector graphics can be enlarged or reduced without loss of quality. This is possible because image scaling is done using simple mathematical operations (multiplying the parameters of graphic primitives by a scaling factor).

Depending on the method of describing graphic data, a division into types of graphic editors is carried out.

A graphics editor is a program designed to create various types of images, from the simplest to video materials.

Raster graphic editor(PaintBrush, PhotoShop) are based on the bit method of image transmission. They process fairly detailed scanned images. Performing retouching, changing colors, their shades and contrasts, rubbing and shading, changing the direction of shadows and contours. The length of the bit files is large due to the large number of screen pixels being processed, allowing for the use of a large number of colors and detailed image editing. The image can be scanned in black and white, grayscale and color. For raster graphic editors, it is necessary to select the angle and type of raster (block, linear, dot, etc.), and resolution. For color images, adjust the brightness and contrast for each of the colors that make up the gamut graphic image. Finished drawings are stored in separate files and may be available for use.

Vector graphic editors (Adobe Fireworks, ConceptDraw PRO, CorelDRAW)

To create complex drawings with precise, complex and clear boundaries, they mainly use a vector editor, one of the main tools of which is Bezier curves, which allow you to draw curves (broken, straight and smooth) in segments with precise placement of node (anchor) points and control over the shape each segment. A Bezier curve can be represented as the result of progressive refinement of the shape of a polygon, built by sequentially connecting control points that determine the shape. The curve, moving from the starting point of the polygon to its end point, is attracted, like a magnet, to intermediate reference points that determine the shape, through which it itself does not pass. Due to their special properties, ease of definition and ability to manipulate, Bezier curves are widely used for modeling smooth lines in computer graphics. The arsenal of tools that every vector graphics editor has includes “Fill”, “Text”, “Pencil” and a basic set of geometric shapes (the so-called primitives), which form the basis of most graphic designs.

3.Global computer network internet: basic concepts.

The Internet (from the English inter - “between” and net - “network, web”) is a set of computer networks connecting military, government, educational, commercial institutions, as well as individual citizens.

An Internet server (web server or http server) is a software and hardware system installed on a computer connected to a high-speed Internet backbone. Such computers are also called servers. The main function of the server is to search and transmit to user computer information requested by client programs, in particular browsers.

It is legitimate to use the term server differently. Internet users call large web sites along with their information content a server; web designers and programmers mean a server special programs to transfer data from the Internet to the user's computer, system administrators and specialists serving local networks, - the computers themselves on which such programs are installed.

A browser is a client program for working on the Internet that accesses the server, reads a document written using HTML, interprets the received information and displays the contents of the document. The most famous browsers in Russia are Internet Explorer,Opera, Google Chrome, Mozilla Firefox and etc.

A website (from the English site - “section”) is a set of web pages interconnected by links and stored on one server. A set of Web sites that are interconnected by links and stored on different servers is called a Web portal.

The functioning of Internet technology directly depends on the protocol - a set of rules that stipulate everything related to working on the network. Internet data transmission technology is based on the TCP/IP protocol (IP (Internet Protocol), TCP (Transmission Control Protocol) - a generally accepted standard that describes the rules for sending and receiving information between several connected networks of computers.

TCP/IP defines its own IP address for each computer operating on the Internet, consisting of four numerical sequences separated by a dot (for example, 195.85.105.160). At any position, each value can vary from 0 to 255. For the convenience of users on the Internet, a domain name system has been developed - DNS (Domain Name System). Domain Name Service converts domain name to numeric IP address. The computers that perform this translation are called DNS servers.

According to the DNS specification, everything virtual space The Internet is divided into domains - logical zones controlled by one or more special computers. The hierarchy of domain addresses can be either regional or depending on the type of activity of the business entity. The largest DNS units are called first-level domains, which cover global areas of the Internet according to the following characteristics:

Com, .biz - commercial enterprises;

Net - originally assigned to organizations responsible for supporting the Internet, now also used for commercial business entities;

Edu - educational institutions;

Org - non-profit and public organizations;

Gov - government agencies;

Mil - military institutions;

Int - international organizations that are created on the basis of treaties or are part of the Internet infrastructure;

Name - private individuals;

Info - not limited;

Ru, .ua, etc. - abbreviations for countries adopted by the ISO standards committee.

A step lower in the DNS hierarchy are second-level domains, which are directly dependent on the first-level domain. Second-level domains belong to municipal or commercial organizations (for example, spb.ru, ifmo.ru).

A second level domain can only contain 22 characters (letters, numbers and dashes). However, you cannot register an already existing domain name.

There are also third-level domains that are part of a higher-level domain (for example, the conditional domain name.spb.ru). You can also find domains four, five, etc. levels.

URL (Uniform Resource Locator) is a universal designation of the location of a resource (for example, www.ifmo.ru).

Thus, several types of addresses are used on the Internet:

1) IP address - main network address, which is assigned to each computer when entering the network. This is a global numbering, since a computer connected to the Internet has its own unique IP address. IP addresses are divided into classes according to the size of the network to which the user is connected.

2) domain address. The translation of a domain address into an IP address occurs automatically using the DNS system.

3) URL - a universal address that is used to indicate the name of each storage object on the Internet.

Hosting (from the English hosting) is a service for providing disk space for the physical placement of information on a server that is constantly located on the network. As a rule, the hosting service includes the provision of space for mail correspondence, databases, DNS, file storage etc., as well as support for the functioning of relevant services.

Electronic bulletin boards (BBS - Bulletin Board System) create specialized network services, whose activities are devoted to a specific topic. A BBS typically contains files of information of interest to specific user groups, as well as a means for bulletin board users to exchange information on issues of interest to them. Via BBS Maintenance: Users submit questions and staff answer them.

Web communities are financially supported by various companies and are sites whose members exchange opinions on issues of interest to them based on the principle of a common range of interests.

Electronic mail (from the English E-mail, email, abbreviated from electronic mail) is a method of transmitting information to computer networks, widely used on the Internet. Main Feature Email is that information is sent to the recipient not directly, but through an intermediate link - an electronic mailbox, which is a place on the server where the message is stored until the recipient requests it. In most cases, to access mailbox A password is required. Access to the mail server can be provided either through special mail programs (Microsoft Outlook, The Bat, etc.) or through a web interface.

ICQ (an acronym for the English I seek you - “I’m looking for you”) is a service that allows network users to exchange messages in real time, as well as organize a chat, transfer files, etc. The program works using the OSCAR protocol, which ensures the exchange of instantaneous and offline text messages. Currently, the service is owned by the Mail.ru Group investment fund (a Russian investment group specializing in investments in Internet projects).

IRC (from the English Internet Relay Chat - “relayed Internet chat”) is a service in which messages are exchanged without delay.

IP telephony is a technology that allows you to use the Internet or any other IP network as a means of organizing and conducting telephone conversations.

Skype is free, proprietary, closed-source software that provides encrypted voice communication via the Internet between computers, as well as paid services for communication with regular subscribers telephone network. The creators of Skype are Niklas Zennstrom and Janus Friis. The first release of the program and website appeared in September 2003.

Table 1. Calculation of company profit

No. Indicators Year Total for the year
1 sq. 2 sq. 3 sq. 4 sq.
Trading Income
Trading expenses
Gross profit
Salary expenses
Advertising expenses
Overheads
Total costs
Production profit
Specific gross profit 0,099010177 0,118613565 0,074808144 0,121404967 0,4138369

Table 2. Company cost structure

Diagram 1. Cost structure of the company

Bibliography:

1. Internet resource http://eclib.net/

2. Internet resource https://ru.wikipedia.org/

3. Internet resource http://studopedia.ru/