Programming
Material from Wikipedia the free encyclopedia
Go to: navigation, Search
This term has other meanings, see Programming (values).
Software development Software development process Process steps
Analysis • Design • Programming • Documentation • Testing
Models
Iterative • Spiral • Cascade • V Model • Dual Vee Model
Methodologies
Agile (XP, Lean, Scrum, FDD, etc .
• * Cleanroom • OpenUP • RAD • RUP • MSF • DSDM • TDD
Related disciplines
Configuration management • Project Management • Requirements Management
Template: View • Discussion • Edit
Programming is the process of creating computer programs.
According to the well known expression of Niklaus Wirth, "Programs = algorithms + data structures"[1]; in other words, the key immediate tasks of programming are the creation and use of algorithms and data structures.
In a broader sense, programming is understood as the entire range of activities related to the creation and maintenance of software — software.
This engineering discipline is called "software engineering".
This includes analysis and problem statement, program design, building algorithms, developing data structures, writing program texts, debugging and testing the program( testing the program), documentation, configuration (configuration), revision and maintenance.
Programming is based on the use of programming languages in which instructions for the computer are written.
A modern application contains many such instructions, related to each other.
A text editor of a programming environment can have specific functionality, such as indexing names, displaying documentation, syntax highlighting, and visual means for creating a user interface.
With the help of a text editor, the programmer sets and edits the text of the program being created, which is called the source code.
The programming language defines the syntax and the original semantics of the source code.
Currently, integrated development environments are actively used, which also include an editor for entering and editing program texts, debuggers (so called debuggers) for finding and eliminating errors, translators from various programming languages, linkers for assembling a program from several modules and other service modules.
Content
1 History 2 Programming Languages 3 Notes 4 Literature 5 References
History[edit / edit wiki text]
See also: History of Programming Languages
Switching panel of the IBM 402 summing machine
The Antikythera mechanism from ancient Greece was a calculator that used gears of various sizes and configurations that caused its operation, [2] on tracking the Metonic cycle, which is still used in lunisolar calendars.[3]
Al Jazari built a humanoid programmable automaton in 1206.
One system involved in these devices used clamps and cams placed in a wooden box in certain places, which consistently engaged levers, which, in turn, controlled the percussion instruments.
Often, the first programmable device is considered to be a jacquard loom, built in 1804 by Joseph Marie Jacquard, who revolutionized the weaving industry by providing the opportunity to program patterns on fabrics using punched cards.
The first programmable computing device, the Analytical Engine, was developed by Charles Babbage (but could not build it).
On July 19, 1843, Countess Ada Augusta Lovelace, the daughter of the great English poet George Byron, is widely believed to have written the first program in the history of mankind for an Analytical machine.
This program solved the Bernoulli equation, which expresses the law of conservation of energy of a moving fluid.
In her first and only scientific work, Ada Lovelace considered a large number of issues.
A number of general propositions expressed by her (the principle of saving working memory cells, the connection of recurrent formulas with cyclic computing processes) have retained their fundamental importance for modern programming.
Babbage's materials and Lovelace's comments outline such concepts as a subroutine and a library of subroutines, command modification and an index register, which began to be used only in the 1950s.
However, none of the programs written by Ada Lovelace was ever launched.
Programming languages[edit / edit wiki text]
Main article: Programming language
Most of the work of programmers is related to writing source code, testing and debugging programs in one of the programming languages.
The source texts and executable files of programs are objects of copyright and are the intellectual property of their authors and copyright holders.
Different programming languages support different programming styles (programming paradigms).
Part of the art of programming is to choose the programming language that is most fully suitable for solving the task Different languages require different levels of attention to detail from the programmer when implementing an algorithm, which often results in a compromise between simplicity and performance (or between the programmer's time and the user's time).
The only language directly executed by a computer is machine language (also called machine code and machine command language).
Initially, all programs were written in machine code, but now this is practically no longer done.
Instead, programmers write the source code in a particular programming language, then, using a compiler, translate it in one or more stages into machine code ready for execution on the target processor, or into an intermediate representation that can be executed by a special interpreter a virtual machine.
But this is only true for high level languages.
If full low level control over the system is required at the level of machine commands and individual memory cells, programs are written in assembly language, whose mnemonic instructions are converted one by one into the corresponding machine language instructions of the target computer processor (for this reason, translators from assembly languages are obtained algorithmically by the simplest translators).
In some languages, instead of machine code, an interpreted binary code of the "virtual machine" is generated, also called byte code.
This approach is used in Forth, some implementations of Lisp, Java, Perl, Python, and languages for .NET Framework.
Screenshot of a code fragment in Java in the vim text editor, demonstrating syntax highlighting, Unicode support, folding
Notes[edit / edit wiki text]
Вир Wirth N. Algorithms + data structures = programs.
- Moscow: Mir, 1985; Wirth N. Algorithms and data structures.
New version for Oberon + CD.
Moscow: DMK Press, 2010.
ISBN 978-5-94074-584-6, 0-13-022005-9
↑ Ancient Greek Computer’s Inner Workings Deciphered.
National Geographic News.
November 29, 2006.
↑ Freeth, Tony; Jones, Alexander; Steele, John M.; Bitsakis, Yanis (July 31, 2008).
«Calendars with Olympiad display and eclipse prediction on the Antikythera Mechanism».
Nature 454 (7204): 614–617.
DOI:10.1038/nature07130.
PMID 18668103.
Literature[edit / edit wiki text]
Dijkstra E. Programming discipline = A discipline of programming.
- 1st ed.
- Moscow: Mir, 1978 — - 275 p. Bjarne Stroustrup.
Programming: Principles and practice of using C++, revised edition = Programming: Principles and Practice Using C++.
- Moscow: Williams, 2011.
- p. 1248 — - ISBN 978-5-8459-1705-8.
Alexander Stepanov, Paul Mac Jones.
The beginning of programming = Elements of Programming.
- Moscow: Williams, 2011.
- P. 272 — - ISBN 978-5-8459-1708-9.
Robert W. Sebesta.
Basic concepts of programming languages / Trans.
from English -5th ed.
- Moscow: Williams, 2001 — - 672 p.
— ISBN 5-8459-0192-8 (Russian) ISBN 0-201-75295-6 (English).
Ian Sommerville.
Software engineering / Trans.
from English -6th edition.
- Moscow: Williams, 2002 — - 624 p. Ian Graham.
Object oriented methods.
Principles and practice / Trans.
from English -3rd ed.
- Moscow: Williams, 2004 — - 880 p.
Links[edit / edit wiki text]
programming in Wiktionary?
Programming in a Wikiuchebnik?
Programming in Wikiversity?
Programming in Wikicitatnik?
Category:Programming in Wikitec?
Programming on Wikimedia Commons?
Programming in Wikinews?
Programming in the Open Directory Project (dmoz) link directory.
To improve this article, is it desirable?:
By putting footnotes, make more precise references to the sources.
p • o • r
The main directions of computer science
Mathematical Foundations Mathematical Logic · Set Theory · Number Theory · Graph Theory · Type Theory · Category Theory · Computational Mathematics · Information Theory · Combinatorics · Algebra of Logic
Algorithm theory Automata theory * Computability theory · Computational complexity theory · Quantum Computing theory
Algorithms, data structures Analysis of algorithms · Development of algorithms · Computational geometry
Programming languages, compilers Parser * Interpreter · Procedural programming · Object oriented programming · Functional programming · Logic Programming · Programming paradigms
Parallelism and parallel computing, distributed systems Multiprocessing * Grid computing
Software Engineering Requirements Analysis · Software Design · Programming · Formal Methods · Software Testing · Software Development
System architecture Computer architecture · Computer device · Operating system
Telecommunications, networks Computer sound · Routing · Network topology · Cryptography
Databases Database Management Systems · Relational Databases · SQL * Transactions · Database Index · Data mining
Artificial intelligence Automatic formation of judgments · Computational linguistics · Computer Vision · Evolutionary Modeling · Expert Systems · Machine Learning · Natural Language Processing · Robotics
Computer Graphics Visualization · Computer Animation · Image Processing
Human computer interaction Computer accessibility · User interfaces · Wearable computer · Ubiquitous computing · Virtual reality
Scientific Computing Artificial Life * Bioinformatics · Cognitive science · Computational Chemistry · Computational neuroscience · Computational physics · Computational algorithms · Symbolic mathematics
Note: Computer Science can also be divided into different topics or areas according to the ACM Computing Classification System.
p • o • r
Programming languages
Chronology
Assembler BASIC C C++ C# COBOL Fortran Java JavaScript (JS) Lisp Pascal Perl PHP Python Ruby Smalltalk Visual Basic .NET (VB.NET)
Category Comparison Lists:
By category Genealogical Not based on English
Software Development Process
Stages of Development • Requirements Analysis • Design • Programming • Testing • Integration • Escort
Concepts
Data Modeling • Software Architecture • Functional Specification • Modeling Language • Paradigm • Methodology • Development Process • Quality • Quality Assurance • Structural analysis)
Directions
Programming (Aspect oriented • Object oriented • Problem oriented) * Ontology • Service oriented architecture • Development cost estimation
Methodologies
developments
Agile • Cleanroom • CASE • Iterative Development • RUP • OpenUP • RAD • Scrum • MSF • Spiral • Cascade • XP • DSDM
Models
V Model • Dual Vee Model • CMM • CMMI * Data • Function model • IDEF • Information * Meta Model • Object model • View model • UML
Famous
public figures
Kent Beck • Gradi Butch • Fred Brooks • Barry Boehm • Ward Cunningham • Ole Johan Dahl • Tom DeMarco • Edsger Vibe Dijkstra • Donald Knuth • Martin Fowler • Charles Anthony Richard Hoare • Watts Humphrey • Michael Jackson • Ivar Jacobson • Craig Larman • James Martin • Meyer Bertrand • David Parnassus • Winston W. Royce • James Rumbaugh • Niklaus Wirth • Edward Jordan • Steve McConnell
Other
Computer science • Engineering (Computer • Software • System • Organizational) • Software Development History • Documentation • Management (Configuration • Projects • Programs • Quality • Requirements) * Ergonomics • Reverse engineering • Formal methods • Version numbering
Source — "https://ru.wikipedia.org/w/index.php?title=Programming&oldid=76047050"
Category: Programming
Hidden categories: Articles with links to Wiktionary Articles with links to Wikiuchebnik Articles with links to Wikiversity Articles with links to Wikicitatnik Articles with links to Wikiteca Articles with links to Wikinews Wikipedia:Link to Wikimedia Commons directly in the Wikipedia article:Articles without footnotes
Navigation
Personal Tools
You did not introduce yourself to the system Discussion Contribution Create an account Log in
Namespaces
Article Discussion
Variants
Views
Read Edit Edit wiki text History
More
Search
Navigation
Title Page Heading Index A Z Selected articles Random article Current Events
Participation
Report a bug Community Portal Forum Recent edits New pages Help Donations
Tools
Links Here Related Edits Special Pages Permanent Link Page Information Wikidata element Quote Page
Print/Export
Create a book Download as PDF Printable version
In other projects
Wikiuchebnik Wikinovosti Wikicitatnik
In other languages
Afrikaans Aragonés العربية مصرى Asturianu Belarusian Belarusian (tarashkevitsa) Blgarski ᨅᨔ ᨕᨘᨁᨗ বাংলা Bosanski Català Čeština Dansk Deutsch Zazaki Ελληνικά English Esperanto Español Eesti Euskara فارسی Suomi Français Galego עברית हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Italiano 日本語 Lojban Kazakh ភាសាខ្មែរ ಕನ್ನಡ 한국어 Latina Lietuvių Latviešu a Olyka Mari Macedonian മലയാളം Mongol Bahasa Melayu Nederlands Norsk nynorsk Norsk bokmål Occitan Polski Portuês Română Scots Srpskohrvatski / Srpskohrvatski Simple English Slovenčina Slovenščina Shqip Srpski / srpski Svenska தமிழ் ไทย Türkmençe Türkçe Ukrainka الردو O'zbekcha/yzbekcha TiếNg ViệT ייייייי 中 中文文
Edit links
Last modified on this page: 12: 17, January 27, 2016.
The text is available under the Creative Commons Attribution ShareAlike license; in some cases, additional conditions may apply.
For more information, see Terms of use.
Wikipedia® is a registered trademark of the non profit organization Wikimedia Foundation, Inc.
Contact us
Privacy Policy Wikipedia Description Disclaimer Mobile version Developers Cookie statement
