The software tools are. Tool software. Program examples. Tasks and functions of the tool software

abstract

SOFTWARE - a set of programs of the information processing system and policy documents required for the operation of these programs (GOST 19781-90). Also - a set of programs, procedures and rules, as well as documentation related to the operation of the data processing system (ST ISO 2382/1-84).

INSTRUMENTAL SOFTWARE - software intended for use in the design, development and maintenance of programs. Usually this term is used to emphasize the difference between this class of software and application and system software. software.

A COMPILER is a compiler that converts a program written in a source language into an object module.

Interpreter - a program (sometimes hardware) that analyzes commands or program statements and immediately executes them.

OPERATING SYSTEM - a set of control and processing programs that, on the one hand, act as an interface between computing system devices and application programs, and on the other hand, are designed to control devices, manage computing processes, effectively distribute computing resources between computing processes and organize reliable computing. .

APPLIED PROGRAM - a program designed to perform certain user tasks and is designed for direct interaction with the user.

VISUALBASIC is a software development tool developed by Microsoft and includes a programming language and development environment.

VISUALBASICFORAPPLICATION - a slightly simplified implementation of the Visual Basic programming language built into the product line Microsoft Office(including Mac OS versions) as well as many other software packages such as AutoCAD, SolidWorks, CorelDRAW, WordPerfect, and ESRI ArcGIS.

The purpose of the work is to study the types and functions of software, in particular, instrumental.

Software classification:

Types of tool software:

1) Text editors

4) Compilers

5) Interpreters

6) Linkers

8) Assemblers

9) Debuggers

10) Profilers

11) Document Generators

To create a program in the selected programming language, you need to have the following components:

2. Compiler or interpreter. The source text is translated into an intermediate object code using a compiler program.

The result of the work: The software, its functions and types, in particular the instrumental software, its essence, tasks are considered. The third chapter discusses Microsoft Visual Basic as a software development tool and its dialect - Microsoft Visual Basic forApplication. AT term paper an algorithm for solving a financial and economic problem was implemented using the Pascal programming language.

Introduction

AT modern world more than one person who has tried the benefits of civilization cannot imagine his life without the use of computer technology. Its use occurs in any sphere of human activity: production, trade, education, entertainment and communication of people, their scientific and cultural activities. All this is due to the possibility of selecting computer equipment to solve any, even the most complex task.

However, the universality and specialization of computer technology is ensured by the use on the basis of almost any computer of a different set of software that provides solutions to any tasks.

We all see the vast variety of computer programs and the staggering pace of their growth and improvement, and only a small part of us represents the invisible side in their design, development and creation. However, this area of ​​computer technology is, in our opinion, the most important, since the future of computer technology will depend on its development.

And since the development of any computer program happens with the use of Tool software, then in our term paper we would like to dwell on it in detail, highlighting it from all software and revealing its essence and features.

For clarity, we will consider tool software (object of study) using the example of the VisualBasicforApplication software package (subject of study) used for programming in the Microsoft Office environment, the most common and popular office suite.

1. Software

1.1 Concept and essence of software

Software (SW) is an integral part of a computer system. It is a logical continuation of the technical means of any computer. The scope of a particular computer is determined by the software created for it. The computer itself does not have knowledge in any area of ​​application. All this knowledge is concentrated in programs running on computers that have a set of specific functionality and are designed to perform specific, in most cases, highly specialized functions, such as creating and processing graphic images or sound files.

Software currently consists of hundreds of thousands of programs that are designed to process a wide variety of information for a variety of purposes.

Software (SW) also includes the entire area of ​​activity in the design and development of software:

1) software design technology (for example, top-down design, structural and object-oriented design);

2) methods for testing programs;

3) methods for proving the correctness of programs;

4) analysis of the quality of the programs;

5) documentation of programs;

6) development and use of software tools that facilitate the software design process, and much more.

There are many different definitions of software. In general, software is a set of information processing system programs and program documents necessary for the operation of these programs (GOST 19781-90). Also - a set of programs, procedures and rules, as well as documentation related to the operation of the data processing system (ST ISO 2382/1-84).

Software is one of the types of computer system support, along with technical (hardware), mathematical, informational, linguistic, organizational and methodological support.

Computer slang often uses the word software from the English word software, which was first used in this sense in an article in the American Mathematical Monthly by Princeton University mathematician John W. Tukey in 1958.

Other definitions:

1) SOFTWARE is a set of programs that allow automated processing of information on a computer.

2) SOFTWARE (software of an electronic computer), a set of programs of a data processing system and program documents necessary for the implementation of programs on an electronic computer.

3) SOFTWARE - a set of programs for managing the process of computer operation, programming automation.

4) SOFTWARE - a set of computer programs that provide processing or transmission of data.

All definitions are similar and reflect the essence of the software - the organization of the interaction of the hardware (technical) part, in the form of various built-in nodes and peripheral devices, their control and coordination of the overall interaction of the computer system with each other and with the user.

1.2 Software Features

The above concepts of software determine the functions performed by software in the process of functioning of computer equipment. The list of these functions is very diverse, but conditionally they can be divided into the following five types:

1. Hardware-mechanical. They interface various computer components, ensure the transmission of a hardware signal from one component to another.

2. Machine-Logic. Process and interpret a set of electromagnetic pulses hardware into a logically conscious program code with a certain structure and properties.

3. Information and command. They check the compliance of the program code with the principles of the system and create logical structure information and implement it.

4. Interface. They provide processing and interpretation of the program code into a display format accessible to the user. Creates a favorable environment for interaction "Computer-Man, Man-Computer".

5. Applied. Carries out mathematical, logical, physical and other actions with a set of available data, in other words, processing the available information to solve certain problems.

