Windows.  Viruses.  Notebooks.  Internet.  office.  Utilities.  Drivers

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. A text editor to create a file with the source code of the program. 2. Compiler or interpreter. The source text is translated into an 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 a single unit. 3. A linker or assembler that links object modules and generates a workable application at the output - executable code. An 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) oriented towards 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. The most popular editors (programming systems using visual tools) for 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 that run in an OS environment such as Microsoft Windows

1.3.2. File systems

All modern operating systems provide the creation of a file system that is designed to store data on disks and provide access to them. The main functions of the file system can be divided into two groups:

 Functions for working with files (create, delete, rename files, etc.)

 Functions for working with data stored in files (writing, reading, searching for data, etc.)

Files are known to be used to organize and store data on machine media. A file is a sequence of arbitrary number of bytes that has a unique name of its own or a named area on machine media. Structuring a set of files on machine media is carried out using directories in which attributes (parameters and details) of files are stored. A directory can include many subdirectories, resulting in branched file structures on disks. The organization of files in a tree structure is called a file system. The principle of organizing the file system is tabular. Where a file is stored on a disk is stored in the File Allocation Table (FAT). This table is placed at the beginning of the volume. To protect the volume, two copies of the FAT are stored on it. If the first FAT copy is corrupted, disk utilities can use the second copy to repair the volume. FAT is similar to the table of contents of a book in terms of how the operating system uses it to find the file and determine the clusters that this file occupies on the hard disk. The smallest physical unit of data storage is a sector. The sector size is 512 bytes. Since the size of the FAT table is limited, for disks larger than 32 MB, it is not possible to provide addressing to each individual sector. In this regard, groups of sectors are conditionally combined into clusters. A cluster is the smallest unit of data addressing. The cluster size, unlike the sector size, is not fixed and depends on the capacity of the disk.

At first, floppy disks and small hard drives (less than 16 MB) used the 12-bit version of FAT (called FAT12). MS-DOS then introduced the 16-bit version of FAT for larger drives. Operating systems MS DOS, Win 95, Win NT implement 16-bit fields in file allocation tables. The FAT32 file system was introduced in Windows 95 OSR2 and is supported in Windows 98 and Windows 2000. FAT32 is an enhancement to FAT designed for use on volumes larger than 2 GB. FAT32 provides support for drives up to 2TB and more efficient use of disk space. FAT32 uses smaller clusters to improve disk space efficiency. Windows XP uses FAT32 and NTFS. A more promising direction for development file systems was the transition to NTFS (New Technology File System- a new technology file system) with long file names and a reliable security system. The size of an NTFS partition is not limited. NTFS minimizes volume disk space, lost due to writing small files to large clusters. In addition, NTFS allows you to save disk space by compressing the disk itself, individual folders and files.

According to the ways of naming files, there are “short” and “long” names. According to the convention adopted in MS-DOS, the way to name files on IBM PC computers was the convention 8.3., i.e. The file name consists of two parts: the name itself and the name extension. The file name is 8 characters, and the extension is 3 characters. The name is separated from the extension by a dot. Both the name and the extension can only include Latin alphanumeric characters. Filenames written according to the 8.3 convention are considered "short". With the advent of the Windows 95 operating system, the concept of a “long” name was introduced. This name can contain up to 256 characters. This is sufficient to create meaningful filenames. A “long” name can contain any characters except nine special characters: \ / : * ? “< >|. Spaces and multiple periods are allowed in the name. The file name ends with a three-character extension. The extension is used to classify files by type. The uniqueness of the file name is ensured by the fact that the full file name is considered to be the file's own name along with the path to it. File path starts with the device name and includes all directory (folder) names it passes through. The character “\” is used as a separator (backslash - backslash). For example: D:\Documents and Settings\TVA\My Documents\lessons-tva\ robots.txt structure, they are presented to the user in the form of a hierarchical structure - it is more convenient for people, and the operating system takes care of all the necessary transformations. The file structure maintenance function includes the following operations that occur under the control of the operating system:

 creating files and naming them;

 creation of catalogs (folders) and naming them;

 renaming files and directories (folders);

 copying and moving files between computer disks and between directories (folders) of one disk;

 deletion of files and directories (folders);

 navigation file structure in order to access a given file, directory (folder);

 managing file attributes.

Tool software, as a special kind of software, is characterized by general and particular

functions, as for all software in general. General functions are considered by us above, and specialized functions inherent only this type programs are:

1. Creation of the text of the developed program using specially established code words (programming language), as well as a certain set of characters and their location in the created file - the syntax of the program.

2. Translation of the text of the created program into a machine-oriented code accessible for computer recognition. In the case of a significant volume of the created program, it is divided into separate modules and each of the modules is translated separately.

3. Connection of individual modules into a single executable code, in compliance with the necessary structure, ensuring the coordination of the interaction of individual parts with each other.

4. Testing and control of the created program, detection and elimination of formal, logical and syntactic errors, checking programs for prohibited codes, as well as assessing the performance and potential of the created program.

Types of tool software

Based on the tasks assigned to the instrumental software, a large number of different types of instrumental software can be distinguished:

1) Text editors

2) Integrated Development Environments

