Define what a program is. What is a computer program? Creation, use, types and purpose of computer programs

1. Who in the company should be responsible for the knowledge base - department heads, senior managers, the entire team, HR manager?

Nikita Mikheenkov, Nimax
The initiators of work on the database are the heads of departments; they write instructions, rules and regulations. But if any employees want to contribute, anyone can participate. Creation of documents that help document problems and avoid their recurrence is especially encouraged.

2. Most corporate knowledge bases use wiki markup. Does this make it difficult to implement and use such systems in a team where not everyone is familiar with it? How to work around this problem?

Nikita Mikheenkov, Nimax
We tested several wiki systems, but decided that in a mixed team consisting of more than just programmers, wiki markup became an obstacle. As a result, our knowledge base is Google documents and spreadsheets neatly arranged in folders.

Konstantin Kolomeets, ex: Yandex
Wiki markup is one of the most serious obstacles to the implementation of wikis in companies; if it is possible to use software solutions that use wysiwyg editors, they should do so.

If this is not possible, try to reduce the capabilities of the wiki markup as much as possible to make it easier to remember. It is also worth simplifying the design of the very first or most popular pages, since employees will resort to the wiki markup of such pages as an example and “cheat sheet”.

Put out a really “cheat sheet”: a small piece of paper with the most popular marking elements, which the employee will hang at the workplace in front of his eyes and in which he will peek.

3. How can a knowledge base be transformed from a passive data repository (as is usually the case) into a daily working tool for the team?

Nikita Mikheenkov, Nimax
Perhaps the knowledge base information should be linked to the project management system, and each piece of information should be tied to specific events. We have not yet been able to find such a system.

Konstantin Kolomeets, ex: Yandex
First, lead by example: publish and keep up-to-date information about your area of ​​responsibility that is interesting to colleagues. If they ask a question that's on the wiki, answer as briefly as possible, referring them to the wiki for full information. If they ask a question for which there is no answer in the wiki yet, add the answer to the wiki, then answer the employee - also with a link.

Secondly, tell employees what information is on the wiki, set up an effective search system and a visible catalog of information. In order for employees to access the knowledge base, they must at least roughly understand the answers to what types of questions are there.

Thirdly, while the company has not managed to record any meaningful information on the wiki pages, it is possible to write down who is responsible for what. Even such a simple wiki will solve one of the important tasks - connecting employees with each other.

4. Should the knowledge base be supplemented by an employee training system (LMS), which allows tracking the process of familiarization of each employee with the information presented in the database?

Nikita Mikheenkov, Nimax
That knowledge bases isolated from the learning process are not very promising. Perhaps it would be more correct to use LMS systems rather than databases for knowledge management, creating courses for employees in them and tracking progress.

5. Should the knowledge bases for projects (company experience) and the general knowledge base describing the work system in the company (company methodology) be separated?

Konstantin Kolomeets, ex: Yandex
If a company is engaged in stream project work, and projects differ minimally from each other, then it is possible to organize a common base that is relevant to the experience of all teams. If the projects that the company does are noticeably different from each other, complete integration will be expensive, and the benefits from this will be minimal: participants from different teams simply will not find information that is relevant to them.

; 2) a syntactic unit that corresponds to the rules of a specific programming language, consisting of definitions and operators or instructions necessary for a specific function, task or solution to a problem (ISO/IEC 2382-1:1993 standard).

The first definition corresponds to the concept of “executable program”, the second refers to the concept of “source text”.

Other definitions from regulatory documents:

Computer programs as an object of copyright and other rights belong to the category of intangible assets.

Creating programs

Recording the source code of programs using programming languages ​​makes it easier for humans to understand and edit. This, in particular, is helped by comments, which are allowed in the syntax of most languages. To be executed on a computer, the finished program text is converted (compiled) into machine code.

Some programming languages ​​make it possible to bypass the need for pre-compilation of the program and translate it into machine code instructions directly during execution. This process is called dynamic compilation, and it allows for greater program portability across different hardware and software platforms while maintaining many of the benefits of compilation.

Programs can be created in text form and visually. In the first case, the source code is typed manually, in the second, the functionality of the program is specified using graphical user interface elements, and the program text is generated automatically and can be either manually modified or completely hidden from the programmer.

Storage and execution

Until the time a computer user explicitly or implicitly issues a request to execute a computer program, it is typically stored in non-volatile memory. When such a request is received, the program, through another computer program called the operating system, is loaded into random access memory, from where it can be directly executed by the central processor. The CPU then executes the program, instruction by instruction, until it completes. A running program is called a process. A program terminates either upon reaching its last instruction (usually transferring control to the operating system) or due to an error, software or hardware.