This list is far from exhaustive, which indicates the diversity and ambiguity of the functions performed by the software.

1.3 Types of software

Depending on the functions provided by a certain computer component, it becomes necessary to create its own specialized software for it, which is the fundamental motive for creating software of various types shown in (Fig. 1):

a) Application programs that directly provide the performance of the work required by users;

b) system programs designed to control the operation of the computing system, perform various auxiliary functions, for example:

1) computer resource management;

2) creation of copies of used information;

3) checking the operability of computer devices;

4) issuance of reference information about the computer, etc.;

c) instrumental software systems, which facilitate the process of creating new programs for the computer.

System software ensures the functioning and maintenance of the computer, as well as automating the process of creating new programs. System software includes: OS and their user interface; tool software; maintenance systems.

The operating system is a mandatory part of special software that ensures the effective functioning of a personal computer in various modes, organizes the execution of programs and user interaction and external devices with computer.

The user interface (service programs) are software add-ons of the operating system (shells and environments) designed to simplify the user's communication with the operating system.

Programs that provide an interface retain the form of communication (dialogue) between the user and the operating system, but change the language of communication (usually the command language is converted to the menu language). Service systems can be conditionally divided into interface systems, shells of operating systems and utilities.

Interface systems are powerful service systems, most often of a graphical type, which improve not only the user interface, but also the program interface of operating systems, in particular, by implementing some additional procedures for dividing additional resources.

Shells of operating systems provide the user with a qualitatively new interface compared to that implemented by the operating system and make knowledge of the latter optional.

Utilities automate the execution of certain typical, frequently used procedures, the implementation of which would require the user to develop special programs. Many utilities have a developed interactive interface with the user and are close in terms of communication to shells.

Software tools (programming systems) - a mandatory part of the software, with the use of which programs are created. Tool software includes tools for writing programs (text editors); tools for converting programs into a form suitable for execution on a computer (assemblers, compilers, interpreters, loaders and linkers), tools for monitoring and debugging programs.

Text editors allow you to conveniently edit, form and combine the texts of programs, and some - and control the syntax of the created programs.

A program written in an algorithmic language must be converted into an object module written in machine language (in binary codes). Such a transformation is performed by translators (assembler - from the Assembler language and compilers - from high-level languages). For some algorithmic languages, interpreters are used that do not create an object module, but at each next execution of the program, translating each of its individual lines or statements into machine language. The object module is processed by the loader - linker, which converts it into an executable machine program.

Debugging tools allow you to trace programs (step-by-step execution with the issuance of information about the results of execution), check the syntax of the program and intermediate results at breakpoints, and modify the values ​​of variables at these points.

Technical and after-sales service are software tools for monitoring, diagnosing and restoring the health of a computer, disks, etc.

Application software provides a solution to user tasks. The key concept here is the package. application programs.

An application software package is a set of programs for solving a range of problems on a specific topic or subject. There are the following types of application packages:

1) general purpose- focused on automating a wide range of user tasks (word processors, spreadsheet editors, database management systems, graphics processors, publishing systems, design automation systems, etc.);

2) method-oriented - the implementation of various economic and mathematical methods for solving problems (mathematical programming, network planning and management, queuing theory, mathematical statistics, etc.);

3) problem-oriented - aimed at solving a specific task (problem) in a specific subject area (banking packages, accounting packages, financial management, legal reference systems, etc.).

Application software includes service software tools that serve to organize a convenient working environment for the user, as well as to perform auxiliary functions (information managers, translators, etc.).

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 software evolution. If earlier it was easy to list the main categories of software - operating systems, translators, application software packages, now the situation has changed radically. Software development has gone both in depth (new approaches to the construction of operating systems, programming languages, etc.) and in breadth (application programs have ceased to be applied and have acquired independent value). The balance between required software products and those available on the market is changing rapidly. Even classical software products, such as operating systems, are constantly evolving and endowed with intellectual functions, many of which previously belonged only to human intellectual capabilities.

2. Tool software

2.1 Essence and concept of instrumental software

Tool software (IPO) - software intended 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 well as in the use phase (for application programs), the system software also works in the development phase, but only in conjunction with the 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 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 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:

1) Borland Delphi - designed to solve almost any application programming problem.

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

3) Microsoft Visual Basic is a popular tool for creating Windows programs.

4) 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 instrumental software is to create any executable program by converting formally logical expressions into executable machine code, as well as its control and correction.

2.2 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. Text translation 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.

2.3 Types of tool software

Based on the tasks assigned to the instrumental software, we can distinguish a large number of various types of instrumental software:

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

Types of text editors.

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

Stream text editors are computer programs that are designed to automatically process input text data received from a text file in accordance with rules predefined by users. Most often, the rules are regular expressions, in a dialect specific to this particular text editor. An example of such a text editor is the Sed editor.

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 of 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 (ISD) 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 it also contains tools for integration with version control systems and a variety of tools to simplify the construction of a graphical user interface. Many modern development environments also include a class browser, an object inspector, and a class hierarchy diagram for use in object-oriented software development. Although there are development environments designed for several programming languages ​​- such as Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator or Microsoft Visual Studio, usually the development environment is 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.

SDK (from the English SoftwareDevelopmentKit) or "devkit" is a development kit 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 other 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 a more accurate 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) Program or technical means The that performs the 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. Input information for the compiler ( source) 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).

Compilation -

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-oriented language.

Types of compilers :

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

Broadcast and linking.