4) Compilers

5) Interpreters

6) Linkers

7) Parsers and parser generators (see Javacc)

8) Assemblers

9) Debuggers

10) Profilers

11) Document Generators

12) Code coverage analysis tools

13) Continuous Integration Tools

14) Automated testing tools

15) Version control systems, etc.

It should be noted that shells for creating application programs are also created by tool programs and therefore can be classified as application programs. Consider briefly the purpose of some instrumental programs.

Text editors.

Text editor-- a computer program designed for processing text files, such as creating and making changes.

Types of text editors.

Conventionally, there are two types of editors: streaming text editors and interactive.

1) Streaming text editors

Streaming text editors are computer programs which are intended for automated processing input text data obtained from a text file, in accordance with rules predefined by users. Most often, the rules are regular expressions, in a dialect specific to that particular text editor. An example of such a text editor is the Sed editor.

2) Interactive text editors

Interactive text editors are a family of computer programs designed to make changes to text file interactively. Such programs allow you to display the current state of text data in a file and perform various actions on them.

Often, interactive text editors contain significant additional functionality designed to automate some of the editing actions, or to make a change in the display of text data, depending on their semantics. Syntax highlighting is an example of the latter kind of functionality.

Text editors are designed to create and edit text documents. The most common are MS WORD, Lexicon. The main functions of text editors are:

1) work with document fragments,

2) inserting objects created in other programs

3) pagination of the text of the document

4) entering and editing tables

5) entering and editing formulas

6) paragraph formatting

7) automatic creation lists

8) automatic creation of a table of contents.

Dozens of text editors are known. The most accessible are NOTEPAD(notepad), WORDPAD, WORD. The work of a particular text editor is usually determined by the functions, the purpose of which is reflected in the menu items and in the help system.

Integrated Development Environment

Integrated Development Environment (IDE) is a software system used by programmers to develop software (SW). The development environment usually includes:

1) text editor

2) compiler and/or interpreter

3) assembly automation tools

4) debugger.

Sometimes also contains tools for integration with version control systems and various tools to simplify construction GUI user. Many modern development environments also include a class browser, an object inspector, and a class hierarchy diagram for use in object-oriented software development. While there are development environments designed for multiple programming languages ​​such as Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator or Microsoft Visual Studio, a development environment is usually intended for one specific programming language such as Visual Basic, Delphi , Dev-C++.

A special case of ISR is visual development environments, which include the ability to visually edit the program interface.

SDK(from the English Software Development Kit) or "devkit" - a set of development tools that allows software specialists to create applications for a specific software package, software development tools, hardware platform, computer system, video game consoles, operating systems and others platforms.

The programmer usually obtains the SDK directly from the developer of the target technology or system. Often the SDK is distributed over the Internet. Many SDKs are distributed free of charge to encourage developers to use this technology or platform.

SDK vendors sometimes replace the term Software in Software Development Kit with more exact word. For example, Microsoft and Apple provide Driver Development Kits (DDK) for developing device drivers, while PalmSource calls its development toolkit "PalmOS Development Kit (PDK)".

SDK examples:

5) Java Development Kit

6) Opera Devices SDK

Compilers.

Compiler --

1) A program or hardware tool that performs compilation.

2) The machine program used for compilation.

3) A translator that converts a program written in the source language into an object module.

4) A program that translates the text of a program in a high-level language into an equivalent program in machine language.

5) A program designed to translate a high-level language into absolute code or, sometimes, into assembly language. The input information for the compiler (source code) is a description of the algorithm or a program in a domain-specific language, and the output of the compiler is an equivalent description of the algorithm in a machine-oriented language (object code).

Compiling --

1) Translation of the program into a language close to the machine.

2) Translation of a program written in the source language into an object module. Implemented by the compiler.

Compile -- translate a machine program from a domain-specific language to a machine-specific language.

Compiler types:

1) Vectorizing. Translates the source code into the machine code of computers equipped with a vector processor.

2) Flexible. Compiled in a modular fashion, driven by tables, and programmed in a high-level language or implemented with a compiler compiler.

3) Dialogue.

4) Incremental. Retranslates program fragments and extensions without recompiling the entire program.

5) Interpretive (step by step). Sequentially performs independent compilation of each individual statement (command) of the source program.

6) Compiler of compilers. A translator that takes a formal description of a programming language and generates a compiler for that language.

7) Debug. Eliminates certain types of syntax errors.

8) Resident. Permanently resides in main memory and is available for reuse by many tasks.

9) Self-compiled. Written in the same language from which the broadcast is carried out.

10) Universal. Based on a formal description of the syntax and semantics of the input language. The components of such a compiler are: the kernel, syntactic and semantic loaders.

Compilation types:

1) Batch. Compiling multiple source modules in one job item.

2) Line by line.

3) Conditional. Compilation in which the translated text depends on the conditions specified in the source program. So, depending on the value of some constant, you can turn on or off the translation of a part of the program text.

compiler structure.

The compilation process consists of the following steps:

1) Lexical analysis. At this stage, the sequence of characters in the source file is converted into a sequence of tokens.

2) Syntactic (grammatical) analysis. The sequence of tokens is converted into a parse tree.

