What is stack, recursion and natural algorithm

They say that theory and practice of programming are high technologies and they are developing. The field of information technology is rapidly expanding its capabilities. New professions and markets are emerging.

Perhaps this is true in fact, but the fundamental programming constructs, as they were at the beginning of the beginnings, remain so to this day. But this is not a hammer or a screwdriver, which, in essence, are eternal.

Syntax Constructs and Real Logic

Without formal presentation of data, there is no programming. A man felt great in the world of information long before he realized that many of his actions are algorithms. Conveyors, machines, tools - these are mechanisms, rigid forms of implementing sequences of actions.

An ideal example is a protocol stack. Each works at its own level: physical, channel, network, transport, etc. Moreover, in each network design, the set of protocols and their interaction are different. It works! By the way, the protocol stack is not only local and global networks. In diplomacy there is its own set of protocol ideas, in economics - its own, in the organization of production in general there are a lot of rules and conventions, layers laid in a single system.

communication protocol stack




The advent of computers, computers, smartphones did not cause a revolution. All the programming languages ​​that have ever existed and still existed have manipulated and continue to do this with the same algorithms, but only in milder constructive forms.





The “softness” of the programming language versus the “rigidity” of the pipeline sequence did not produce the desired effect. In fact, every programming language is a system of strict syntax rules, and the information that is to be processed is clothed in a strict formal data structure.

Real logic is mobile. A person makes decisions on the situation, relying on a dynamically developing foundation of knowledge. The whole arsenal of human algorithms is living dynamics. “Similar in essence” actions instantly clothe themselves in a recursive form, and each subsequent action relies on the previous one.

What is the knowledge stack in reality - this is the dynamics of new opportunities based on existing circumstances.

Full stack developer

According to Google, the first mention of the "developer" ("= developer" is something more significant than just a programmer) dates back no earlier than 2010. According to other sources, the idea of ​​a “developer” is 2004. In fact, time is of little importance here. A developer with a full set of knowledge came to programming, but nothing has changed.

Developer = Developer




The programming stack is the moment the first processor appeared, because it was he who had to ensure the sequential execution of commands. At the level of machine codes, it is difficult to think conceptually, but the stack was confidently formed in the minds of specialists as an amazingly simple and effective rule for organizing computational processes.





Stack and processor




Without a stack, there is no recursion, and without it, any algorithm turns into a cumbersome sequence of actions. Everyone can think and act recursively, but not every programmer has been given a similar algorithm; it’s hard to say something definite about “developers” in this context.

No matter what you call a profession, nothing will change: a programmer, developer or full stack developer. A person must know his job in full, and in such a way as to dynamically grow in accordance with the changing working conditions.

Knowledge cannot be static, as it is always a dynamic.

A stack of plates against hard syntax

Programmers and persons accompanying their activities (specialists in various fields) have long learned to speak beautifully:

Full-stack developers: programmers who understand the whole stack usually create better applications.

You can find many such declarations on the Internet. But if in any cafe and restaurant the dishes are folded in the old fashion so that it is convenient to use and this technology adaptively takes into account the realities of the current situation, then hitherto dominate in programming: if, switch, for, foreach, while and the assignment sign.

All syntactic achievements of the last century migrated to the present century with an explicit claim to live to the next.

Full or not full, but a programmer who thinks reality and strives to create a high-quality software product can go beyond the predefined hard syntax. What is a stack, if not a tool to combat this brake of progress? Whatever the creator of the modern programming language might think to himself, trying to preserve the heritage of the last century, it can be trivially leveled through the stack.

full developer




A simple example. There is real information. There is a data that can be processed by a specific algorithm. A solution is achievable. But real information determines data options. So, we need versions of the algorithms, and this will lead to solutions.

There is nothing simpler than creating a stack: a specific situation arose, and it “figured out” down, decomposed into components, and then went up and showed a solution.

Recursion what is the stack for her

It is impossible to describe everything with one algorithm. When creating a program, a specialist constantly detects similar sections of code. Using functions, the programmer optimizes it and makes it readable, testable, and efficient.

Recursion is a qualitatively new level of functionality: the ability of a function to call itself when it is necessary and return to the previous state of things by changing the required amount of data. What is a stack, if not a plan for plunging into a problem until it is fully recognized (understood) and returned to its original state with an adequate change in the surrounding reality (data).

About function skills




Programming manipulates data, but not information. According to most experts, data is a formal reporting system. If you create several formal systems, you get more options for presenting information, which means a stack. The computer will receive an algorithm for an adequate response to the information provided by formal data systems.

Of course, in this context, everything depends on the level of knowledge of the programmer and his ability to present information in various systems of data structures. Giving each such structure the necessary functionality (at its own level), you can get a picture of the data and functions. In a common system this will be an adequate universal solution.

It is not necessary to be considered a full stack developer, it is enough to be a programmer striving to create dynamic recursive algorithms. The world, of course, will not collapse at the feet of such a specialist, but he will know his work well.

Natural algorithm

There are no special options: a natural algorithm is something that runs by itself and adequately received information. As usual, natural algorithms are peculiar to man, animate and inanimate nature. We can say that there are conscious algorithms and laws of physics, chemistry, economics, society.

Recursion and Stack




Information is a stream of something in which there is a system and patterns. You should not understand all this at once, you can always do it later. To solve current problems, it is quite enough to perceive information and adequately respond to it.

In the context of programming and “high technology”, recursion and stack rules are sufficient to achieve an objective and effective solution to any problem.




All Articles