An important historical feature of the compiler, reflected in its name (eng. compile - put 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.

A 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 trying to execute a command (or line) with an error.

A compiler type interpreter is a system of a compiler that translates the program source code 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 the requirement for the correctness of the 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 have text format or be a bytecode that only this interpreter understands, it could be the machine code of some existing hardware platform. For example, 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-compute-print loop (read-eval-printloop, 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 the 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.

1) Greater 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.

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.

A linker (also a linker, linker) is a program that performs linking - it 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 this 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 the 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 a separate application designed to find errors in a 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 the .NET Framework version 1.0, 1.1, 2.0, 3.0, 3.5 (including ASP.NET applications), as well as for Windows 32-bit 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 is a powerful disassembler and low-level debugger for Windows and Linux operating systems.

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, according to a specially commented source code and, in some cases, 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.

Documenting comments.

A doc comment is a specially formatted comment on a program object for use by a specific documentation generator. The syntax of the constructs used in documentation comments depends on which documentation generator is used.

Documentation comments may contain information about the author of the code, describe the purpose of the program object, the meaning of input and output parameters - for a function/procedure, examples of use, possible exceptions, implementation features.

Documentation comments are usually formatted as multi-line C-style comments. In each case, the comment must come before the documented element. The first character in a comment (and at the beginning of comment lines) must be *. Blocks are separated by blank lines.

3. Visual Basic for Applications

software operating system

3.1 The essence of VisualBasic and its brief history

Microsoft Visual Basic (VB) is a software development tool developed by Microsoft and includes a programming language and development environment. The Visual Basic language inherited the spirit, style, and partly the syntax of its ancestor, the BASIC language, which has many dialects. At the same time, Visual Basic combines procedures and elements of object-oriented and component-oriented programming languages. The VB development environment includes tools for visually designing the user interface. (see table).

Visual Basic (key features)

Visual Basic is considered a good tool for rapid development of program prototypes, for developing database applications, and in general for the component-based way of creating programs running under the operating systems of the Microsoft Windows family.

In the process of evolution, Visual Basic has gone through a series of successive stages that have allowed it to become one of the most popular programming languages ​​today. So evolution VisualBasic went the following way:

1. May 1991 - Visual Basic 1.0 for Microsoft Windows released. The QBasic syntax was taken as the basis of the language, and the innovation, which then brought great popularity to the language, was the principle of communication between the language and the graphical interface.

2. September 1992 - Visual Basic 1.0 for DOS is released. It was not fully compatible with the Windows version of VB, as it was the next version of QuickBASIC and ran in screen text mode.

3. November 1992 - Visual Basic 2.0 released. The development environment became easier to use and worked faster.

4. summer 1993 - Visual Basic 3.0 was released in Standard and Professional editions. In addition, an engine for working with Access databases has been added to the package.

5. August 1995 - Visual Basic 4.0 - a version that could create both 32-bit and 16-bit Windows programs.

6. February 1997 - Visual Basic 5.0 - starting with this version, it became possible, along with conventional applications, to develop COM components.

7. In mid-1998, Visual Basic 6.0 was released. Since then, Microsoft has drastically changed its Basic language policy. Instead of developing Visual Basic, a completely new Visual Basic .NET language was created.

8. In 2005, a new version of Visual Basic was released, bundled with Visual Studio. She was pleased with the new interface and features. The language is based on Visual Basic.NET.

9. At the end of 2007 Microsoft released new version Visual Basic - Visual Basic 2008, which was also based on Visual Basic.NET.

Based on the functionality and specifics of the application, the following varieties of this program can be distinguished:

1. Classic Visual Basic (versions 5-6) This language is very strongly tied to its development environment and to the Windows operating system, being exclusively a tool for writing Windows applications

2. VisualBasicforApplications (VBA) This is a programming tool, almost no different from the classic Visual Basic, which is designed for writing macros and other applications for specific applications. Most popular due to its use in Microsoft package office. The widespread use of Visual Basic for Applications, coupled with an initial lack of attention to security issues, has led to widespread macro viruses.

3. VisualBasicScriptingEdition (VBScript) Scripting language, which is a somewhat truncated version of the regular Visual Basic. It is mainly used to automate the administration of Windows systems, as well as to create ASP pages and scripts for Internet Explorer.

3.2 VisualBasicforApplication interface, main functions and features

When creating VisualBasicforApplication, Microsoft set as its main task the creation of a toolkit that is accessible to users who are not professional programmers, but at the same time qualified enough to develop and design application programs and applications based on MicrosoftOffice. It was in solving this problem that the developers created VBA, endowing it with a number of unique features. One of the most valuable for the user is the ability to create and use non-standard (custom) dialog boxes in programs by adding a UserForm object to the project, as well as a convenient user interface.

The interface of the VisualBasicforApplication program consists of a complex of various windows and tabs used in the design of the application being created, the main of which are:

1) the Project window (Fig. 2), which displays the structure of the project being created.

2) the Program code window (Fig. 3), which displays the program code of the project being created and makes it possible to write a program the classic way using the built-in editor of code words, of which there are more than 16 thousand in VBA. Also, this window allows you to edit the code and check it for errors.

3) the Properties tab (Fig. 4), which displays the parameters set for the specified object and makes it possible to change the specified settings.

Moving between windows and tabs, the user can easily customize the created project.

Using user-created VBA forms, you can create custom dialog boxes to display data or receive values ​​from the user of the program in a way that best suits the needs of the program. For example, you can create a quiz, display a dialog box to display multiple choice questions, and allow the user to select one of the answer choices they think is correct.

Non-standard dialog boxes allow the program to interact with its user in the most complex way and provide a variety of input and output data.

A custom dialog box is created in VBA by adding a UserForm object to the project. This object is an empty dialog box; it has a title bar and a close button, but it lacks any other controls. A custom dialog box is created by adding controls to the UserForm object and is usually referred to simply as a form (Figure 5).

Each UserForm object has properties, methods, and events that it inherits from the UserForm object class.