3) Semantic analysis. The parse tree is processed in order to establish its semantics (meaning) -- for example, binding identifiers to their declarations, types, compatibility checks, determination of expression types, etc. The result is usually called "intermediate representation/code", and may be augmented by a parse tree , a new tree, an abstract set of commands, or something else convenient for further processing.

4) Optimization. Redundant constructs are removed and the code is simplified while maintaining its meaning. Optimization can be at different levels and stages - for example, over the intermediate code or over the final machine code.

5) Code generation. From the intermediate representation, code in the target language is generated.

In specific implementations of compilers, these stages can be separated or combined in one form or another.

Broadcasting and composing.

An important historical feature of the compiler, reflected in its name ( English compile -- assemble together, compose), was that it could also perform linking (that is, it contained two parts - a translator and a linker). This is due to the fact that separate compilation and linking as a separate stage of assembly emerged much later than the advent of compilers. In this regard, instead of the term "compiler", the term "translator" is sometimes used as its synonym: either in the old literature, or when they want to emphasize its ability to translate a program into machine code (and vice versa, they use the term "compiler" to emphasize the ability to assemble from many files one).

Interpreters.

Interpreter (programming language) --

1) A program or technical tool that performs interpretation.

2) The type of translator that performs operator-by-operator (command-by-command) processing and execution of the source program or query (as opposed to a compiler that translates the entire program without executing it).

3) A program (sometimes hardware) that analyzes commands or program statements and immediately executes them.

4) A language processor that analyzes the source program line by line and simultaneously performs the prescribed actions, and does not form a compiled program in machine language that is subsequently executed.

Interpreter types.

simple interpreter analyzes and immediately executes (interpretation itself) the program command-by-command (or line-by-line), as its source code arrives at the input of the interpreter. The advantage of this approach is the instant response. The disadvantage is that such an interpreter detects errors in the program text only when an attempt is made to execute a command (or line) with an error.

A compiler type interpreter is a system of a compiler that translates the source code of a program into an intermediate representation, for example, bytecode or p-code, and the interpreter itself, which executes the resulting intermediate code (the so-called virtual machine). The advantage of such systems is the greater speed of program execution (due to the removal of the source code analysis into a separate, one-time pass, and the minimization of this analysis in the interpreter). Disadvantages -- greater resource requirement and requirement for correct source code. It is used in languages ​​such as Java, PHP, Python, Perl (bytecode is used), REXX (the result of source code parsing is saved), as well as in various DBMS (p-code is used).

If the interpreter of a compiling type is divided into components, a language compiler and a simple interpreter with minimized source code analysis are obtained. Moreover, the source code for such an interpreter does not have to be in a text format or be a bytecode that only this interpreter understands, it can be the machine code of some existing hardware platform. Eg, virtual machines like QEMU, Bochs, VMware include machine code interpreters for x86 family processors.

Some interpreters (for example, for Lisp, Scheme, Python, BASIC and others) can work in dialog mode or the so-called read-calculation-print loop (read-eval-print loop, REPL). In this mode, the interpreter reads a complete language construct (for example, s-expression in Lisp), executes it, prints the results, and then proceeds to wait for the user to enter the next construct.

The Forth language is unique, which is able to work both in the input data interpretation and compilation modes, allowing you to switch between these modes at any time, both during source code translation and while programs are running.

It should also be noted that interpretation modes can be found not only in software, but also in hardware. Thus, many microprocessors interpret machine code using embedded microprograms, and x86 family processors, starting with Pentium (for example, on the Intel P6 architecture), during the execution of machine code, pre-translate it into an internal format (into a sequence of micro-ops).

The algorithm of a simple interpreter:

2. analyze the instruction and determine the appropriate actions;

3. take appropriate action;

4. if the program termination condition is not reached, read the next instruction and go to point 2.

Advantages and disadvantages of interpreters.

Advantages:

1) Big portability of interpreted programs -- the program will run on any platform that has an appropriate interpreter.

2) As a rule, more advanced and visual means of diagnosing errors in source codes.

3) Simplification of debugging of program source codes.

4) Smaller code sizes compared to machine code obtained after conventional compilers.

Flaws:

1) An interpreted program cannot be executed separately without an interpreter program. The interpreter itself can be very compact.

2) An interpreted program runs slower because intermediate analysis of the source code and scheduling of its execution requires additional time compared to the direct execution of machine code into which the source code could be compiled.

3) There is practically no code optimization, which leads to additional losses in the speed of the interpreted programs.

Linker.

Linker(also linker, linker) - a program that performs linking - takes one or more object modules as input and assembles an executable module from them.

To link modules, the linker uses the name tables created by the compiler in each of the object modules. Such names can be of two types:

1) Defined or exported names -- functions and variables defined in a given module and provided for use by other modules.

2) Undefined or imported names - functions and variables that the module refers to, but does not define them within itself.

The linker's job is to resolve references to undefined names in each module. For each imported name, its definition is found in other modules, the mention of the name is replaced by its address.

The linker does not normally perform type or count checking of procedure and function parameters. If it is necessary to combine object modules of programs written in strongly typed languages, then the necessary checks must be performed by an additional utility before starting the linker.