Concurrent execution

Many operating systems support a multitasking mechanism, which allows you to create the effect of several computer programs running simultaneously on one computer. Operating systems can run multiple programs using the operating system manager, a software mechanism for switching processes running on the processor. Although only one program is running at a time, if switched frequently enough, the user can interact with all programs while they are running. Modern multiprocessor computers, or computers with multi-core processors, support the simultaneous execution of multiple programs in hardware.

Fragments of code from the same computer program can be executed simultaneously using threads of execution. There are multi-threaded processors that are specifically optimized to run multiple threads.

Self-modifying programs

A computer program that runs is said to be different from the data it processes. However, this distinction becomes blurred when a computer program modifies itself. The modified computer program is then executed as part of the original program. Self-modification of code is possible in programs written in machine code, assembler, Lisp, C, Cobol, PL/1 and Prolog.

Using programs

Most computer users use programs designed to perform specific application tasks, such as preparing and processing documents, mathematical calculations, image processing, etc. The corresponding software tools are called application programs or application software. Responsible for managing the components of the computer system and creating an environment for the operation of application programs. system software, the most important component of which is the operating system.

Legal aspects

According to Art. 1261 of the Civil Code of the Russian Federation, a computer program is a set of data and commands presented in an objective form, intended for the operation of a computer and other computer devices in order to obtain a certain result, including preparatory materials obtained during the development of a computer program, and the audiovisual displays generated by it.

Programs with publicly available source code are called open source.

Computer programs are subject to copyright in most countries (including Ukraine and Russia). In some countries, computer programs may be protected by patents. The patenting of computer programs was facilitated by the Agreement on Trade-Related Aspects of Intellectual Property Rights, which established minimum requirements for the protected range of intellectual property rights and effectively allowed software to be patented. The TRIPS Agreement is mandatory for implementation on the territory of Ukraine and Russia as WTO member states.

Thus, the program can be protected both as a “literary work” and as an “invention”. To determine the regime of legal protection in the first case, the “code text” is used, in the other - the characteristics used for inventions proposed for patenting (that is, it is necessary to prove “innovation”, “originality” and “non-obviousness”, as well as the possibility of solving an existing technical problem and commercial suitability). At the same time, there is a problem of legal differentiation of computer programs from proprietary digital content and proprietary software.

The exclusive right to computer programs and databases arises automatically from the moment of its creation and is valid for the entire life of the author and seventy years, counting from January 1 of the year following the year of the author’s death (or the death of the last of the co-authors).

The current legislation of the Russian Federation does not provide for the patenting of computer programs as such. These intellectual property objects are protected by copyright, which arises automatically from the moment of their creation and does not require mandatory state registration. However, computer programs and databases can be registered with Rospatent at the request of the copyright holder.

Author's and some others [ which?] intellectual property rights allow you to restrict access to the source code of programs.

Solution for 54-FZ, which consists of a free cash register program and online cash register Wiki Print.

The free cash register program is installed on your computer or laptop and works with a barcode scanner and a bank terminal.

Installation and use of the program is free, Dreamkas Cabinet is included at no additional cost.

If you already have a computer or laptop, there is no need to buy a separate cash register. An online cash register is sufficient, which will print checks and send them to the OFD and the tax office. This solution may turn out to be significantly more profitable.

Install Dreamkas Start and start selling with it now. Cashiers will get used to the new program, and you will be able to monitor the analytics and connect the necessary inventory systems and accounting programs.

You are all ready to switch to the new requirements of the law - just connect Wiki Print.

No unnecessary expenses

Buying a cash register is a serious expense for a business. In order not to throw away this money on another obligation, you need to choose a cash solution that will help your business grow.

No additional payments for services

I would like to close the issue with the transition to 54-FZ with one purchase. While working, it turns out that for some cash register solutions, the necessary functions are unlocked for additional money or require a subscription fee.

Consistently and without haste

To comply with tax requirements, you will have to teach cashiers how to use the cash register and learn how to do it yourself. It will be necessary to conduct accounting in a new way and maintain cash discipline.

First step - Dreamkas Start

1. Install Dreamkas Start

After installation you can connect:

  • Dreamkas office to work with products and analyze sales
  • Barcode scanner for fast and error-free operation of cashiers
  • Bank terminal to accept card payments
  • Goods accounting system or accounting program

2. Connect Wiki Print

To comply with 54-FZ, you just need to connect and register Wiki Print.

Cloud sales analytics service included

Connect your Dreamkas Account to receive real-time information about revenue and other key trading metrics. Use it to upload goods, connect external services and accounting software.

All functionality is free

You can use all the features of the cash register program for free. No trial periods or extra fees to unlock new features.