Each UserForm object also contains a class module into which the user adds their own methods and properties, or writes event procedures for that form.

The ability to create your own interface independent of the application program environment, such as Excel, using screen forms is one of the most valuable features in VBA.

Screen forms are windows for various purposes and types created by the user for their application. They contain controls that allow the user to share information with the application.

VBA uses the generated form graphical design - with settings for the form's properties and controls - to obtain all the information needed to display the dialog box: the size of the dialog box, the controls in it, and so on. As a result, VBA allows you to display a dialog box form with a single statement.

To display a custom dialog box, use the Show method of the UserForm object. If the form is not currently loaded into memory, the Show method loads the form and displays it. If the form is already loaded, the Show method simply displays it.

Displaying a single dialog box to complete a task is usually not enough. It is almost always necessary to determine the state of the dialog box controls in order to find out what data or options the user has selected. For example, if a dialog box is used to ask the user which columns and rows the worksheet should be sorted by, you need to be able to find out what values ​​the user has entered after the dialog box closes and before the sorting operation actually starts.

In other cases, you may want to dynamically change the titles of buttons (or other controls) on a dialog box, dynamically update a label or field associated with a spinner, or dynamically validate data entered into a dialog box.

In VBA, it is possible to significantly expand the set of functions built into a standard application, such as Microsoft Excel, as well as create functions whose values ​​depend on certain conditions and events.

VBA allows you to program table functions. To create a separate worksheet for software module, there is an Insert Module tab from the Visual menu, a Module command from the Insert Macro menu. After that, a new worksheet "Modele1" will appear. In the program module, you need to describe the function in the VBA language. You can work in the program module window like in the window of a small text editor.

Functions are embedded using the Object Browser command from the View menu. Functions defined by the user are treated as independent objects in the program. VBA has a significant set of built-in functions, dividing them into types.

Visual Basic allows you to reserve variables, with or without a size, work with different data types, use constants, work with mathematical operators and functions, and use additional operators. The use of For Next, Do loop operators, objects of the "timer" type (invisible stopwatch in the program) is provided. The accuracy of setting the time in the program is 1 millisecond, or 1/1000 sec. A running timer is constantly running - i.e. the corresponding interrupt routine is executed after a specified time interval - until the user stops the timer or disables the program.

In VBA, you can set any property for a form, including title, size, frame type, background and character color, text font, and background image.

To summarize all the functions of the program, then Visual Basic forApplication allows you to:

1) work with controls

Advantages :

1. High speed of creating GUI applications for MS Windows.

2. Simple syntax that allows you to learn the language very quickly.

3. Ability to compile both into machine code and into P-code (at the choice of the programmer). In debug mode, the program is always (regardless of the choice) compiled to P-code, which allows you to pause the execution of the program, make significant changes to the source code, and then continue execution: a complete recompilation and restart of the program is not required.

4. Protection against errors associated with the use of pointers and memory access. This aspect makes Visual Basic applications more stable, but is also the subject of criticism.

5. Ability to use most WinAPI functions to expand the functionality of the application. This issue has been most fully explored by Dan Appleman, who wrote the book Visual Basic Programmer's Guide to the Win32 API.

Criticism :

1. Often criticized are such aspects of Visual Basic as the ability to disable the means of tracking declared variables, the possibility of implicit conversion of variables, the presence of the Variant data type. According to critics, this makes it possible to write extremely bad code. On the other hand, this can be seen as a plus, since VB does not impose "good style", but gives more freedom to the programmer.

2. Lack of pointers, low-level memory access, ASM inserts. Even though the Visual Basic paradigm allows the average VB programmer to do without all this, these things are also often criticized. And although, using undocumented features and certain tricks, all this can be implemented in VB (for example, using functions for obtaining VarPtr(), StrPtr() and ObjPtr() pointers); using these tricks is much more difficult than, for example, in C++.

However, it is worth noting that all the shortcomings of the language stem from its main advantage - the simplicity of developing a graphical interface. Therefore, many programmers use Visual Basic to develop the user interface, and the program functionality is implemented as dynamic link libraries (DLLs) written in another language (most often C++).

4. Practical part

4.1 Statement of the problem

Draw a block diagram and write a program in Pascal. Calculate the intrinsic value of securities. The intrinsic value of an asset is determined by the future income stream from that asset

pv is the current intrinsic value of the stock

c is the expected return from the asset in question

r is the rate of return expected by the investor for a return with an appropriate level of risk

n is the time factor (in months).

Perform market analysis and sort the result in ascending order of the received data.

4.2 Program text in Pascal

pv: array of real;

writeLn('Enter expected income from ',i,'th asset c:');

writeLn('Enter the rate of return expected by investor r:');

pv:=c/exp(ln(1+r)*i);

writeLn('current intrinsic value of the asset is', pv[i]:1:3);

writeLn('The intrinsic value of the asset is', s);

for j:=1 to 4 do

if pv[j] > pv then

writeLn('Asset value sorted in ascending order');

for i:=1 to 5 do

writeLn(pv[i]:1:3);

4.3 Test case

4.4The result of the program execution on the test case

Conclusion

So, summing up all of the above, it should be noted that tool software is one of the types of software, having its general tasks and functions.

However, being a highly specialized type of software, it has a certain set of unique properties and functions that provide a solution to its inherent tasks.

It should be noted the emerging trend towards simplifying the programming process and creating a certain subclass - semi-professional programming for applied purposes.

This is what will allow an experienced computer user, but not professional programmer, create some applications and small files executable in the Microsoft Office environment, used primarily for accounting and document management purposes in small companies.

