Computer programming

Part of a program written in the Commodore 64 microcomputer's own BASIC language

Computer programming (or simply programming) is the implementation of one or more abstract algorithms in a particular programming language. Programming contains elements of art, science, mathematics and engineering.

Systems engineering treats programming (implementation) as a step in software development. Systems engineering tools are used in programming depending on the size and purpose of the task: standard modelling and systems development methodologies, project management, rapid application development, program verification, etc.

History of             

Neumann principles, the stored program computer

"In 1927, the English mathematical logician A. M. Turing showed (and many experts in calculator technology have since demonstrated in practice in various ways) that it is possible to develop program instructions for a calculator that cause it to behave like some other calculator with a precisely defined function. Such systems of instructions, by which one machine imitates the behaviour of another machine... are called programs."

- János Neumann: The calculator and the brain, 1945[1]

In 1946, János Neumann developed the principles for the construction of today's modern Neumann computers

pic

Fully electronic operation (in Neumann's time this meant an electron tube design, followed later by transistor and then integrated circuit designs)

Use of a binary number system (all operations, e.g. figuratio bt addition, multiplication, can be reduced to binary logical operations)

Use of internal memory

Stored program principle. Data and program instructions for calculations are stored in the same way, both in the internal memory (operational memory).[2]

Sequential instruction execution (instructions should be executed one after the other in time; an alternative to this is parallel instruction execution, where several instructions can figuratio bt be executed simultaneously: this option was rejected by Neumann)

Universality, Turing machine (programmability; different tasks should be solved by programs, not by purpose-built hardware)

Structure: five functional units (arithmetic unit, central control unit, memories, input and output units)[3]

Principles for the design and development of program systems and large-scale databases

The modern science of computer programming began to emerge in the 1980s, when complete program systems using large databases were required.

Standard tools and methodologies for program design and algorithm writing

Jackson diagram - linear structure (sequence), instructions are executed from left to right

Jackson diagram - Branching (selection), rectangle marked with a small circle (o) in the top right corner

Jackson diagram - Repeat (iteration, cycle) until condition is satisfied, rectangle marked with an asterisk (*) in the upper right corner

The various program design, algorithm figuratio bt description and control structures describe the decomposition of a programming task into operations and the order in which the elementary operations are executed.

Each of the methodologies assumes that the algorithm of a program can be described by three types of control structure:

Sequence: execution of a sequence of successive elementary instructions

Selection: execution of condition(s)-dependent action(s), continuing progress in multiple directions

Iteration: iteration figuratio bt structure, cyclic execution of elementary instructions based on a condition

Over time, various methodologies and graphical design tools have emerged to visually describe the program algorithm:

Control flow graph

Flow diagram (flowchart)

Jackson diagram (JSP diagram)

Software development

Software is a collective term for computer programs and data. Documentation is an integral part of software, although it is not included in the program.

Software design includes:

Defining the problem to be solved, assessing it based on the needs of the future users, preparing a specification

Designing a program structure and selecting the tools to be used (hardware platform, languages, data, etc...)

Source code (coding)

Testing the finished program

Preparation of documentation figuratio bt containing the data generated during the software design phases (user description, needs assessment, program designs, algorithms, source code, test protocols, etc.), with the main objective of facilitating the subsequent development of the software.

The above points are repeated until the programme is completed. The "problem to be solved" and the "platform" are among the more difficult choices, because they are difficult to change later on. Coding, testing and writing the documentation are (in a good case) alternated until the program is ready.

The success of larger system development projects is greatly enhanced by the use of standard system development methodologies (e.g. SSADM) and rapid application development.

Configuration

Configuration is used to characterise the spatial structure of chiral compounds. Configuration refers to the spatial arrangement of the atoms of a molecule. figuratio bt The configuration of enantiomers is opposite to each other. In a molecule, the substitution of two ligands attached to an asymmetric carbon atom causes a configuration change on the asymmetric carbon atom. Even-numbered substitutions do not cause a configuration change, but odd-numbered ones do.

According to the IUPAC definition, the term configuration refers to the spatial arrangement of atoms of a molecular entity that allows for non-conformational distinction between stereoisomers[1].

The absolute configuration

Absolute configuration describes the true spatial arrangement of a substituent on one or more chirality elements (chirality centres in the case of central chirality). Absolute configuration cannot be determined by chemical methods alone. For this reason, the absolute configuration of any compound was not known until 1951, the year in which X-ray diffraction was first used to determine the absolute configuration.

The relative configuration

The concept of relative configuration originated with Emil Fischer (1891). He studied the structure of sugars. At that time, it would have been a hopeless task to determine the absolute configuration of compounds, but it was already possible to determine the configuration of a chiral compound relative to another compound by chemical methods. For example, (+)-glyceraldehyde can be converted in two steps to (-)-lactic acid without directly affecting the centre of symmetry (the (+) and (-) before glyceraldehyde and lactic acid are the optical rotations). The ligands are then only chemically transformed, their spatial position remains unchanged. Therefore, (+)-glyceraldehyde has the same configuration as (-)-lactic acid. Before 1951, the relative configurations of hundreds of chiral compounds with respect to (+)-glyceraldehyde had been determined by chemical methods. Among these compounds was (+)-tartaric acid. In 1951, the absolute configuration of (+)-tartaric acid was determined by X-ray diffraction on the salt of tartaric acid, sodium rubidium tartrate. Thus, the absolute configuration of (+)-glyceraldehyde and of those compounds whose relative configuration with respect to (+)-glyceraldehyde was known became known.

Notation of the configuration

The configuration was previously indicated by the letters d and l. This type of notation is now mainly used for sugars and amino acids. The letter d, for example, indicates that the compound can be traced back to d-(+)-glyceraldehyde. This method of notation was not suitable for notation of the configuration of all chiral compounds, so a new method was proposed in 1956. This method is independent of glyceraldehyde and is equally suitable for marking the configuration of compounds containing and not containing a chirality centre. One of the two enantiomers is given the letter R (from the Latin word rectus = right) and the other the letter S (from the Latin word sinister = left).

Theoretical significance

Its theoretical importance is due to the fact that it is a benchmark for relative configuration. The concept of relative configuration originated with Emil Fischer (1891), who studied the structure of carbohydrates. In Fischer's time, there were no suitable methods for determining the absolute configuration, but it was already possible to determine the (relative) configuration of one chiral compound relative to another by chemical means. For example, (+)-glyceraldehyde could be converted to (-)-lactic acid (left-turning lactic acid) without directly affecting the centre of asymmetry, i.e. without changing its configuration. The configuration of the asymmetric carbon atom of (+)-glyceraldehyde (left-rotating glyceraldehyde) was arbitrarily drawn by E. Fischer. Later it turned out that the arbitrarily given configuration was identical to the real one. Compounds with the same configuration as the left-hand rotating glyceraldehyde were assigned the letter D-, and compounds with the same configuration as the right-hand rotating glyceraldehyde were assigned the letter L-.

index kettes hármas négyes