assembler.

assembler(from English assembler - assembler) - a computer program, a compiler of the source code of a program written in assembly language into a program in machine language.

Like the (assembler) language itself, assemblers tend to be specific to a particular architecture, operating system, and syntax variant of the language. At the same time, there are multi-platform or completely universal (more precisely, limited-universal, because it is impossible to write hardware-independent programs in a low-level language) assemblers that can work on different platforms and operating systems. Among the latter, one can also single out a group of cross-assemblers capable of assembling machine code and executable modules (files) for other architectures and operating systems.

Assembly may not be the first or last step on the path to obtaining an executable program module. So, many compilers from high-level programming languages ​​produce the result in the form of an assembly language program, which is further processed by the assembler. Also, the result of assembly may not be an executable, but an object module containing separate and unattached parts of the machine code and program data, from which (or from several object modules) in the future with the help of a linker program ("linker") executable file.

A debugger or debugger is a development environment module or separate application, designed to find errors in the program. The debugger allows you to step through the trace, monitor, set or change the values ​​of variables during program execution, set and remove breakpoints or break conditions, and so on.

List of debuggers.

1) AQtime is a commercial debugger for applications built for .NET Framework version 1.0, 1.1, 2.0, 3.0, 3.5 (including ASP.NET applications), as well as for Windows 32- and 64-bit applications.

2) DTrace is a dynamic tracing framework for Solaris, OpenSolaris, FreeBSD, Mac OS X and QNX.

3) Electric Fence -- memory debugger.

4) GNU Debugger (GDB) is a program debugger from the GNU project.

5) IDA -- a powerful disassembler and low-level debugger for operating systems Windows families and Linux.

6) Microsoft Visual Studio is a software development environment that includes debugging tools from Microsoft Corporation.

7) OllyDbg is a free low-level debugger for operating systems of the Windows family.

8) SoftICE is a low-level debugger for operating systems of the Windows family.

9) Sun Studio is a software development environment including the dbx debugger for Solaris and Linux operating systems from Sun Microsystems Corporation.

10) Dr. Watson is a standard Windows debugger that allows you to create memory dumps.

11) TotalView is one of the commercial debuggers for UNIX.

12) WinDbg is a free debugger from Microsoft Corporation.

Documentation generator - a program or software package that allows you to get documentation intended for programmers (API documentation) and / or for end users of the system, from specially commented source code and, in some cases, from executable modules (obtained from the output of the compiler) .

Usually, the generator analyzes the source code of the program, highlighting the syntactic constructions corresponding to the significant objects of the program (types, classes and their members/properties/methods, procedures/functions, etc.). The analysis also uses meta-information about program objects, presented in the form of documenting comments. Based on all the information collected, ready-made documentation is formed, usually in one of the generally accepted formats - HTML, HTMLHelp, PDF, RTF and others.

Documentation comments.

A documentary comment is a specially designed

instrumental software(IPO) - software designed for use in the design, development and maintenance of programs.

Applied tooling in the development phase. Tool software is a set of programs used to help programmers in their work, to help software development managers in their desire to control the development process and the resulting products. The most famous representatives of this piece of software are programs of translators from programming languages ​​that help programmers write machine instructions. The tool programs are translators from Fortran, Cobol, Jovial, BASIC, APL and Pascal. They facilitate the process of creating new work programs. However, translators from languages ​​are only the most well-known part of the tool programs; there are a great many of them.

The use of computers to help create new programs is far from obvious to people who are not professional programmers. It often happens that professionals talk about tool (development phase) and system (use phase) software in one breath, assuming that the uninitiated in the secrets of their skill is aware of this role of tool software. As in the use phase (for application programs), system software works in the development phase, but only in conjunction with the tooling. 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 for creating a file with the source code of the program.

2. Compiler or interpreter. The source text is translated into an intermediate object code using a compiler program. The source text of a large program consists of several modules (files with source texts). Each module is compiled into a separate file with object code, which then must be combined into a single unit.

3. A linker or assembler that links object modules and generates a workable application - executable code.

An 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.

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

The most popular editors (programming systems using visual tools) for 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 that run in an OS environment such as Microsoft Windows

Thus, the essence of tool software is to create any executable program, by converting formally boolean expressions into executable machine code, as well as its control and correction.

Tasks and functions of the tool software

Tool software, as a special kind of software, is characterized by general and particular

functions, as for all software in general. We discussed the general functions above, and the specialized functions inherent only to this type of program are:

1. Creation of the text of the developed program using specially established code words (programming language), as well as a certain set of characters and their location in the created file - the syntax of the program.

2. Translation of the text of the created program into a machine-oriented code accessible for computer recognition. In the case of a significant volume of the created program, it is divided into separate modules and each of the modules is translated separately.

3. Connection of individual modules into a single executable code, in compliance with the necessary structure, ensuring the coordination of the interaction of individual parts with each other.

4. Testing and control of the created program, detection and elimination of formal, logical and syntactic errors, checking programs for prohibited codes, as well as assessing the performance and potential of the created program.

Types of tool software

Based on the tasks assigned to the instrumental software, a large number of different types of instrumental software can be distinguished:

Text editors

Integrated Development Environments

Compilers

Interpreters

Linkers

Parsers and parser generators (see Javacc)

Assemblers

Debuggers

Profilers

Documentation Generators

Code coverage analysis tools

Continuous Integration Tools

Automated testing tools

Version control systems, etc.

It should be noted that shells for creating application programs are also created by tool programs and therefore can be referred to as application programs. Consider briefly the purpose of some instrumental programs.

Text editors.

A text editor is a computer program designed for processing text files, such as creating and making changes.

CAD composition

CAD is a system that combines technical means, mathematical and software, the parameters and characteristics of which are chosen with maximum consideration for the features of engineering design and construction tasks. In CAD, the convenience of using programs is ensured through the use of means of operational communication between an engineer and a computer, special problem-oriented languages, and the availability of an information and reference base.

The structural components of CAD are subsystems that have all the properties of systems and are created as independent systems. These are CAD parts selected according to some criteria, which ensure the fulfillment of some completed design tasks with the receipt of appropriate design solutions and design documents.

According to the purpose of the CAD subsystem, they are divided into two types: design and maintenance.

Designing includes subsystems that perform design procedures and operations, for example:

machine layout subsystem;

subsystem for designing assembly units;

Subsystem of parts design;

· subsystem of control circuit design;

· technological design subsystem.

Servicing includes subsystems designed to maintain the performance of design subsystems, for example:

· subsystem of graphic display of design objects;

documentation subsystem;

Information retrieval subsystem, etc.

Depending on the relationship to the design object, two types of design subsystems are distinguished:

object-oriented (objective);

Object-independent (invariant).

Object subsystems include subsystems that perform one or more design procedures or operations that are directly dependent on a specific design object, for example:

subsystem for designing technological systems;

subsystem for modeling dynamics, designed structure, etc.

Invariant subsystems include subsystems that perform unified design procedures and operations, for example:

subsystem for calculating machine parts;

subsystem for calculating cutting conditions;

subsystem for calculating technical and economic indicators, etc.

The design process is implemented in subsystems in the form of a certain sequence of design procedures and operations. The design procedure corresponds to a part of the design subsystem, as a result of which a certain design decision is made. It consists of elementary design operations, has a firmly established order of their implementation and is aimed at achieving a local goal in the design process. A design operation is understood as a conditionally allocated part of the design procedure or an elementary action performed by the designer in the design process. Examples of design procedures can be the procedures for developing a kinematic or layout diagram of a machine tool, technology for processing products, etc., and examples of design operations are the calculation of allowances, the solution of an equation, etc.

Structural unity of CAD subsystems is ensured by strict regulation of links between different types of support, united by a common target function for this subsystem. There are the following types of security:

methodological support - documents that reflect the composition, rules for the selection and operation of design automation tools;

· linguistic support - design languages, terminology;

mathematical software - methods, mathematical models, algorithms;

software - documents with program texts, programs on machine media and operational documents;

· technical support - devices of computer and organizational equipment, means of data transmission, measuring and other devices and their combinations;

· information support - documents containing a description of standard design procedures, standard design solutions, typical elements, components, materials and other data;

organizational support - regulations and instructions, orders, staffing and other documents regulating the organizational structure of units and their interaction with a set of design automation tools.

· 64 CALS technologies.

CALS-technologies serve as a means of integrating industrial automated systems into a single multifunctional system. The purpose of integration automated systems design and management is to increase the efficiency of the creation and use of complex technology.

In modern conditions of the formation of the global information society the role of information and information technologies in the preparation of a future specialist increases significantly. In the near future, the strategic potential of society will not be energy resources, but information and scientific knowledge. Information becomes the main resource for the scientific, technical and socio-economic development of society, significantly affects the accelerated development of science, technology and various industries, plays a significant role in the process of modernizing education. The value-semantic characteristic of education at a university and the professional activity of specialists should be expressed in the formation of an intellectual professional environment that most fully implements the tasks of research and design activities.

Widespread computerization of all types of human activities: from traditional intellectual tasks of a scientific nature to the automation of production, trade, commercial, banking and other activities serves to increase the efficiency of production. In a market economy, competition is successfully maintained only by enterprises that use modern information technologies in their activities.

It is information technology, along with progressive technologies of material production, that can significantly increase labor productivity and product quality and at the same time significantly reduce the time for launching new products that meet the needs and expectations of consumers. All of the above primarily applies to complex science-intensive products, including products for technical purposes.

The experience gained in the process of implementing a variety of autonomous information systems, made it possible to realize the need to integrate various information technologies into a single complex, based on the creation within an enterprise or group of enterprises (virtual enterprise) of an integrated information environment that supports all stages of the life cycle of products. Professional environment most fully reveals the opportunities for professional development, using new information technologies in science and in the field of production process management. Innovative technologies in the field of information processing industry with the introduction of CALS-(Continuous Acquisition and Life cycle Support) technology - continuous information support of the life cycle of the projected object, takes the automation of production process management to a new level.

The use of information technologies based on the CALS ideology is one of the factors contributing to a more efficient implementation of an automated enterprise management system.