It is for this purpose that Microsoft developed the VisualBasicforApplication software package, which makes it easier to program and makes it possible for users to do application programming, not programmers. This opportunity was implemented primarily by creating a section of the program - "Script Editor" and the ability to record and execute "Macros" as a separate type of graphically programmable modules. Implemented the ability to create applications with a graphical interface for MS Windows. Also, the advantage of this type of tool software is a simple syntax that allows you to quickly learn the language and use it for programming in all standard Microsoft Office applications.

Therefore, it is difficult to overestimate the importance of tooling in general, and VisualBasicforApplication in particular, although the shortcomings, as mentioned above, also take place. But these are not even the negative aspects of the product, but rather guidelines for further improvement of the tooling in the person of VisualBasicforApplication.

1. Real-time algorithmic languages ​​/ Ed. Yanga S./ 2004

2. PC Magazine Russian Edition №2 2008 Computer today.

3. Computer science. / Ed. Mogilev A.V., Pak N.I., Henner E.K. / - M .: ACADEMIA, 2000.

4. Computer science and Information Technology: Textbook / Ed. Romanova D.Yu. / LLC "Publishing House" Eksmo ", 2007.

5. The latest encyclopedia of the personal computer /Ed. Leontieva V. / Moscow, 1999. – 271 p.

6. New programming languages ​​and trends in their development / Ed. Ushkova V. / 2001

7. Pedagogy / Ed. Pidkasistogo P.I. / - M .: Pedagogical Society of Russia, 2000.

8. Programming for Microsoft Excel 2000 in 21 days. / Ed. Harisa M./ - M.: Williams, 2000.

9. Simonovich S. Informatics: a basic course. Proc. for universities. St. Petersburg, Peter, 2002

10. With Excel 2000 no problem. / Ed. Kowalski / - M .: Binom, 2000.

11. "Effective work in Windows 98" /Ed. Stinson K. / 2000. – 247 p.

12. Programming languages. kn.5 / Ed. Vaulina A.S. / 2003

13. Programming languages: development and implementation / Ed. Terrence P. / 2001

14. Electronic textbook on computer science. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

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.

Hosted at http://www.allbest.ru/

Exercise 1

Instrumental software, its purpose and composition

Task 2

The first stage - setting the task

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

Fourth stage - 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 the PC software is called the software configuration.

Software can be roughly divided into three categories:

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

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

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

System software

These general use programs are not related to a specific PC application and perform traditional functions: scheduling and managing tasks, managing I/O, etc.

In other words, system programs perform various auxiliary functions, for example, creating copies of the information used, issuing help information about the computer, checking the operability 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, such as Norton Commander)

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

Drivers (programs designed to control the ports of peripheral devices are usually loaded in RAM when starting the computer)

utilities (helper or utility programs that present the user with a series of additional services)
Utilities include:

file managers or file managers

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

viewer and playback tools

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

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

computer security tools ( backup, anti-virus software).

It should be noted that some of the utilities are part of the operating system, while the other part functions autonomously. Most of the common (system) software is part of the OS. Part of the general software is included in the computer itself (part of the OS programs and control tests are recorded in ROM or PROM installed on system board). Some of the shared software is standalone software and is available separately.

Application software

Application programs can be used stand-alone 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 packages are a system of programs that, according to their scope, 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, graphics editor, telecommunications facilities.

Application software includes, for example:

MS OFFICE suite

Accounting systems

Financial analytical systems

Integrated office work packages

CAD - systems (computer-aided design systems)

HTML editors or Web editors

Browsers - Web Viewers

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

Task 2

Form and fill in the cumulative statement of accrual of payment for the rooms of the hotel "Start" for March 2004. Single hotel rooms cost 750 rubles for each client. per day, 2-seater - 650 rubles. from each client. The room can be booked. Booking at the hotel can be of two types: group and individual and is paid separately. When booking for a group, the payment for the first day of stay increases by 25% of the room rate, in cases where there is no reservation or it is individual, there is no surcharge.

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

Calculate the booking 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, the number of days of stay per month, the full payment for the hotel for the month. Determine the average number of days of stay, the value of the maximum and minimum payment for the days of stay.

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

The room number

Type of room occupied

armor type

Reservation payment (rub.)

Number of days of stay

1-seater

1-seater

1-seater

2-seater

2-seater

2-seater

2-seater

Total:

Build charts:

· Pie chart on the column "Number of days of residence".

· Histogram on the column "Payment for days of stay".

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

It is necessary to form and fill in the statement of accrual of payment for the rooms of the hotel "Start" for March 2004.

Consider the stages of preparing a solution to the problem on a PC.

The first stage - setting the task

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

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

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's designate the initial data:

OB - payment for the reservation;

TB - armor type;

SNCHD - room rate per person per day;

KDP - the number of days of residence;

ODP - payment for days of stay;

The booking fee is calculated as follows:

ABOUT \u003d 0.25 * SNP,

if TB = "group", otherwise 0.

Payment for days of stay is calculated as follows:

ODP \u003d ABOUT + SNCHD * KDP.

To solve this problem, we will use Microsoft Excel.

The third stage - algorithmization

Let's run Excel program. We will work on Sheet 1.

In the range of cells A1:G1, enter the name of the column. To give an aesthetic look to the header of the table of the name, we will place the graph 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 (on the selected area, click right click click), select Format Cells from the menu. In the dialog box that appears, select the Alignment tab, set the options: Horizontally - centered; Vertically - in the center; word wrap and press OK.

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

Table in formula form.

The room number

Type of room occupied

Room price per person per day (rub.)

armor type

