Modern systems of computer mathematics. Computer Algebra Systems: Shine, Poverty, or Why Many Problems Cannot Be Solved Head-on
The first stage - the computer, justifying its name (translated from English. "computer"), worked as a powerful programmable calculator, capable of quickly and automatically (according to a given program) to perform complex and cumbersome arithmetic and logical operations on numbers.
Advances in computational mathematics and constantly improving numerical methods make it possible to solve any mathematical problem in this way in relation to any branch of knowledge. It is important to note that the result of the calculations in this case is represented by one finite number in arithmetic form, that is, using decimal digits. Sometimes the result is represented by a set (array, matrix) of such numbers, but the essence of the representation does not change from this - the result is in the form of a finite decimal arithmetic number.
However, such a result often did not satisfy professional mathematicians, and here is why. The vast majority of the results of non-trivial mathematical calculations in classical mathematics are traditionally written in symbolic form: using special well-known numbers: , , , and irrational values - using a radical. It is believed that otherwise there is a fundamental loss of accuracy.
Another classic example, which causes a remark by a mathematician - an expression familiar to any student:
always equal to one; and the computer will either attempt to evaluate this expression (with the inevitable rounding errors), or a message will be issued about the uncertainty of the argument X and all further actions will be stopped.
This completes the first step...
Naturally, following the rapid improvement of computer systems, a person in computer calculations wanted more: why not make the computer perform transformations in the traditional ways for mathematics (fractional-rational transformations, substitutions, simplifications, solving equations, differentiation etc.).
They are usually called transformations in symbolic form or analytical transformations, and the result is obtained not as before - in the form of a single number, but in the form of a formula.
By this time, almost all areas of human activity were covered by each with its own mathematical apparatus and acquired their own application packages. software(PPO). At the same time, everyone needed a universal mathematical tool aimed at a wide range of users who are neither professionals in mathematics nor programmers brought up in highly specialized computer languages that are incomprehensible to most end users.
This led to the creation of computer systems of symbolic mathematics, designed for a wide range of users - non-professionals in mathematics. This is how the era of systems began in the mid-1960s. computer mathematics(SCM), in English CAS - Сomputer algebra system.
At the end of the 60s in Russia, on domestic computers of the Mir series, developed under the guidance of Academician V. Glushkov, SCM was implemented in the Analyst programming language, which has all the capabilities of symbolic calculations, however, with very modest, according to current concepts, characteristics.
Of course, even the simplest non-intelligent computer mathematical reference books are of great practical interest - after all, not a single most capable person is able to fit in his head all the mathematical laws and rules created over the centuries-old history of mankind.
Data on the features of existing SCM are given in Table. 12.1.
System | Purpose and opportunities | Flaws |
---|---|---|
Mathcad 13, Mathcad 14 | General purpose system mainly for non-professional mathematicians and educational purposes at all levels. A well-thought-out interface for presenting data in a traditional mathematical form and amazing graphics at all stages of work, including input. Input via selection from toolbars or from menus with little to no use of the keyboard. Powerful and comprehensive set of operators and functions. Many examples, e-books and libraries, ready-made solutions to practical problems. Symbolic calculation core imported from SCM Maple. Provision of professional package server services. Ease of transferring the document to other applications | Rather primitive programming tools. The high cost of e-books and libraries, the lack of Russified versions of the package itself and additional libraries (books). Difficulty character processing differential equations. The final executable *.exe file is not created; To run the document, you must have the SCM Mathcad package. Difficulties when performing trigonometric transformations |
Maple V R4/R5/R6 | University higher education and scientific calculations. Powerful symbolic calculation core - features similar to SCM Mathcad, containing up to 3000 functions. Powerful graphics. Convenient help system. Document Formatters | Increased requirements for hardware resources. Lack of sound synthesis. Targeting experienced users and mathematicians. All the shortcomings of analytical actions are similar to SCM Mathcad |
Mathematica 5/7 | Higher education and scientific calculations. The most developed system of symbolic mathematics. The only SCM that provides symbolic solution of differential equations. Compatibility with different computer platforms. Unique 3D graphics. Sound synthesis support. Advanced document formatting tools. Software synthesis of sounds. | High requirements for hardware resources. Excessive copy protection. Weak protection against incorrect tasks. Focus on experienced users. Enter tasks in a unique functional programming language. Unusual indication of calculation start functions. |
MATLAB 7.* | Education (including technical), scientific calculations, numerical modeling, and calculations oriented to the application of matrix methods, while the scalar is considered as a 1x1 matrix. Unique matrix tools, an abundance of numerical methods, descriptive (descriptor) graphics, high computational speed, ease of adaptation to user tasks thanks to a variety of system extension packages. Advanced programming language with object-oriented programming (OOP) capabilities, compatibility with Java algorithmic language | Highly high requirements to hardware resources. There is practically no possibility of symbolic calculations. Relatively high cost. Enter tasks in a unique programming language |
Let's consider the internal architecture of SCM on the example of the most powerful, according to a number of authoritative experts, SCM Mathematica, which has the most developed system of symbolic mathematics. Figure 12.1 shows its software architecture.
Rice. 12.1.
The central part - the core ( Kernel ) of the SCM system implements functioning algorithm SCM ensures the joint functioning of all its parts, organizes the reception and intellectual processing of the user's request, and then the call of the required decision procedure. In the core is placed a large number of built-in functions and system operators. Their number in modern SCM can reach many thousands. For example, the core of Mathematica 4 contains data from more than 5000 integrals alone, although only a few built-in functions are used for integration.
Finding and executing functions and procedures built into the SCM core is fast if there are not too many of them. Therefore, the volume of the kernel is limited, but libraries of procedures and functions built into the SCM that are used relatively rarely are added to it. At the same time, the total number of available to the user mathematical functions kernel and these built-in libraries reaches many thousands.
Cardinal expansion of SCM capabilities and their adaptation to the needs of specific users for in-depth solution of a certain range of problems (for example, problems of theoretical and applied statistics, vector analysis) is achieved by installing external expansion packages. These packages, purchased separately, make the possibilities of SCM almost limitless.
All these libraries, extension packages and reference system modern SCM (let's call them SCM tools) contain not only and not just knowledge in the field of mathematics, accumulated over many centuries of its development (this will not surprise anyone: these are the capabilities that are characteristic of the widespread class of IEP - information retrieval systems). But it is amazing that these tools surprisingly automatically and creatively use such knowledge to solve problems where you need to choose and be able to apply one, the only one of many dozens, non-obvious solution method. For example, SCM can instantly find indefinite integral or immediately report the impossibility of representing it by elementary functions - a difficult task, even for a professional mathematician. No less impressive is the fact that if, after obtaining the desired formula, go to the beginning of the document and set the parameters included in this formula to specific numerical values, its numerical result will be instantly obtained. Any SCM includes a set of editors (in Fig. 12.1 they are called editors by direction): text, formula, graphic editors, network support tools and HTML (XML) tools, animation packages and audio tools.
Thanks to all these capabilities, SCM can be classified as software products of the highest level today - intellectual. Such programs are currently grouped under the term "knowledge bases". Modern SCM, according to recognized authorities [ , ], provides an inexperienced user with the opportunity of a graduate of a mathematical university in the fields of numerical calculation methods, mathematical analysis, matrix theory and other general sections higher mathematics to obtain constructive results.
Of course, in abstract areas of mathematics, such as functional analysis or questions of "existence and uniqueness..." SCM can hardly be useful so far (except for providing the necessary information, which is quite a lot), but in applied problems, for which SCM and were created, such branches of mathematics are usually not involved.
12.2. Integrated Environment SCM MathCad
MathCad SCM Integrated Environment is a general-purpose SCM system and is most suitable for solving a wide range, or rather, almost any mathematical problems, mainly by non-professional mathematicians, as well as for effective use in all areas of education.
To this day, they remain the only mathematical systems in which the description of the solution of mathematical problems is given using familiar mathematical formulas and familiar symbols. The results of calculations have the same form. SCM MathCad is not very suitable for serious professional scientific activities of mathematicians, it is more intended for solving not too sophisticated mathematical problems, performing technical calculations of any complexity, and most importantly, it has no competitors in the field of education. Due to its high performance, SCM MathCad fully justifies the term "CAD" in its name (Computer Aided Design), confirming that it belongs to the class of the most complex and advanced automatic design systems - CAD. The MathCad system is a typical integrated system, that is, it combines several separate software tools to solve a certain circle independent tasks.. Initially, it was intended for purely numerical calculations and oriented under MS-DOS, but, starting from version 3.0 (1990), it works under Windows and has a fairly wide range of tools for symbolic and graphical calculations.
All actions in SCM MathCad are immediately executed in the form of a document consisting of worksheets on which a description of the algorithm, working formulas, comments, illustrations, graphs, tables are placed. The form of such a document is maximally adapted for printing, transmission by Internet networks and does not require additional editing. On the other hand, this document, which has the .mcd extension, contains the entire calculation program in a hidden form. It can be imported both for publishing purposes and for the continuation and improvement of software calculations. The entire document or parts of it can be locked for editing by setting a password.
Figure 12.2 shows the architecture of the SCM MathCad. The central block is two cores: the core of SCM itself and the core of symbolic calculations, similar to SCM Maple, purchased from the developer - Waterloo Maple.
Embedded in the MathCad environment electronic books(e-Books) contain examples, references and typical calculations from various fields of science, technology, and economics. Any fragment from these books can be copied to the worksheet of the document and executed.
Libraries and extension packages focused on solving various applied problems are supplied and installed by the developer separately.
The powerful SCM MathCad interface does not require programming when entering tasks and displaying results - all this is done in the traditional form in the generally accepted language of mathematical symbols and formulas without using any special teams or operators. It is significant that in each algorithmic language, simple exponentiation, to the best of the imagination of the language developers, is performed using unique eigenvalues. symbols- all kinds of arrows, caps, double asterisks, and God knows what else, if not completely absent and requires calling special functions - as in the languages of the C family. In MathCad, this operation has a familiar form.
The interface is visual - that is, almost any action in SCM can be performed without using the keyboard, simply by selecting the desired menu items or tools on the panels. This interface implements the principle of "WYSIWYG" - what we see on the screen is what we get in work and output.
The interface is intelligent - of course, it is far from the intelligence of Visual Studio-2010, but in many cases it will not allow erroneous user actions.
The mentioned input language is interpretive, that is, intermediate results appear as you enter the next formula. The SCM MathCad itself is written in one of the most powerful languages - C++. As the user types the text of the calculation algorithm on the worksheet, the environment itself compiles a hidden program in intermediate language association, which is then saved as a .mcd file. Unfortunately, the MathCad package does not generate an executable file with the .exe extension - to work with an imported document, you must have the MathCad application installed. But to insert an image of a document or a separate fragment of it into text editor, for example, MS WORD, through the system buffer is no problem. This is how all the illustrations in this chapter were inserted. I recommend that after such an insertion of a fragment, call the context menu on it - the "Picture Format ... / Size" item and set the "Scale in Height" window to 128% - the most suitable for the font of the 12th size.
Worksheet objects can be formulaic text or graphic blocks. Actions on blocks are performed in strict order from left to right, top to bottom. Blocks that prepare operations must precede the execution of those operations. At the same time, end-to-end data transfer from one object to another is organized. Changing the input data instantly provides a recalculation of the results.
The content (content) of this SCM can be considered as an extremely powerful reference tool for mathematics. In addition, formula, text and graphics editors are integrated into MathCad SCM, which make it possible to simplify the input of multi-level complex formulas and obtain the final document. Intermediate actions in the course of symbolic transformations in SCM MathCad are hidden from the user, but one should not forget that the most complex recursive algorithms are used to obtain the final result, little known to the general user and often not optimal from the point of view of a mathematician. At the same time, no one forbids the user stepping and indication of algorithms familiar from the literature, which greatly simplifies the solution with a known end result. The final executable *.exe file is not created in SCM MathCad, which means that to view a finished (for example, imported) document, the presence of the installed SCM MathCad package is required.
We list the main features of the MathCad Environment.
General Features
- Development and editing of documents containing both mathematical formulas of any complexity, and all the built-in tools of the MathCad Environment. Preparation of these documents for publication or transmission over the Internet.
- Use of the generally accepted extensible markup language XML as a universal way to organize data exchange with other applications. This allows you to convert MathCad files into HTML pages and into PDF format.
- Ability to insert a wide range of objects into the document (see Fig. 12.3.)
- Development of web documents and networking capabilities to share them, receive updates and support.
- Documents receiving
- Performing calculations of any complexity - using the MathCad environment as a super-powerful scientific intellectual calculator using a rich library of built-in functions (more than 680; for comparison, in MS Excel there are about 200 of them), with an accuracy of up to 17 significant digits (and when using special operators - up to 250) and with unlimited possibilities for memorizing intermediate results. At the same time, it is possible to calculate both according to the formula entered into the document as a whole, and according to a separate, selected fragment of the formula.
- Using a graphics editor to build two-dimensional and three-dimensional graphs of any complexity, visual diagrams and not only for simple construction, but also for connecting a graph with a formula, in which a change in a parameter is immediately reflected in the graph curve. It is also possible to create moving animation objects and view imported files, for example, video films in AVI format, using the Playback player built into the MathCad environment.
- Actions with dimensions.
Numerical calculation methods
- Solving equations and systems of equations, both linear and non-linear. Finding the roots of a polynomial.
- Solution of inequalities.
- Calculation of a definite integral.
- Calculation of improper integrals.
- Calculation of multiple integrals.
- Numerical methods of differentiation.
- Numerical solution of ordinary differential equations - the Cauchy problem.
- Numerical solution of ordinary differential equations - solution of a boundary value problem.
- Solution of differential equations in partial derivatives.
- Calculation of the determinant, dimension, rank and trace of a matrix, scalar and vector multiplication of vectors, calculation of the Jacobian, for example, to change to other coordinate systems in a triple integral. Calculation of eigenvalues and eigenvectors , search for the maximum and minimum element of the matrix.
- Matrix transformations: scalar and vector multiplication of vectors, finding the inverse matrix and solving a system of algebraic linear equations, all possible decompositions of a matrix into a product of special types of matrices: two triangular ones - upper and lower (LU-transform), triangular and its transposed (Cholesky decomposition), orthogonal and upper triangular (QR-decomposition), singular value decomposition.
- Integration of the MathCad environment with the MATLAB matrix mathematical system and the possibility of using its apparatus opens up amazing possibilities for effectively solving matrix problems of unlimited complexity.
Solution of differential equations
Programming
Programming and performing calculations in a simplified procedural algorithmic language with the ability to use all procedural constructs: conditional statements, loops, arrays, module-functions, module-procedures.
Complex numbers
- Representation of complex numbers in the traditional form, the ability to perform basic arithmetic operations with them.
- The ability to automatically obtain the results of many calculations in the form of a complex number (for example, all the roots of a polynomial).
- Ability to set a complex argument for many library functions and obtain a mathematically correct result.
Data processing and financial calculations
Theory of Probability and Mathematical Statistics
Special opportunities for applied engineering and scientific calculations
- Processing of electrical signals and calculation of electronic devices.
- Virtual generation of electrical signals and their processing.
Computer science, cybernetics and programming
This method makes it possible, in particular, to obtain the characteristics of the system without carrying out full-scale experiments. Application software is designed to solve specific user tasks and organize the computing process of an automated control system as a whole. 1 includes: operating systems; service programs; programming language translators; programs Maintenance. Operating systems provide control over the processing of information and interaction between the hardware and the user.
ACS SOFTWARE
General characteristics of software and mathematical software
The organization of information processing processes, including the solution of optimization problems, as well as the support of technical means of automated control systems, is carried out with the help of appropriate software and mathematical software. ACS software and mathematical tools are a set of mathematical methods and models, algorithms and programs. The degree of their development largely depends on the effectiveness of the use of computer technology. Currently, there is a trend towards an increase in the share of costs for the development of software and mathematical apparatus in the total costs of the ACS project. This share is over 60% from the cost of technical means and design work on informatization.
The construction of a mathematical model of management tasks is assigned to specialists in organizational and technological solutions suppliers of problematic management tasks and specialists in formalizing the process of making managerial decisions. The inevitable simplifications of the simulated process must be sufficiently substantiated in order to avoid unnecessary distortion of the properties of the control process.
It should be noted that the needs of informatization of production are still ahead of the possibilities of applied mathematics. Greatest Application find, for example, linear models, while almost all dependencies in economics and management are in fact non-linear. We have to make significant simplifications of the model. Over the past decades, a number of mathematical disciplines have appeared or have been significantly developed, the methods of which are used to solve control problems.
Network Methods are most widely used in the organization of construction and design management. These methods allow you to determine the parameters of network models and analyze the progress of work on the implementation production plans. Per last years network models have become more advanced, based on generalized network graphs that take into account the probabilistic nature of construction and design. Within the framework of network modeling of production processes, single or multi-criteria optimization is possible, including in terms of time and resources.
Heuristic methodsallow solving a class of problems with "bad structure", i.e. when it is impossible to clearly formalize the task, for example, the tasks of scheduling construction and installation works related to multi-criteria. Such tasks cannot be solved by a complete enumeration of options, since there are too many of these options even to be performed on super-efficient computers.
Therefore, the tasks of scheduling construction and installation works in automated control systems are most often solved by the heuristic method. Its essence is as follows. Let the technology of construction of objects be given by network diagrams. According to the work, the need for resources is known. It is necessary to find such a plan that the technological and organizational constraints set by the network schedules are respected, and the estimated need for resources at any time does not exceed the specified upper level. Sequentially, in any order, they view and plan work, at the same time, the need for resources is calculated in a given fraction of the calendar scale. If this demand exceeds a predetermined level, then the work is shifted to a later date so that the predetermined level of resource consumption is not exceeded.
The point of this method is to schedule work as early as possible, but without exceeding a given high resource level. As a rule, when using heuristic methods, a human-machine dialogue is provided, within the framework of which the computer is responsible for calculating and issuing intermediate results, including various graphs and diagrams. The head of work, depending on the data received, directs the further direction of the calculations. In most cases, the tasks of automated control systems are of a calculated nature, the data processing algorithms in them are quite simple. The complexity of solving problems lies in the need to organize the search and processing of large amounts of data.
Methods of combinatorics, mathematical logic, information algebraare used to solve information-logical problems. it grouping and organizing data, combining data arrays and correcting information, entering, decomposing and exchanging data between electronic storages within one or more computers.
Mathematical programmingcombines linear, non-linear, dynamic and stochastic programming. Particularly distinguished are transport problems solved using linear programming methods. Usinglinear programmingsolved and are solving such problems as the development of plans for the development of the construction industry; selection of the best points for the construction of new enterprises; industry development forecast, optimal distribution of objects by departments and construction machines by objects, etc.
Nonlinear Mathematical Programmingis used less frequently than linear, and most often nonlinear problems are also solved by linear programming methods, for which curvilinear dependences are approximated by straight lines (linearization).
Typical tasksdynamic programmingare the distribution of capital investments between objects under construction or reorganization, scheduling, finding the optimal sequence for the construction of objects, inventory management, etc. The essence of dynamic programming is that if there are two ways to achieve the same result with the same continuation, then a longer path discarded (this reduces
the amount of computing on a computer).
Stochastic programmingis characterized by the introduction of probabilistic values of parameters into the tasks, reflecting risk and uncertainty.
Game theory methodsmake it possible to formalize and solve problems that are usually solved purely empirically, without the use of quantitative meters. Such tasks include, for example, the study of conflict situations under conditions of uncertainty of information about the actions of participants. Game theory methods are widely used in the analysis of organizational, economic, military and political situations.
Queuing or queuing theorystudies probabilistic models of system behavior. The basis for solving queuing problems is the theory of probability.Math statistics,which is one of the sections of the theory of probability, allows us to evaluate the totality of these phenomena without analyzing them all separately.Statistical test methodalso designed to study probabilistic systems, it is used in modeling a wide variety of situations. This method makes it possible, in particular, to obtain the characteristics of the system without carrying out full-scale experiments.
The scheduling methodallows you to establish the optimal sequence of construction of objects according to any criterion. For example, one of the following criteria can serve as a criterion: "the shortest construction period", "minimum downtime for contractors at the facilities", "maximum density of work at the facilities", etc.
Set theory methodsmake it possible to describe control problems much more compactly and find effective ways to solve them.
The second most important component of software and mathematical software (along with mathematical methods, algorithms and models) are software tools. Depending on the functions they perform, they can be divided into two groups: system software and application software.
Picture 1
System software organizes the process of information processing in a computer and provides a comfortable working environment for application programs. Application software is designed to solve specific user tasks and organize the computing process of an automated control system as a whole.
The system software (Fig. 1) includes: operating systems; service programs; programming language translators; maintenance programs. Operating systems provide control over the processing of information and interaction between the hardware and the user.
One of essential functions operating systems is the automation of the processes of input-output of information and management of the execution of tasks of the automated control system. Operating systems are also entrusted with the analysis of emergency situations in the process of computing with the issuance of appropriate messages. Based on the functions performed, operating systems can be divided into three groups: single-tasking, multitasking, network.
Single-tasking operating systems are designed to work
bots of one user at each specific moment with one specific task. Of the unambiguous operating systems, the disk operating system is used in most cases. MS - DOS . Multitasking operating systems provide for the collective use of computers in a multiprogram time-sharing mode (there are several programs in the computer's memory and the processor distributes computer resources between them). Among the multitasking operating systems, the most famous IBM's UNIX and OS/2 as well as Microsoft Windows 95, Microsoft Windows NT and some others.
Network operating systems are associated with the emergence of local and global networks and are designed to provide ACS users with access to all computer network resources. The most widely used network operating systems are: Novell NetWare, Microsoft Windows NT, Banyan Vines, IBM LAN, UNIX . With the development of operating systems, many of their functions are transferred to microprograms that are "hardwired" into the hardware of the computer. Operating systems are also transferred functions to ensure the operation of multiprocessor computers, the compatibility of programs for various types computers, parallel execution of programs.
Service tools are designed to improve the user interface. Their use allows, for example, protecting data from destruction and unauthorized access, recovering data, speeding up data exchange between the disk and RAM, performing archiving and unzipping procedures, and performing anti-virus data protection. According to the method of organization and implementation, service tools can be represented by: shells, utilities and stand-alone programs. The difference between shells and utilities is often expressed only in the universality of the former and the specialization of the latter.
Shells are a universal superstructure over operating systems and are called operational shells. Utilities and stand-alone programs have a highly specialized purpose and each perform its own function. Utilities differ from stand-alone programs in that they
are found only in the environment of the corresponding shells. At the same time, they compete in their functions with the programs of the operating system.
Operating shells provide the user with a qualitatively new interface and free him from detailed knowledge of the operations and commands of the operating system. Functions of most shells, such as families MS - DOS , aimed at more efficient organization of work with files and directories. They provide a quick search for files, creation and editing of text files, the issuance of information about the placement of files on disks, the degree of occupancy of disk space and RAM. All operating shells provide some degree of protection against user error, which reduces the chance of accidentally destroying files. Among the available operating shells for the system MS - DOS most popular shell Norton Commander.
Utilities provide the user with additional services, mainly for maintaining disks and the file system. Their list includes procedures for maintaining disks (formatting, ensuring the safety of information, the possibility of recovering it in case of failure, etc.), maintaining files and directories (similar to shells), creating and updating archives, providing information about computer resources, disk space , distribution of RAM between programs, printing text and other files in various modes and formats, protection against computer viruses. Of the utilities that have received the greatest use, it should be noted the integrated complex Norton Utilities.
Anti-virus protection software is designed to diagnose and remove computer viruses, which are various types of programs that can multiply and infiltrate other programs, while performing various undesirable actions.
Programming language translators are an integral part of software and mathematical software. They are necessary for translating program texts from programming languages (as a rule, high-level languages) into machine
codes. A translator is a programming system that includes an input programming language, translator, machine language, libraries standard programs, debugging tools for compiled programs and linking them into a single whole. Depending on the method of translation from the input language, translators are divided into compilers and interpreters.
In compilation mode, the processes of translation and program execution are performed separately in time. First, the compiled program is converted into a set of object modules in machine language, which are then assembled into a single machine code, ready for execution and saved as a file in magnetic disk. This code can be executed multiple times without retranslation.
The interpreter performs step-by-step translation and immediate execution of the statements of the source program. In this case, each statement of the input programming language is translated into one or more machine language commands. Executable machine codes are not stored on machine media. Thus, in interpretation mode, there is no need to first convert it into executable machine code each time you run the source program. This greatly simplifies the debugging procedures. However, there is some performance degradation in computing.
An important place in the programming system is occupied by assemblers, represented by complexes consisting of an input assembler programming language and an assembler compiler. The original assembler program is a mnemonic record of machine instructions and allows you to get highly efficient programs in machine language. However, writing instructions in assembly language requires a highly skilled programmer and much more time spent on compiling and debugging them.
The most common high-level programming languages that include compilation tools and have the ability to work in interpreter mode are: Basic , Visual C++, Fortran , Prolog , Delphi , Lisp , etc.
Currently, intensive development of fourth-generation languages such as Visual Basic.
Efficient and reliable operation of ACS software and mathematical software is impossible without software and hardware maintenance tools. Their main purpose is to diagnose and detect errors in the operation of a computer or a computer system as a whole. Hardware and software maintenance systems have diagnostic tools and test control of the correct operation of the computer and its separate parts(including software tools for automatic search for errors and malfunctions with a certain localization of them in the computer).
The list of these tools also includes special programs for diagnosing and monitoring the computing environment of the automated control system as a whole, including software and hardware control that automatically checks the health of the data processing system before starting the operation of the computer system.
Under the control of system software, including operating systems, the application software of the automated control system operates. Applied software tools, in contrast to solving system-wide informatization tasks, are designed to develop and perform specific management tasks for construction enterprises. The composition of the applied software includes packages of applied programs for various purposes, as well as work programs for the user and the automated control system as a whole (Fig. 4.2).
Application packages are a powerful informatization tool. They free developers and users of automated control systems from the need to know how a computer performs certain functions and procedures, thereby greatly facilitating the automation of management tasks. Currently, there is a wide range of application software packages that differ in their functionality and implementation methods. They can be divided into two large groups. These are general purpose application packages and method-oriented packages.
General-purpose application software packages are designed for automated solution of both individual production management tasks and for the development of entire subsystems and automated control systems as a whole. This class of programs includes text and graphics editors, spreadsheets, database management systems (DBMS), integrated software tools, Case technologies, shells of expert systems and artificial intelligence systems.
Editors greatly simplify and facilitate the organization of workflow in a construction organization. According to their functionality, they can be divided into text, graphics and publishing systems. Word processors are designed to process textual information and usually perform the following functions: insert, delete, replace characters or text fragments; spellchecking; design of a text document in various fonts; text formatting; preparation of tables of contents, pagination of text; search and replacement of words and expressions; inclusion in the text
illustrations; text printing; recording text documents on machine media.
When working with operating systems Windows, Windows 95, Windows NT, OS/2 powerful and convenient word processors are used Microsoft Word, Word Perfect . There are editors for preparing simple text documents. ChiWriter, MultiEdit, Word Pro, Just Write, Lexicon, etc.
Graphic editors are designed for processing graphic documents, including diagrams, illustrations, drawings, tables. It is allowed to control the size of figures and fonts, move figures and letters, form any images. Of the most famous graphic editors, one can single out Adobe Photoshop, Adobe Illustrator, Corel Draw, Photo-Paint, Fractal Design Painter, Fauve Matisse, PC Paintbrush, Boieng Graf, Pictire Man, etc.
Publishing systems combine the capabilities of text and graphic editors, have advanced capabilities for formatting pages with graphic materials and subsequent printing. These systems are mainly focused on publishing and are called layout systems. These systems include products PageMaker by Adobe and Ventura Publisher by Corel Corporation.
Spreadsheet processors are used to process management documents, which are tables. All data in a table is stored in cells located at the intersection of columns and rows. Cells can store numbers, character data, formulas, explanatory texts. Formulas set the dependence of the value of some cells on the contents of other cells. Changing the contents of a cell changes the values in the cells that depend on it.
Modern spreadsheet processors support three-dimensional tables, allow you to create your own input and output forms, include pictures in tables, use automation tools such as macros, work in database mode, etc. The most popular spreadsheets rightfully include software products Microsoft Excel (for Windows), Lotus 1-2-3 and Quattro Pro (for DOS and Windows), etc.
One of the most important tasks of software and mathematical support for automated control systems is the organization of work with databases. A database is a set of specially organized data sets stored on a disk. Database management includes data entry, data correction and data manipulation, i.e. adding, deleting, retrieving, updating, sorting records, reporting, etc. The simplest database management systems allow one array of information to be processed on a computer. Among such systems are known PC-File, Reflex, Q&A.
More complex database management systems support several arrays of information and relationships between them, that is, they can be used for tasks that involve many various kinds objects related to each other by various relationships. Usually these systems include programming tools, but many of them are also suitable for interactive use. Typical representatives of such systems are Microsoft Access, Microsoft FoxPro, Paradox, Clarion, etc.
To create a multi-user automated control system, database management systems of the "client-server" type are used. In them, the database itself is located on a powerful computer - server that receives from programs running on other computers - clients, requests to obtain certain information from the database or the implementation of certain data manipulations. These queries are usually made using a structured query language. SQL (Structured Query Language).
As a rule, a server computer runs on operating systems such as Windows NT or UNIX , and this computer may not be IBM PC compatible. And client applications can be created for DOS, Windows and many other operating systems. The following database management systems are used in multi-user automated control systems:
Oracle, Microsoft SQL, Progress, Sybase SQL Server, Informix, etc.
A special place among application software packages is occupied by integrated information processing software systems that combine functionally different programs in one package.
general purpose gram components. Modern integrated software tools may include: text editor, spreadsheet, graphics editor, database management system, communication module. As additional modules, the integrated package may include such components as a file export-import system, a calculator, a calendar, and programming systems.
The most typical and well-known packages of such an organization are Wicrosoft Works, Alphaworks, Framework, Symphony, Smartware II, the main functional characteristics of which are given in the summary table. 1.
Table 1. Functionality of Integrated Packages
Functional purpose |
Ws Works |
Alpha Works |
frame work |
Symphony |
Smartware II |
Word processor |
|||||
Spreadsheets |
|||||
business graphics |
|||||
DBMS |
|||||
Telecommunication |
The information connection between the components is provided by unifying the formats for representing various data. The integration of various components into a single system provides developers and users of automated control systems with undeniable advantages in the interface, but inevitably loses in terms of increased requirements for RAM.
CASE technologies are used when creating large or unique projects for automating construction management, usually requiring the collective implementation of an informatization project, in which construction specialists, system analysts, designers and programmers participate. Under CASE technology refers to a set of tools for the development of automated control systems, which includes a methodology for analyzing the subject area, designing, programming and operating an automated control system.
Tools CASE technologies are used at all stages of the ACS life cycle (from analysis and design to implementation and maintenance), greatly simplifying the solution of emerging problems. CASE technologies allow you to separate the design of an automated control system from the actual programming and debugging. ACS developers are engaged in design at a higher level, without being distracted by details. This approach eliminates errors already at the stage of analysis and design, which makes it possible to prepare better software and mathematical software for automated control systems. For example, CASE technologies make it possible to optimize the models of organizational and managerial structures of construction enterprises. In most cases, the application CASE technologies is accompanied by a radical transformation of the activities of a construction company, aimed at the optimal implementation of a particular construction project.
Collective work on an automated control system project involves the exchange of information, control over the execution of tasks, tracking changes and versions, planning, interaction and management. The basis for the implementation of such functions is the common database of the project, called the repository. The repository is an essential component of the toolkit CASE technologies and serves as a source of information necessary to automate the construction of automated control systems. Besides, CASE products on the basis of the repository allow developers to use other tools, such as rapid software development packages, when creating ACS.
Currently CASE technologies are one of the most powerful and effective means informatization, despite their relatively high cost and lengthy training, as well as the need for a radical reorganization
Figure 2
the entire process of creating ACS. Of the CASE technologies that have found the greatest use, one can single out : Application Development Workbench firms Knowledge Ware, BPwin (Logic Works), CDEZ Tods, (Oracle), Clear Case (Alria Software), Composer (Texas Instrument), Discover Development Information System (Software Emancipation Technology).
One of the promising areas of automated development of managerial decisions is the use of expert systems. Its essence lies in the transition from strictly formalized algorithms that prescribe how to solve a particular management problem, to logical programming, indicating what needs to be solved based on the knowledge accumulated by subject matter experts. Most modern expert systems include the following five basic components (Fig. 2): a database, an inference system, special knowledge acquisition and explanation subsystems, and a user interface. The knowledge base in expert systems is central and based on facts and rules. Facts record quantitative and qualitative indicators of phenomena and processes. Rules for describing
relationships between facts, usually in the form of logical conditions linking causes and effects.
The knowledge base is created and maintained by the knowledge base engineer (similar to a certain extent to the database administrator). The acquisition of knowledge is carried out in close contact with experts from the applied field. At the same time, the knowledge of the expert is translated from his professional language into the language of rules and strategies. Unlike a database that contains static links between record fields, records, and files, a knowledge base is constantly updated dynamically to reflect the recommendations of relevant experts. As the volume grows, the database both the basis for decision-making and the decisions themselves are subject to change.
The use of expert systems in construction is most effective in solving the problems of targeted planning and forecasting, as well as managing the functioning process. As a means of implementing expert systems on a computer, appropriate language tools and software shells are used. Of the programming languages that create an internal knowledge representation language, one can single out general-purpose languages ( Forth, Pascal, Lisp etc.), production ( OPSS, Planer, LOOPS etc.), logical ( Prolog, Loglisp, etc.). Of the most famous shells, it should be noted GURU, Xi Plus, OP55+, Personal Consultant, Expert System Consultation Environment and etc .
Method-oriented application packages differ from general-purpose packages in that they have a narrower focus and are designed to solve a problem in a specific functional area. Each of them, as a rule, is based on one or another mathematical method, for example: linear programming, dynamic programming, mathematical statistics, network planning and control, queuing theory, stochastic programming, etc. The exception is software packages Mathematica by Wolfram Research sh , Mathcad by Mathsoft , Maple by Waterloo Maple Software and others using mathematical methods of general purpose.
For construction companies, from the group of method-oriented application packages, it is especially necessary to single out information software project management systems:
Microsoft Project, Time Line, Prima Vera and others, which are based on network planning and management methods. Their application allows solving important tasks of scheduling construction production at a fundamentally higher quality level.
In the group of general-purpose statistical programs, the most well-known automated systems for processing statistical data are: SPSS, Statistica, Stadia . Of the statistical specialized software products, it can be noted Forecast PRO by Business Forecast Systems , as well as the domestic package Heurist of the Center for Statistical Research. Application packages for statistics are widely used in construction in solving problems of quality management, in engineering calculations.
Graphics software systems are designed to display on the screen, printer or plotter graphs of functions (given in tabular or analytical form), surface level lines, scatter diagrams, etc. Among such application packages, the most famous are Grapher, Surfer, Harvard Graphics and others. High-quality scientific and engineering graphics can also be obtained using a general-purpose mathematical software package such as Mathematica.
The second component of the application software, work programs of the user and ACS as a whole. It can be divided into three groups software systems: problem-oriented, for global computer networks, organization of the computing process. Problem-oriented packages represent the widest class of application software for automated control systems. There is practically no subject area for which at least one such software toolkit does not exist. From the whole variety of problem-oriented software tools, we distinguish two groups: a) designed for the integrated automation of management functions in enterprises; b) application packages
programs for subject areas.
Complex software integrated applications are developed to automate the entire activity of large or medium-sized enterprises. When creating them, special attention is paid to the following requirements: a) invariance in relation to the profile of the enterprise; b) taking into account the maximum possible number of parameters that allow you to customize the complex for the specific features of the economic, financial and production activities of the user organization; c) a clear distinction between operational management and accounting tasks with their full integration at the level of a single database; d) coverage of the entire spectrum of typical production and economic functions; e) adherence to a uniform user interface; f) providing opportunities for the development of the system by the users themselves, etc.
It should be noted that despite the rather high cost of most complex problem-oriented software systems, they are increasingly used in domestic and foreign practice of informatization of production. There are a number of multifunctional software products of this class: R / 3 (SAP), Oracle, Mac-Ras Open (A. Andersen ) and others. Of the Russian complex software systems of the highest price class, it should be noted the integrated multi-user network software complex "Galaktika", developed by the "Galaktika" corporation, which includes JSC "New Atlant" (Moscow) and NTO "Top Soft" ( Minsk), CJSC GalaxySPB (St. Petersburg), etc.
A very important direction in the development of the software industry is also the creation of application packages for various subject areas: design, development of estimate documentation, accounting, personnel management, financial management, legal systems, etc.
For example, to perform design work, a computer-aided design system is used AutoCad by AutoDesk related to systems of small and medium class. AutoCad is an extensible software
means. It has many add-ons made by other companies and provides various special functions within AutoCad . When designing complex construction projects, it is advisable to use more powerful automated design systems such as:
EVCLID, UNIGRAPHICS, CIMATRON etc.
There are a number of domestic computer-aided design systems that allow you to develop drawings in full compliance with the requirements of ESKD (a unified system design documentation) and take into account the peculiarities of domestic standards. They are distinguished from the corresponding foreign software packages by significantly lower requirements for the technical means of automated control systems, which can significantly reduce the cost of design automation. Among the domestic design automation systems, the integrated software package "Compass", which is designed for operating systems, has found the greatest application. DOS and Windows.
There are also a number of software packages for preparing construction estimates. Some of the software application packages, such as AVERS (automated maintenance and calculation of estimates) and BARS (large automation of the calculation of estimates), operate under the control DOS . Others, like the construction budgeting program WinCMera , prepared for the system Windows . Most of the software for preparing estimate materials, regardless of the operating platform used, incorporates extensive regulatory frameworks containing price tags for materials, installation and components, unit prices, aggregated prices and other standards that can be supplemented.
Application packages for accounting and financial reporting, in the vast majority of cases, are domestic developments. This is due to the incompatibility of domestic accounting with foreign accounting. Currently, there is an extensive group of application packages for accounting. Some of these programs automate only certain areas of accounting. For example, payroll, accounting of material and technical products in warehouses and facilities, etc. Others are closely integrated into the automated systems of enterprises and perform all accounting tasks and some others directly related to them.
For businesses with a small number of business transactions, simple and inexpensive accounting programs are usually used to maintain a business ledger, financial statements and balance sheet. As a rule, in this class of programs there are also software modules for calculating payroll, accounting for materials and fixed assets, printing bank documents, etc. Examples of such systems are: "1 (^Accounting", Info-accountant of Informatik company, Turbo-accountant of DIC company, "Best" of Intellect-service company, etc.
In many organizations, including construction companies, the 1C: Accounting software system, developed for DOS and Windows , and having network support. This program combines good functionality, ease of use, low cost and considerable flexibility. It can be adapted without the participation of developers to the specifics of accounting at the enterprise, changes in legislation and accounting rules. The Informatik Info-Accountant program has also become widespread, which, although it has somewhat less flexibility compared to the 1C: Accounting package, contains more built-in capabilities for solving specific problems.
For enterprises with a large volume of business transactions, more advanced accounting capabilities are required, including, in addition to warehouse accounting and management accounting, as well as monitoring the implementation of contracts, financial analysis of the enterprise, etc. In this case, it is most advisable to use more powerful and, therefore, more expensive accounting automation systems. Among the middle price class of accounting software packages are operated: Parus, Infosoft, Infin, Atlant-Inform, ComTech + and a number of other systems.
There is a third group of accounting software application packages designed for operation in large enterprises. These packages are usually integrated into complex enterprise automation systems. Most of them work under the operating system Windows and is intended for use in local networks. An example of such a software system for automating accounting can be called PPP BU "Office", which combines the products of 1C and Microsoft , which allows not only to automate the functions of an accountant, but also to organize all the office work of the company in the form of an "electronic office". Another example of embedding accounting tasks in complex automated management systems of large enterprises is the interaction of the contours of administrative management, operational management, production management, accounting in the ACS "Galaktika".
In addition to purely accounting application packages, there are a number of software systems for enterprise financial analysis and planning. These tools are primarily needed by investors and campaign finance managers. From analysis programs financial condition The most famous enterprises are: EDIP by CenterInvest-Soft, Alt-Finance by Alt, Financial Analysis by Infosoft. For the analysis of investment projects, packages have been developed: "Alt-Invest" by Alt, FOCCAL-UNI firm CenterInvestSoft, Project Expert by PRO - Invest Consulting , as well as the universal programs "Investor" of INEC.
To deal with the huge volumes of constantly updated legislative and regulatory information, there are application packages for legal reference systems. Examples of such programs are Garant, Code, Consultant Plus, etc.
In order to provide convenient and reliable access to geographically distributed network-wide resources and databases when solving ACS tasks, transfer email, spend
teleconference, ensure confidentiality transmitted information necessary computer networks and related software tools. To perform these tasks and some others, a set of standard global network application packages is available. Internet , which are: means of access and navigation Netscape Navigator, Microsoft Internet Explorer ; email Eudora and others
To ensure the organization of the administration of the computing process in local and global networks computers in more than 50% systems of the world uses the firm's application software packages Bay Networks (USA). These packets govern data administration, switches, hubs, routers, message scheduling.
The currently available system and application software in most cases is sufficient for the development and operation of the main tasks of the automated control system. However, some of the original problems cannot always be solved with the available applied software products or with their use. The results are obtained in a form that does not satisfy the user of the ACS. In this case, with the help of programming systems or algorithmic languages, an original software and mathematical software is developed for solving both individual tasks and subsystems, and in some cases, the entire automated control system as a whole.
As well as other works that may interest you |
|||
58321. | English is a language of the world | 46.5KB | |
Lesson objectives: Triune didactic goal Educational: balanced and systematic formation of the ICC in the unity of all its components. Lesson type: lesson of building knowledge and developing translation skills. | |||
58322. | How to Understand Those Mystifying Foreigners | 343.5KB | |
It was the British who started the fashion for seaside holidays. Not surprisingly, nobody in Britain lives more than one hundred and twenty kilometers from the sea. The nearest holiday area of\France is only three or four hundred kilometers a\way. | |||
58323. | Spelling of unstressed vowels at the root of a word | 1.17MB | |
Lesson objectives: To learn to distinguish between a test word and a test word, select test words for those being tested; Develop spelling vigilance, develop students' speech, thinking; Expand the horizons of students. Cultivate respect for nature | |||
58327. | Information units | 2.95 MB | |
The purpose of the lesson: To generalize students' knowledge about the representation of information in computer memory, to give an idea of the units of measurement of information. Lesson objectives: educational: to give students knowledge about the units of measurement of information, to teach how to find the information volume of messages ... | |||
58328. | Economic growth and development | 81.5KB | |
Purpose: to reveal the essence and correlation of concepts the economic growth and economic development; describe the ways in which various factors of production are used to achieve economic growth ... | |||
58329. | Acquaintance with the master of Decoration. Beauty must be seen. Study of native nature | 53.5KB | |
Purpose: study of methods of purposeful examination of objects of observation of processes and phenomena of the surrounding reality; creative development of the child's personality aimed at developing the imagination of fantasies ... | |||
6.1 ACS software The ACS software is understood as a set of various mathematical methods, models, algorithms and software packages that ensure the operation of the ACS in accordance with its intended purpose. The term ACS software is understood as the mathematical, linguistic and software of ACS. A feature of the mathematical software of the automated control system is: - an increase in the relative cost of the software in comparison with the complex of technical means (CTS) of the automated control system; -reasonable typing (unification) of application software; -wide use of PPP, standard casings, etc.
Mathematical support of automated control systems Mathematical support (MS) can be divided into three parts: MS of the computer (or internal); special software (or external); data teleprocessing software Internal ML includes operating systems (MS DOS), programming systems and tests (programs for checking the correct operation of computer devices),
Mathematical support of ACS Operating system (OS) - a set of programs that control the process of solving problems. Optimal loading of all computer nodes and external devices is the main task of the OS. The OS includes a number of programs, of which the main ones are: dispatcher, supervisor, utility programs. Dispatcher - a program that provides a certain mode of operation of the computer. Supervisor - a program that provides work given to the machine by a human operator within the framework of the mode established for it. Service - include programs for input of initial data; programs for editing and issuing results; OS communication programs with a human operator, etc. OS are distinguished according to their intended purpose into: general for solving a wide range of tasks and problematic ones. Depending on the organization of solving problems on a computer, the following operating modes of the OS are distinguished: individual, batch, multiprogramming, time sharing.
In the individual mode, the computer is constantly or for the duration of the solution of the problem is completely at the disposal of one consumer. Batch processing assumes that the user does not have direct access to the computer. The tasks prepared by him in the form of programs and initial data are loaded by the operator into a computer and solved in batches. Multiprogramming implies the ability to simultaneously solve several tasks for different programs, taking into account the priority. At the same time, one task is solved at each moment of time. If, when solving a problem, it becomes necessary to solve another one with a higher priority, then the solution of the problem is interrupted, the second problem is solved, after it is solved, the first one continues to be solved from the place where it stopped, etc. The time-sharing mode involves the simultaneous solution of several tasks.
Mathematical support of ACS. The main goals of the OS are: increasing the performance of computing systems (CS) by processing a continuous input stream of tasks and sharing the resources of the CS by tasks simultaneously executing in the CS (multiprogramming effect); aircraft planning according to priorities individual tasks, accounting and control of the use of resources; providing programmers with tools for developing and debugging programs; providing the operator with aircraft controls.
Mathematical support of automated control system The programming system is designed to automate the process of programming tasks, it contains translators of algorithmic languages of various levels and types and service programs. The system of utility programs (tests) is designed to control the correct functioning of the aircraft, detect malfunctions and analyze the types and causes of failures. Special (external) MO includes PPP, programs for specific tasks of automated control systems, and a system dispatch program. PPP - functionally complete software complexes, focused on solving a certain class of problems.
Mathematical support of automated control systems Programs of specific tasks of automated control systems can be conditionally divided into 3 classes: programs common to all industries (industry, transport, trade, etc.); programs common to aviation industry enterprises; programs specific for each enterprise (ARZ, aviation production association, etc.). Tasks of the 1st class include tasks: (calculation of wages, accounting of personnel, accounting material assets etc.). To the second - tasks of dispatching control (calculation of equipment operation modes, calculation of AT output, etc.). To the third - the specific tasks of repairing AT (release of spare parts during repairs, preparing AT for departures, etc.). A large number of programs that differ in purpose and significance require their organization on a system-wide scale, and this is done with the help of a system dispatcher program.
ML is built on the basis of typification of algorithms by classes of problems and unification of methods for solving related problems. This approach makes it possible to reduce the cost of ML, as well as to create unified models for solving various classes of problems. The first class of tasks includes tasks of primary accounting (mass) (the frequency of settlements with subscribers is millions per year, payroll settlements are hundreds of thousands per year, etc.). Examples of primary accounting tasks: daily, ten-day, monthly and annual accounting of receipts and consumption of fuels and lubricants by airlines, detachments, etc.; daily and weekly, monthly aircraft flight; accounting and analysis of aircraft equipment failures; accounting for the movement and stocks of material resources, etc.
Primary accounting allows you to accumulate a large amount of information along the way, the subsequent generalization of which will allow you to obtain full-fledged statistical data necessary for decision-making. These tasks form a class of accounting and statistical tasks, which are also related to the tasks of normative planning. The mathematical characteristic of these problems is a large number of logical operations with a small amount of simple mathematical operations. Among the tasks of this class can be noted: compilation of all forms of statistical and accounting reports; calculation of the cost of production; calculations of needs for fuel and lubricants, etc. An extensive group among those listed are accounting tasks characterized by a large number operations of addition, subtraction, logical operations (sorting, grouping, comparison) and the formation of tables of a given form. Mathematical support of ACS
Mathematical modeling is widely used in three fundamentally different classes of problems: in complex non-extremal calculations, forecasting and optimization. In ACS, a person retains decision-making functions based on data issued by ACS, direct observation of a controlled process (object) (control), development and establishment of decisive rules (criteria, standards, limit levels of controlled values), improvement of management and its form, analysis of results computer operation and preparation of measures to improve the operation of the system.
6.3 Programming languages for describing tasks in automated control systems high-level languages (ie non-machine languages), which have become a kind of bridge between human and computer machine language. High-level languages work through translation programs that inject "source code" (a hybrid English words and mathematical expressions that the machine reads), and ultimately causes the computer to execute the appropriate commands that are given in machine language. There are two main kinds of translators: interpreters, which scan and verify source code in one step, and compilers, which scan source code to produce machine language program text that is then executed separately. Interpreters One often-cited advantage of an interpreter implementation is that that it allows "immediate mode". Immediate mode allows you to ask the computer a task like PRINT *3/2.1 and returns the answer to you as soon as you press ENTER (this allows you to use a $3,000 computer as a $10 calculator). In addition, interpreters have special attributes that make debugging easier. You can, for example, interrupt the processing of an interpreter program, display the contents of certain variables, skim the program, and then continue execution. Compilers A compiler is a text-to-machine-language translator that reads source text. It evaluates it according to the syntactic construction of the language and translates it into machine language. In other words, the compiler doesn't execute programs, it builds them. Interpreters cannot be separated from the programs they run, compilers do their job and leave the scene. When working with a compiling language such as Turbo Basic, you will come to think of your programs in terms of two major phases of their life: the compile time and the run time.
2. CLASSIFICATION OF PROGRAMMING LANGUAGES 2.1. Machine - oriented languages Machine - oriented languages are languages whose sets of operators and visual means of which significantly depend on the features of the computer (internal language, memory structure, etc.). Machine-oriented languages allow you to use all the features and features of machine-dependent languages: - high quality of created programs (compactness and speed of execution); - the possibility of using specific hardware resources; - predictability of object code and memory orders; - to compile effective programs, it is necessary to know the system of commands and the features of the functioning of this computer; - the complexity of the process of compiling programs (especially in machine languages and CJS), poorly protected from the appearance of errors; - low programming speed; - the impossibility of direct use of programs compiled in these languages on computers of other types.
Machine-oriented languages by degree automatic programming are subdivided into classes: Machine language The computer has its own specific Machine Language (hereinafter ML), it is prescribed to perform specified operations on the operands they define, therefore ML is a command language. However, some families of computers (for example, ES computers, IBM / 370 /, etc.) have a single ML for computers of different capacities. The command of any of them provides information about the location of the operands and the type of operation being performed. However, the operation codes and addresses in machine instructions, which are a sequence of binary (in the internal code) or octal (often used when writing programs) digits, are replaced in the YaSK with symbols (identifiers), the form of writing of which helps the programmer to more easily memorize the semantic content of the operation. This provides a significant reduction in the number of errors when compiling programs. Autocodes There are also languages that include all the features of the CJS, through the extended introduction of macros - they are called Autocodes. The developed autocodes are called Assemblers. Service programs, etc., as a rule, are compiled in languages such as Assembler Macro The language, which is a means for replacing a sequence of characters describing the performance of the required computer actions with a more concise form, is called a Macro (replacement tool). Basically, a Macro is meant to shorten the entry of a source program. The software component that makes macros work is called the macro processor.
2.2. Machine-independent languages Machine-independent languages are a means of describing algorithms for solving problems and information to be processed. They are easy to use for a wide range of users and do not require them to know the features of the organization of the functioning of computers and VS. Such languages are called high-level programming languages. Programs written in such languages are sequences of statements structured according to the rules of the language (tasks, segments, blocks, etc.). The language operators describe the actions that the system must perform after the translation of the program into ML. The programmer got the opportunity not to describe in detail the computational process at the level of machine instructions, but to focus on the main features of the algorithm. It was necessary to create such programming languages that, using notation and terminology in this area, would allow describing the required solution algorithms for the tasks set, they became problem-oriented languages. These languages, languages focused on solving certain problems, should provide the programmer with the means to briefly and clearly formulate the problem and obtain results in the required form. There are a lot of problematic languages, for example: Fortran, Algol - languages created for solving mathematical problems; Simula, Slang - for modeling; Lisp, Snobol - for working with list structures.
Universal Languages Universal languages have been created for a wide range of applications: commercial, scientific, modeling, and so on. The first universal language was developed by IBM, which became Pl/1 in the sequence of languages. The second most powerful universal language is called Algol-68. It allows you to work with characters, digits, fixed and floating point numbers. PL/1 has an advanced system of operators for managing formats, for working with fields of variable length, with data organized in complex structures, and for efficient use of communication channels. The language takes into account the interrupt capabilities included in many machines and has corresponding operators. The possibility of parallel execution of sections of programs is provided. Programs in Pl/1 are compiled using automatic procedures. The language uses many properties of Fortran, Algol, Cobol. However, it allows not only dynamic, but also controlled and statistical allocation of memory. Dialog languages The emergence of new technical capabilities has set the task for system programmers - to create software tools that provide operational interaction between a person and a computer, they are called dialog languages. These works were carried out in two directions. Special control languages were created to provide operational impact on the passage of tasks that were compiled in any previously undeveloped (non-dialog) languages. Languages were also developed that, in addition to the goals of control, would provide a description of algorithms for solving problems.
The need to ensure prompt interaction with the user required that a copy of the original program be stored in the computer's memory even after receiving the object program in machine codes. When making changes to the program using the dialog language, the programming system, using special tables, establishes the relationship between the structures of the source and object programs. This allows the required editorial changes to be made to the object program. One example of a conversational language is Basic. Basic uses notation similar to ordinary mathematical expressions. Many operators are simplified versions of Fortran language operators. Therefore, this language allows solving a fairly wide range of problems. Non-procedural languages constitute a group of languages that describe the organization of data processed according to fixed algorithms (table languages and report generators) and languages for communication with operating systems. By allowing you to clearly describe both the task and the actions required to solve it, decision tables make it possible to visually determine which conditions must be met before proceeding to any action. One decision table describing a certain situation contains all possible block diagrams of implementations of decision algorithms. Tabular methods are easily mastered by specialists of any profession. Programs written in a tabular language conveniently describe complex situations that arise in system analysis.