CALS-technologies serve as a means of integrating industrial automated systems into a single multifunctional system. The purpose of integrating automated design and control systems is to increase the efficiency of creating and using complex equipment.

The essence of the CALS concept is the application of the principles and technologies of information support at all stages of the product life cycle, based on the use of an integrated information environment that provides uniform methods for managing processes and interacting with all participants in this cycle: product customers (including government agencies and departments), suppliers (manufacturers) ) products, operating and maintenance personnel. These principles and technologies are implemented in accordance with the requirements of international standards governing the rules of management and interaction, mainly through electronic data interchange.

When using CALS-technology, the quality of products is improved due to a more complete consideration of available information in the design and management decisions, as well as material and time costs for designing and manufacturing products are reduced. In the process of implementing this technology, the validity of decisions made in an automated enterprise management system (ACS) will be higher if the decision maker and the corresponding control programs have online access not only to the APCS database, but also to databases of other automated systems and , therefore, can optimize work plans, the content of applications, the distribution of performers, the allocation of finance, etc. At the same time, online access should be understood not only as the possibility of reading data from the database, but also as the ease of their correct interpretation, i.e. consistency in syntax and semantics with the protocols adopted in the APCS. Technological subsystems must accurately perceive and correctly interpret data coming from computer-aided design subsystems. This is not so easy to achieve if the main enterprise and related organizations work with different automated systems. In addition, the problem of protecting information along the entire perimeter of the operation of technological subsystems becomes relevant.

The use of CALS technologies can significantly reduce the amount of design work, since descriptions of previously completed successful developments of components and devices, many components of equipment, machines and systems designed earlier are stored in databases of network servers available to any user of CALS technology. Availability and protection are again ensured by the consistency of formats, methods, guidelines in different parts of the overall integrated system. In addition, there are more opportunities for specialization of enterprises, up to the creation of virtual enterprises, which also helps to reduce costs.

In the process of implementing CALS technology, operating costs are significantly reduced due to the implementation of integrated logistics support functions. The solution of problems of maintainability, integration of products into various systems and environments, adaptation to changing operating conditions, etc. is greatly facilitated. These data integration benefits are achieved by using modern CALS technologies.

Industrial automated systems can work autonomously, and at present the organization of the production management process takes place on this basis. However, the efficiency of automation will be noticeably higher if the data generated in one of the systems is available in other systems, since the decisions made in them will become more informed.

The experience of implementing CALS technology shows that in order to achieve the proper level of interaction between industrial automated systems, it is necessary to create a single information space within both individual enterprises and, more importantly, within the framework of an association of enterprises. United information space It is ensured due to the unification of both the form and the content of information about specific products at various stages of their life cycle.

The unification of the form is achieved by using standard formats and languages ​​for representing information in interprogram exchanges and in documentation.

Content unification, understood as an unambiguous correct interpretation of data about a particular product at all stages of its life cycle, is ensured by the development of ontologies (meta descriptions) of applications fixed in CALS application protocols.

MINISTRY OF AGRICULTURE OF THE RUSSIAN FEDERATION

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

Department of Information Support

and modeling of agro-economic systems

Test

By discipline

"Economic informatics"

Completed: student EPs-1

correspondence department

Mamychev D.A.

Code UEeko-15126

Checked:_________________

Voronezh 2016

1. Tool software. Translators and their types. Programming systems.

2. Processing packages graphic information.

3. Global computer internet network: basic concepts.

4. List of references.

Tool software. Translators and their types. Programming systems.

Tools - programs that allow you to modify multimedia files and create multimedia applications.

Tools are software packages for creating multimedia applications:

− editors of still graphic images,

− tools for creating animated GIFs,

− means of audio and video editing,

− means of creating presentations,



− means of recognition of texts entered from the scanner,

− means of creating training programs,

− application creation systems virtual reality and others.

Tools significantly expand the control of multimedia devices in comparison with those that provide system tools, but these are always paid products and some of them are very expensive, such as professional video editing systems.

Translators and their types.

Since the text written in a programming language is incomprehensible to a computer, it is required to translate it into machine code. Such a translation of a program from a programming language into a machine code language is called translation, and it is performed by special programs - translators.

Translator - a utility program that converts the source program provided in the input programming language into work program presented in an object language.

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

Assembler is a system utility that converts symbolic constructs into machine language instructions. A specific feature of assemblers is that they literally translate one symbolic instruction into one machine instruction. Thus, assembly language (also called autocode) is designed to facilitate the perception of the computer's instruction set and speed up programming in this instruction set. Much easier for a programmer to remember mnemonic notation machine instructions than their binary code. At the same time, the assembly language, in addition to analogues of machine instructions, contains many additional directives that facilitate, in particular, the management of computer resources, writing repetitive fragments, and building multimodule programs. Therefore, the expressiveness of the language is much richer than just a symbolic encoding language, which greatly increases the efficiency of programming.