Reservation payment (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 get the following results.

The room number

Type of room occupied

Room price per person per day (rub.)

armor type

Reservation payment (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

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

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

Below are pie chart in the column "Number of days of stay" and a histogram in the column "Payment for days of stay".

Fourth stage - programming

No programming is required for this task.

Fifth stage - debugging

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

Calculate control values ​​for room 31.

OB \u003d 0.25 * 750 \u003d 187.5, since TB \u003d "group".

ODP \u003d 187.5 + 750 * 4 \u003d 3187.5.

Calculate control values ​​for room 35.

OB = 0, since TB is not equal to "group".

ODP \u003d 650 * 1 \u003d 650.

These control values ​​match 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. Informatics course. - K .: Phoenix, 2008. - 368 p.

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

Hosted on Allbest.ru

Similar Documents

    System, applied and tool software. The most common application packages. Purpose and structure system programs. Filling in a table and working with totals 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 programming systems for personal computers. Software levels: basic, system, service. Classification of service software.

    abstract, added 04/01/2010

    Definition of the concept and essence of software. Consideration of the basics of interpreted and compiled programs. Features of proprietary, open source, free, system, application and tool programs; basic principles of their application.

    abstract, added 11/06/2014

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

    control work, added 01/18/2011

    The development of integrated application packages, mechanisms such as OLE and OpenDoc, ensuring their joint work. Analysis of the most well-known complexes consisting of application programs that work both independently and integrated.

    abstract, added 03/03/2012

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

    presentation, added 10/10/2016

    Goals and objectives of software engineering. The concept of software. Six principles for the effective use of software. Types of software: system-wide, network and applied. Principles of building software.

    term paper, added 06/29/2010

    Review and characteristics of computer software as a set of programs of the information processing system. Characteristics of hardware as a complex of electrical and mechanical devices that are part of the computer. Interaction of systems.

    presentation, added 12/23/2010

    Main types of software. Characteristics of application packages. Types and groups of number systems. Translation of integer 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, applied, office, for working on the Internet. Programming systems, software specifics, what are viruses.

Tool software - software intended for use in the design, development and maintenance of programs, as opposed to application and system software.

The instrumental level (translators and compilers of programming languages, programming systems) provides the creation of new programs for a personal computer.

Programming language- a formal sign system designed to describe algorithms in a form that is convenient for the performer (for example, a computer). A programming language defines a set of lexical, syntactic, and semantic rules used in compiling 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 exactly what actions should be performed on this data under various circumstances.

Programming languages ​​are divided into low-level and high-level languages.

Low level programming language- a programming language close to programming directly in machine codes.

As a rule, it uses the features of a particular family of processors. A well-known example of a low-level language is the language assembler.

High level programming language- a programming language designed for speed and ease of use by the programmer. The word “high-level” here means that the language is designed to solve abstract high-level problems and operates not with instructions for the equipment, but with logical concepts and data abstraction. This allows you to program complex tasks faster and provides relative independence from the hardware. The use of a variety of translators and interpreters ensures that programs written in high-level languages ​​can communicate with different operating systems and hardware, while their source code remains largely unchanged.

This kind of detachment of high-level languages ​​from the hardware implementation of a computer, in addition to many advantages, also has disadvantages. In particular, it does not allow the creation of simple and precise instructions for the equipment used. Programs written in high-level languages ​​are easier for the programmer to understand, but much less efficient than their counterparts written in low-level languages. One of the consequences of this was the addition of support for one or another low-level language (assembly language) to most modern professional high-level programming languages.

The most common languages ​​of this type are C++, Visual Basic, Java, Python, ruby, Perl, Delphi, PHP.


Programming languages ​​can also be divided into compiled and interpreted.

Compiled language program using a special program compiler is converted (compiled) into a set of instructions for of this type processor (machine code) and then written into an executable file that can be run as a separate program. In other words, the compiler translates the program from a high-level language into a low-level language that the processor understands.

If the program is written in an interpreted language, then interpreter directly performs (interprets) its text without prior translation. The program remains in its original language and cannot be run without an interpreter. We can say that the computer processor is an interpreter of machine code.

In short, compiler translates the program into machine language immediately and entirely, while creating a separate program, and interpreter translates into machine language directly during program execution.

The division into compiled and interpreted languages ​​is somewhat arbitrary. Thus, for any traditionally compiled language, such as Pascal, you can write an interpreter. In addition, most modern "pure" interpreters do not execute language constructs directly, but compile them into some high-level intermediate representation (for example, with variable dereference and macro expansion).

For any interpreted language, you can create a compiler - for example, the language Lisp, originally interpreted, can be compiled without any restrictions. Code generated at runtime can also be dynamically compiled at runtime.

As a rule, compiled programs run faster and do not require additional programs, since they have already been translated into machine language. At the same time, every change in the text of the program requires its recompilation, which creates difficulties in development. In addition, a compiled program can only run on the same type of computer, and usually under the same operating system, for which the compiler was designed. To create an executable for a different type of machine, a new compilation is required.

Interpreted languages ​​have some specific additional features, and programs in them can be run immediately after modification, which makes development easier. An interpreted language program can often be run on many different types of machines and operating systems without additional effort. However, interpreted programs run noticeably slower than compiled programs, and they cannot run without an additional interpreter program.

Some languages, for example, Java and C#, are between compiled and interpreted. Namely, the program is compiled not into machine language, but into low-level machine-independent code, bytecode. Next, the bytecode is executed virtual machine. To execute the bytecode, interpretation is usually used, although some of its parts can be translated into machine code directly during program execution using the on-the-fly compilation technology to speed up the program ( Just-in-time compilation). For Java bytecode is executed by the virtual machine Java (Java Virtual Machine), for C# - Common Language Runtime.

Classes of programming languages. Conventionally, programming languages ​​can be divided into the following classes (Fig. 2.).

AT functional programming languages functions are the main building blocks. Program texts in functional programming languages ​​describe “how to solve a problem”, but do not prescribe a sequence of actions for solving.

The following are usually considered as the main properties of functional programming languages:

brevity and simplicity;

strong typing;

modularity;

· functions - calculation objects;

purity (no side effects);

deferred (lazy) evaluation.


Rice. 2. Classes of programming languages

Examples of functional programming languages: Lisp, Haskell, Clean, ML, etc.

procedural programming is a programming paradigm based on the concept procedure call. Procedures, also known as subroutines, methods, or functions (these are not mathematical functions, but functions like those used in functional programming). Procedures simply contain a sequence of steps to perform. During program execution, any procedure can be called from anywhere, including the procedure itself.

Examples of procedural programming languages: Ada, BASIC, C, C++, Pascal, Visual Basic, Dilphi, etc.

Interface description language or IDL(English) Interface Description Language) is a purely descriptive computer language that is syntactically similar to C++.

Examples of interface description languages: CORBA IDL (developed omg for describing interfaces of distributed objects - names of methods and types of variable arguments), COM IDL (similar to Microsoft's CORBA IDL, created to describe interfaces between COM modules).

Object-oriented programming language(OO language) - a language that favors object-oriented programming. In modern OO languages, methods are used:

Inheritance. Creation of a new class of objects by adding new elements (methods). Currently, OO languages ​​allow multiple inheritance, i.e. combine the capabilities of several other classes in one class.

Encapsulation. Data hiding, which (when properly implemented) allows you to make changes to parts of the program painlessly for other parts of it. This greatly simplifies maintenance and software upgrades.

Polymorphism. During inheritance, some parts (methods) of the parent class are replaced by new ones that implement actions specific to this child. Thus, the class interface remains the same, but the implementation of methods with the same name and set of parameters is different.

Typing. Allows you to eliminate many errors at the time of compilation, operations are performed only on objects of the appropriate type.

Examples of OO programming languages: C++, Delphi (Object Pascal), C#, Java, etc.

Logic programming- a programming paradigm, as well as a section of discrete mathematics that studies the methods and capabilities of this paradigm, based on the derivation of new facts from these facts according to given logical rules. Logic programming is based on the theory of mathematical logic. The most famous logic programming language is Prologue, which is in its essence a universal inference machine that operates under the assumption that the world of facts is closed.

Script language(English) scripting language, also called scripting language) is a programming language designed to write "scripts", sequences of operations that a user can perform on a computer. Simple scripting languages ​​used to be often called batch processing languages (batch languages). Scripts are always interpreted, not compiled.

In the application program scenario (script) is a program that automates some task that, without a script, the user would do manually using the program's interface.

Examples of scripting programming languages: VBA (Visual Basic Application), AutoLISP, 3DMAX Script, JCL, JavaScript, etc.

At present, widespread use computer systems with cluster and GRID architectures set the task of creating high-level, powerful and easy-to-use programming languages ​​that would allow you to create complex, but at the same time fast apps, effectively using parallel computing. One such language is currently MC# (a high-level object-oriented programming language for the .NET platform that supports the creation of programs that work in a distributed environment with asynchronous calls).

Questions for self-examination:

1. Software.

2. Basic level.

3. Software system level.

4. Service level of the software.

5. Application level of software.

6. What are called device drivers?

7. What are called utilities?

8. Define a programming language.

9. What is an interpreter?

10. What is a compiler?

11. Give examples of low-level and high-level programming languages, what is their difference?

12. What classes of programming languages ​​can be distinguished? Give examples for each class.

13. Name the main properties of functional programming languages

14. Name what methods are used in modern object-oriented programming languages.

15. What is a script (script)?

An instrumental system is a software system (it is better to talk about a software environment where we include the user, since it is the user, his knowledge, skills, and abilities that make this system less or more effective) for the accelerated and low-resource development of some other programs (or processing data), both systemic or applied, as well as new instrumental ones.

Example. Let's consider a tool environment - a graphic editor that allows you to visualize graphic objects in two main ways: vector or raster. The vector approach dynamically gradually forms on the screen (which is considered as some coordinate space) an object according to its representation, composed of graphic primitives. The raster approach forms the entire object on the screen based on its layout (template, graphic primitives in video memory), which consists of individual clusters of pixels in some two-dimensional pixel matrix (analogous to a drawing sheet with a Cartesian coordinate system). This matrix contains information about the brightness and color of the image cluster (sometimes 1-2 bytes or more per pixel), and the matrix itself can have a dimension of 1024x1024 pixels or more. The image formed in the pixel matrix is ​​stored in the video memory of the display and displayed on the screen in the frame regeneration mode. An image in color (painting in color) is a manipulation of the pixels of this matrix. Graphical 3D image editors allow not only to design 3D objects, but also to move them along a given path, that is, to perform animation. One powerful graphical environment is Autodesk's 3D-Studio Max. In addition to this package, graphic packages are widely used:

GRAFLotus Freelance - for working with business and computer graphics;

Splash and Fanta - for work in the field of design and computer films;

AutoCAD - for automation of design work;

CorelDraw, PaintBrush, AdobeIllustrator - for a variety of applications.

Translators are discussed in detail below.

Consider interface systems for providing a friendly interface between users and programs).