You have nothing to lose if you refuse Dreamkas Start

If the cash register program is not suitable for you, remove the free one and buy another solution. It won’t be too late to refuse even after purchasing Vicki Print.

Wiki Print online cash register terminals are compatible with Wiki Classic and Wiki Micro cash terminals, 1C and other popular cash register programs.

Everyone who uses computer or mobile equipment, one way or another, installs applications that perform one or another task. But not every user clearly understands what a computer program is, how it works, how it is created, etc. We will have to clarify this issue.

What is a computer program in general terms?

Based on the general definition offered by many Internet resources, for some reason the concept of a program or application in most cases is associated exclusively with executable files in the format EXE, COM, etc. We beg to differ with this statement.

Almost all modern computer programs, the classification list of which will be given a little later, do not work by themselves. Yes, there is an executable file, but this is not enough. We also need some additional components loaded into the same RAM.

However, the very concept of a program as such can be reduced to the fact that it is a certain set of commands and instructions transmitted to the central processor for processing or performing corresponding calculations, and in a strictly defined sequence.

In order for the machine to understand the command sent at a certain moment for processing and execution, regardless of the programming language in which the application is written, a universal tool is used - binary code, which is a sequence of zeros and ones. You can also find the use of ternary or hexadecimal code, but, as a rule, at the moment their use is very limited.

Computer program classes

As for the classification of any software, today there are quite a lot of systems that include division by type.

However, in all classification systems the following computer programs are distinguished (the list is given below):

  • primary input/output systems (BIOS, UEFI);
  • system programs and their components (operating systems and their own services);
  • service and maintenance software;
  • development environments (program creation);
  • application software(narrowly targeted user programs installed on a computer to perform specific tasks).

It should not be surprising that even operating systems or BIOS are included in the list. Any modern OS ensures user interaction with computer software and hardware through a command or graphical interface, and the primary system is responsible for storing information about all hardware components and testing the equipment at the stage of turning on the computer.

How are applications created?

There is no point in delving too deeply into development, since it may require at least basic knowledge of programming languages.

It is enough to note that creating computer programs comes down to writing code in the language itself (or using development environments such as the Java SDK), testing the application in the environment itself, and compiling it (converting it into machine-readable code).

How do most programs work?

The user of computer programs does not always understand how it all works. The simplest applications, consisting of a single executable file, are disappearing into oblivion. Today, any more or less serious program uses executable files only to launch the main interface, after which dynamic libraries containing executable codes and commands are loaded into RAM, and also calls are made to the drivers that control the computer hardware to activate their corresponding functions.

In terms of how applications work, this explanation is very primitive, however, if you do not delve into the essence of system processes, even an ordinary user will understand how it all functions.

Practical use

Using computer programs in most cases comes down to launching an executable file in EXE format, which is created after installing the application on the computer (other formats are used in mobile devices). The same executable components are provided for installation, usually named Setup.exe (for system updates Setup.msi). But it is not always the case.

For example, some software components that are presented exclusively as DLLs can only run in another software environment.

The most striking example is VST synthesizers and effects that connect to music editors and sequencers through an appropriate interface or host. What is a computer program in this sense? This is not even a program, but a component that contains a set of commands that are executed when connected to the interface and loaded into RAM. Only the RAM is sent to be processed by the central processor, and not vice versa, as is the case with executable files.

Compatibility issues

It is clear that it is impossible even in principle to create some kind of universal application that would work on absolutely all known operating systems and devices. Nevertheless, such attempts are being made, and quite unsuccessfully (at least in Windows there is something similar).

Just look at cloud services that allow access to storing or editing information of any type without physically installing software on the user terminal. Repositories or editors can be accessed from any devices (PC, laptops, smartphones, tablets). And multimedia is not discussed at all. Through the web interface, the user of any device gets access to media content (the same YouTube hosting).

Instead of a total

As you can see, the question of what a computer program is has quite a lot of answers. On the one hand, this seems to be a set of commands, however, if you look at the question a little more broadly, we can conclude that this is a set of codes or components that determine the behavior of the operating system as a whole and the operations performed by the hardware.

Thus, it is not difficult to conclude that any program or application in itself is worthless if there is no software environment (OS) in which they can work, or devices installed on the motherboard whose functions are required to perform certain tasks at the moment.

It remains to add that only the simplest interpretations of computer programs, the principles of their creation and application were given here. In fact, everything is much more complicated; considering all aspects can take quite a lot of time. However, if you dig deep into the relevant literature, it is not that difficult to find detailed instructions for any particular software product (as a rule, such descriptions are even present on download sites in the form of preliminary information about the capabilities of downloaded applications).

Publications on the topic