A compiler is a utility program that translates into machine language a program written in a source programming language. Just like an assembler, a compiler converts a program from one language to another (most often, to the language of a particular computer). However, the teams source language significantly differ in organization and power from machine language commands. There are languages ​​in which one instruction of the source language is translated into 7-10 machine instructions. However, there are also languages ​​in which each instruction can correspond to 100 or more machine instructions (for example, Prolog). In addition, in source languages, strict data typing is often used, which is carried out through their preliminary description. Programming may not rely on coding an algorithm, but on careful thought about data structures or classes. The process of translating from such languages ​​is usually called compilation, and source languages ​​are usually referred to as high-level programming languages ​​(or high-level languages). The abstraction of a programming language from the computer's command system has led to the independent creation of a wide variety of solution-oriented languages. specific tasks. Languages ​​appeared for scientific calculations, economic calculations, access to databases, and others.

An interpreter is a program or device that performs operator-by-operator translation and execution of the original program. Unlike a compiler, an interpreter does not produce a machine language program as output. Having recognized the source language command, it immediately executes it. Both compilers and interpreters use the same methods of parsing 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 lack of output machine code allows you not to "litter" 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, 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 programs written in machine code.

Any translator performs the following main tasks:

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

Generates an output program (often called an object program) in the language of machine instructions;

Allocates memory for the 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 a service to 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, linking and loading programs;

Macro assemblers (machine-oriented languages);

Machine program debuggers.

Programming systems typically include:

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

Program loader (Load), which allows you to select the desired text file of the program from the directory;

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

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

Debugger (Debug), executing service functions debugging and testing the program;

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

2. Packages for processing graphic information.

Software tools for creating and processing 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 movies;

3D animation packages used to create commercials, music videos and movies.

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 analog to digital form.

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

A bitmap 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.

The quality of a bitmap depends on the size of the image (number of pixels horizontally and vertically) and the number of colors that the pixels can take on. 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 pixel). As a result, files that store bitmap images have a large amount of information.

Raster images are very sensitive to scaling (enlargement or reduction). When a raster image is reduced, several adjacent pixels are converted into one, so the intelligibility of fine details of the image is lost. Zooming in increases the size of each dot and produces a stepped effect that can be seen with the naked eye.

Vector graphics. Vector graphic images are the optimal medium for storing high-precision graphic objects (drawings, diagrams, etc.), for which the preservation of clear and distinct contours is important. Computer-aided drawing and computer-aided design (CAD) systems, 3D graphics processing programs are based on vector graphics.

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

Dignity vector graphics is that the files that store vector graphics are relatively small. It is also important that vector graphics can be enlarged or reduced without loss of quality. This is possible because image scaling is performed using simple mathematical operations (multiplying the parameters of graphic primitives by the scaling factor).

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

A graphic 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 a bitwise image transfer method. They process sufficiently detailed scanned images. Performing retouching, changing colors, their shades and contrasts, rubbing and shading, changing the direction of shadows and contours. The length of bit files is large due to the large number of screen points processed, which allows for a large number of colors and detailed image editing. Image scanning can be done in black and white, grayscale and color. For raster graphic editors, it is necessary to choose the angle and type of raster (block, line, dot, etc.), resolution. For color images, adjust the brightness and contrast for each of the colors that make up the gamut of the graphic image. Finished drawings are stored in separate files and may be available for use.

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

To create complex drawings with precise, complex and clear boundaries, a vector editor is mainly used, one of the main tools of which are Bezier curves, which allow you to draw curves (polygonal, straight and smooth) in segments with precise placement of anchor points and control over the shape each segment. A Bezier curve can be thought of as the result of progressive refinement of the shape of a polygon, built up by successively connecting control points that define the shape. The curve, going from the starting point of the polygon to its end point, is attracted, like a magnet, to intermediate, shape-determining reference points, through which it does not pass. Due to their special properties, ease of definition, and ability to manipulate, Bezier curves are widely used to model smooth lines in computer graphics. In the arsenal of tools that every vector graphics editor has, there are always "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 collection of computer networks that connect military, government, educational, commercial institutions, as well as individual citizens.

An Internet server (web server or http server) is a hardware and software 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 transfer to user computer information requested by client programs, in particular browsers.

There are different uses of the term server. Internet users call a server large web sites along with their content, web designers and programmers understand a server special programs to transfer data from the Internet to the user's computer, system administrators and professionals serving local networks, - the computers themselves on which such programs are installed.

A browser is an Internet client program that accesses a server, reads an HTML document, interprets the information received, and displays the content 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 - “area”) is a set of web pages linked by links and stored on a single server. A set of Web sites that are linked together and stored on different servers is called a Web portal.

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

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

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

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 establishments;

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

Name - individuals;

Info - not limited;

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

One step down in the DNS hierarchy are the 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).

The 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 the parent domain (for example, the conditional domain name.spb.ru). You can also meet the fourth, fifth, etc. domains. levels.

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

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

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

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

3) URL - a universal address that is used to denote the name of each object of storage 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 online. As a rule, the hosting service includes providing space for mail correspondence, databases, DNS, file storage, etc., as well as supporting the functioning of the corresponding services.

Electronic bulletin boards (BBS - Bulletin Board System) create specialized network services, whose activities are devoted to a particular topic. BBS usually contains files with information of interest to certain groups of users, as well as tools that allow users of the bulletin board to exchange information on issues of interest to them. Maintenance is carried out through the BBS: users send questions, and the staff answers them.