Example. The earliest interface system is Norton Commander (Norton Commander by Peter Norton). Systems like Norton Commander (NC) are called operating shells and can be classified as tool environments (tools for a more convenient, comfortable interface with the OS, with file system, bypassing the tedious command language of the OS). Such a system allows you to visually and conveniently copy, create, delete, rename, move, view and search for files, etc. NC uses control and function keys, which correspond to certain operations and system responses:

Esc – cancellation of the executed function;

Enter – function execution;

Tab - change the current (active) panel to another (previously passive);

PgUp (PgDn) - go to the page forward (back);

Home (End) - set to the beginning (end) of the directory;

, , , – keys to move the cursor left, up, right, down;

Ctrl-S (simultaneous pressing of the Ctrl and S keys) - one character to the left;

Ctr-D (Ctr-A, Сtrl-F) – one character to the right (one word to the left, one word to the right);

F1 – help key, active state hints (help key);

F2 - writing the active file to the disk;

F3 - view the contents of the active file;

F4 - editing the active file;

F5 - copy the active file to the active directory on another panel;

F6 - rename (transfer) the active file;

F7 - create a new directory (subdirectory);

F8 - delete active file;

F9 - activation of panel commands (system menu) NC;

F10 - exit from NC.

A more developed domestic analogue of NC for Windows systems is, for example, the FAR manager shell.

Problem-oriented instrumental systems serve to solve a fairly wide class of tasks of some professional, problem-oriented orientation: CAD - design automation systems, automated control systems - automated control systems, workstations - automated workstations, DBMS - a system that provides an interface for user programs and data from a database, ES - expert systems, systems of accumulation, storage and updating of experience, knowledge, skills, skills (expert judgments) of experts, etc.

Standalone programs are those programs that are developed in huge numbers every day and used for various applied purposes (teaching, computing, modeling, etc.).

Program libraries - a set of programs for solving problems of a certain direction (for example, solving systems of algebraic equations), with a description, catalog, instructions and placed on external media in such a way as to be able to easily connect to the problem being solved (to the program being executed) in the course of its solution .

The application software package (APP) consists of the following mandatory parts:

description, presentation of the class of tasks solved with the help of PPP;

a set of programs that provide the construction of application programs for PPP (technological chain);

a set of applied programs that provide solving problems from the subject area of ​​the PPP;

input language (query language) PPP;

database for storing data, transferring them to PPP modules;

monitor (control program) PPP, which provides input of a task (request), its decoding and construction of a technological chain from PPP modules to search for an answer.

Example. A simple and versatile statistical data analysis package for students is the SPSS package. The user interface with SPSS for Windows is implemented using simple menus and dialog boxes, meaning SPSS is free from the use of a specially-learned package command language. There is a Data Editor for visual control of the entered data, functionally similar to spreadsheet editors, for example, Excel. Variable variables are displayed in columns, and sets of their variations are displayed in rows, and each of the variables can be found by calling its name. Data entry - similar to tabular data entry (for example, in Excel). AT dialog boxes you can define (enter or calculate) complex expressions used later in calculations. It is possible to apply various laws of random distribution. More powerful (but also more difficult to learn and use) is the MathCAD math package.

The functional system of an integrated software package does not consist of modules (as in PPP), but of PPP.

Example. The most common integrated application software package is MS Office (office automation package). Its core includes the following packages: Word - text editor, Excel - spreadsheet, Access - DBMS, PowerPoint - presentation system, etc.

Special (or unique) software is developed to solve very important, unique problems.

Example. This class of software includes the software control system for the Buran spacecraft.

Even with hundreds of thousands of PC programs available, users may need something that existing programs don't (or do, but don't). In these cases, tool software is used to create new programs, allowing the development of both system and application software. Consequently, it plays the role of means of production in programming.

Programming systems- these are complexes of programs and other tools intended for the development and operation of programs in a specific programming language for a specific PC architecture (platform).

The programming system usually includes text editor programs, translator programs, libraries routines and link editors, debuggers, help systems, and sometimes various auxiliary programs.

Programming language is an artificial language with the help of which an algorithm for solving a problem is written in a form understandable by a PC.

There are many programming languages, and each can have dozens of versions. Each programmer writes programs in the language that is convenient for him, and there is no programming language that is considered generally accepted.

But all programming languages ​​have one thing in common. They are understandable to programmers, but incomprehensible to the processor, since the processor can only work with binary numbers and therefore understands programs written only in machine code. Therefore, programs written in any programming language are first "translated" into the language of the processor, i.e. converted into machine code. This translation is performed by special translation programs. In English, "translation" is called broadcast (translation), so programs that translate programs into machine code are called translators.

At the stage broadcasts there is a transformation source code programs in object Code, which is further processed link editor. The link editor is a special program that provides the construction of boot module, suitable for execution (Fig. 6.2).

Rice. 6.2. Scheme of the process of creating a load module of the program

There are the following types of translators: interpreter, compiler.

Interpreter takes the next language operator from the program text, analyzes its structure and immediately executes it. Then it moves on to the next operator. Compiler translates the entire program into machine instructions.

Of the universal programming languages ​​today, the following are the most popular: BASIC (Basic), Pascal (Pascal), C ++ (C ++), Java (Java).

For each of these programming languages, today there are many programming systems produced by various companies and focused on various PC models and operating systems. The following visual environments for rapid program design for Windows are the most popular: Microsoft Visual Basic; Borland Delphi; Borland C++Builder Microsoft Visual Studio (Visual Basic.net, C++, C#, J#).

Modern programming systems allow you to create programs that are called when viewing Web pages on the global electronic network Internet.

A special class of programming systems are systems for creating client-server applications. These systems allow you to quickly create Information Systems for divisions and even large enterprises. They contain tools for creating a user interface, descriptions of data processing procedures, preparations for performing typical data processing actions, etc. These systems, as a rule, allow you to work with a variety of DBMS - Oracle, Sybase, Microsoft SQL Server, etc. Among the most popular systems of this kind are PowerBuilder from Sybase, Delphi from Borland, Visual Basic from Microsoft. Of course, tools for creating client-server applications are also included in the client-server DBMS (Oracle, Sybase, etc.), but they are focused only on this DBMS.