Web communities are financially supported by various companies and are sites whose members exchange views on issues of interest to them on the basis of a common interest.

E-mail (from the English. E-mail, email, short for electronic mail) - a method of transmitting information in computer networks, widely used on the Internet. Main Feature Email is that the information is not sent directly to the recipient, 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, access to mailbox a password is required. Access to mail server can be provided both through special mail programs ( Microsoft Outlook, The Bat etc.), and through the web-interface.

ICQ (an acronym for 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 chat, transfer files, etc. The program works using the OSCAR protocol, which provides instant and offline text messages. The service is currently owned by the investment fund Mail.ru Group (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 a free, closed-source proprietary software that provides encrypted voice communication over the Internet between computers, as well as paid services to communicate with regular subscribers telephone network. Skype was created by Niklas Zennström and Janus Friis. The first release of the program and the website appeared in September 2003.

Table 1. Calculation of the firm's profit

No. p / p Indicators Year Total for the year
1 sq. 2 sq. 3 sq. 4 sq.
Trading income
Trading costs
Gross profit
Payroll expenses
Advertising expenses
Overheads
General costs
Operating profit
Specific gross profit 0,099010177 0,118613565 0,074808144 0,121404967 0,4138369

Table 2. Cost structure of the firm

Diagram 1. The cost structure of the firm

Bibliography:

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

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

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

To tool software include software development tools. These are programming systems that include the software tools necessary for the automatic construction of machine code. They are tools for professional programmers and allow you to develop programs in various programming languages.

The software development tools include the following programs:

  • assemblers - computer programs that convert a program in the form of source code in assembly language into machine instructions in the form of object code;
  • translators - programs that perform the translation of the program;
  • compilers - programs that translate the text of a program in a high-level language into an equivalent program in machine language;
  • interpreters - programs that analyze commands or program statements and immediately execute them;
  • linkers (linkers) - programs that perform linking - take one or more object modules as input and assemble an executable module from them;
  • source code preprocessors are computer programs that take input and produce input for another program, such as a compiler, for example;
  • debuggers - programs that are a development environment module or a separate application designed to find errors in the program;
  • specialized source code editors - programs necessary for creating and editing the source code of programs. A specialized source code editor can be a separate application or built into an integrated development environment, etc.

Languages ​​that represent algorithms as a sequence of readable (not binary-coded) instructions are called algorithmic languages. Algorithmic languages ​​are divided into machine-oriented, procedure-oriented and problem-oriented.

Machine-oriented languages ​​are low-level programming languages ​​- programming on them is the most laborious, but allows you to create optimal programs that take into account the functional and structural features of a particular computer as much as possible. Programs in these languages, other things being equal, will be shorter and faster. In addition, knowledge of the basics of programming in a machine-oriented language allows a specialist to understand in detail the architecture of a computer. Most commands of machine-oriented languages, when translated (translated) into a machine (binary) language, generate one machine command.

Procedure-oriented and domain-specific languages ​​are high-level languages ​​that use macros. A macro instruction during translation generates many machine instructions (for a procedurally oriented language, this ratio is on average "1 to tens of machine instructions", and for a domain-oriented language - "1 to hundreds of machine instructions". Procedurally oriented programming languages ​​are the most used (Basic, Visual Basic, Pascal , Borland Delphi, C, etc.) In this case, the programmer must describe the entire procedure for solving the problem, while domain-specific languages ​​(also called non-procedural) allow only formally identifying the problem and specifying the composition, representation structures, and formats of input and output information. for the task.

When executing program instructions, a computer needs to convert human-readable statements written in a programming language into a form that the computer understands. Tool software has special programs that translate (translate) the text of programs written in various programming languages ​​into machine codes, which are then executed by a computer. This kind of software is called compiler or interpreter. The text of a program written in a high-level programming language, before being converted into machine codes, is called source code (source code). The compiler (compiler) converts the source code into machine codes, called object code (object code) – a program in the output language of the translator. Before execution, the linkage editing process takes place, which consists in the fact that the modules of the output program are combined with other modules of the object code containing, for example, data. The resulting boot module is the commands directly executed by the computer. Some programming languages ​​do not contain a compiler, but an interpreter, which converts each individual expression of the source code into machine codes and immediately executes them. The interpreter is convenient at the stage of program debugging, as it provides a quick feedback when an error is found in source code. The basics of programming in the high-level language Visual Basic are outlined in Chap. 12 of this textbook.

To tool software also include some database management systems (DBMS). DBMS is a specialized set of programs designed to organize and maintain databases. Since database management systems are not a required component computing system, they are not classified as system software. And since individual DBMSs perform only a service function when other types of programs (web servers, application servers) are running, they cannot always be attributed to application software. For these reasons, they are often referred to as tool software.

The main functions of such DBMS:

  • data management in external memory(on disks);
  • data management in random access memory using disk cache;
  • fixing changes in special logs, backing up and restoring the database after failures;
  • support for database languages ​​(data definition language, data manipulation language).

The theoretical foundations of the DBMS are described above (Section 3.2), and the practical application is described in Chap. 10.

If you notice an error, select a piece of text and press Ctrl + Enter
SHARE: