Das Programmieren ist das Schreiben eines Computerprogramms , eines bestimmten Satzes von Anweisungen , die ein Computer ausführt. Dies ist die Aufgabe eines Softwareentwicklers oder Programmierers. Die Programmierung erfolgt in der Regel nicht direkt in Maschinensprache , sondern in einer Programmiersprache . Der geschriebene Programmcode wird als Quellcode bezeichnet und von einem Assembler , Compiler oder Interpreter in Maschinencode umgewandelt.
Mit Compilern, die dieselbe Programmiersprache in verschiedene Maschinensprachen konvertieren, wird es möglich, Software zu schreiben, die nicht an einen bestimmten Prozessor gebunden ist . Darüber hinaus unterstützt eine Programmiersprache eine höhere Abstraktionsebene als Maschinensprache, sodass Programme leichter zu verstehen und zu ändern sind.
Der Umfang der Programmierarbeiten ist sehr unterschiedlich. Viele Programme bestehen aus ein paar Zeilen Quellcode, die nach einmaliger Verwendung verworfen werden. Programme mit Millionen von Quellcodezeilen, die seit Jahrzehnten von Tausenden von Programmierern verwendet und angepasst werden, sind jedoch keine Seltenheit.
Die Art der Programmierung kann ebenfalls sehr unterschiedlich sein: Unterschiedliche Arten von Anwendungen erfordern unterschiedliche Kenntnisse. Ein Programm, das über eine grafische Benutzeroberfläche mit Endbenutzern kommuniziert, verwendet beispielsweise Fenster , Textblock , ausfüllbaren Textblock und komprimierbare Schaltfläche , während ein statistisches Berechnungsprogramm beispielsweise die Unterstützung von Varianz und Exponentialverteilung umfasst .
Aus diesem Grund verfügen viele Programmiersprachen über alle Arten von anwendungsspezifischen Bibliotheken . Darüber hinaus wird eine bestimmte Programmiersprache häufig als weniger geeignet angesehen, um bestimmte Arten von Programmen auszudrücken, da die von der Sprache unterstützten Ausdrucksweisen nicht gut zum Problem passen. Dies führt oft zur Entwicklung neuer Sprachen.
Es gibt daher Tausende verschiedener Programmiersprachen, von denen die meisten noch in Gebrauch sind und sich ständig ändern, z. B. natürliche Sprachen .
Ein Programm kann auch verschiedene Sprachen kombinieren. Professionelle Softwareentwickler sind auf bestimmte Sprachen und bestimmte Arten von Anwendungen spezialisiert, da es so viele Programmiersprachen gibt.
Methoden
- Zurückverfolgen
- Extreme Programmierung
- Funktionale Programmierung
- Strukturierte Programmierung
- Objektorientierte Programmierung
- RUP
- SADT
- Einheitlicher Software-Entwicklungsprozess
Weitere Themen rund um Programmierung
A
Abbruchbedingung
Ablaufverfolgung
Abstrakte Interpretation
Adele (Algorithmenbeschreibungssprache)
Agentenorientierte Programmierung
Aliasing
Android-Softwareentwicklung
ANSI-Escapesequenz
Anweisung (Programmierung)
Anwendungsprogrammierer
B
Baltische Informatik-Olympiade
Jean Bartik
Binärkompatibilität
Blackboard
Boilerplate
Bootstrapping (Programmierung)
C
Clean Code
Closure (Funktion)
Code-Smell
Codecademy
Command-Query-Responsibility-Segregation
Command-Query-Separation
Compiler-Anweisung
Computerprogramm
Continuation-Passing Style
Crack (Software)
CrackMe
Crt0
Currying
D
Dangling else
Datenflussanalyse
Datensegment
Datenvalidierung
Debugger
Defensives Programmieren
Design by contract
Dienst (Informatik)
Difference List
DLL-Injection
Dreieckstausch
DTrace
DYCP
Dynamische Programmiersprache
Dynamische Typisierung
E
Einrückungsstil
Einsprungpunkt
Endlosschleife
Entscheidungstabelle
Ereignis (Programmierung)
Ereignisschleife
Escape-Sequenz
Eval
Event Tracing for Windows
F
Fehlercode
Fehlertoleranz
G
Game Loop
Gerrit (Software)
Glue Code
Google Summer of Code
Growth Hacking
H
Hack
Hallo-Welt-Programm
Liste von Hallo-Welt-Programmen/Assembler
Liste von Hallo-Welt-Programmen/Höhere Programmiersprachen
Liste von Hallo-Welt-Programmen/Sonstige
Haltepunkt (Programmierung)
Hartkodiert
Homoikonizität
Hook (Informatik)
I
In-System-Programmierung
Include
International Conference on Functional Programming
Internationale Informatik-Olympiade
Interrupt
Invariante (Informatik)
ISO 5807
Iteration
Iterative Programmierung
K
Kata (Programmierung)
Klassenpfad
Konstante (Programmierung)
Konstruktoren und Destruktoren
Kopplung (Softwareentwicklung)
Krugle
L
L-Wert (Programmierung)
Laufzeit (Informatik)
Laufzeitumgebung
Lines of Code
List Comprehension
Literal
LiveCode
Loop unrolling
M
Magic-Cookie
Magische Zahl (Informatik)
Makrorecorder
Manhattan Routing
Marshalling
Maximale Laufzeit
Memory Mapping
Metaprogrammierung
Metasyntaktische Variable
Modifizierbarkeit
Mort, Elvis, Einstein
N
Nachrichtenaustausch
Namenskonvention (Datenverarbeitung)
Nassi-Shneiderman-Diagramm
Nicht-blockierende Synchronisation
Nightly Build
Nullwert
O
Opcode
Operatorassoziativität
Operatorrangfolge
P
Paarprogrammierung
Patch (Software)
Persistenz (Informatik)
Phabricator
Plattformunabhängigkeit
Polyglottes Programm
Praktomat
Preloader
Programmanalyse
Programmausdruck
Programmcode
Programmierstil
Programmiertrick
Project Euler
Punktoperator (Programmiersprachen)
Q
Quelltext
Quelltextformatierung
Quelltextklon
QuickHull
Quine (Computerprogramm)
R
Real Time Object Oriented Modeling
Reddick-Namenskonvention
Redundanter Code
Refactoring
Referenzielle Transparenz
Referenzzählung
Reflexion (Programmierung)
Regulärer Ausdruck
Ressource (Software)
Return Code
Rich Communication Services
Rückruffunktion
S
Sättigungsarithmetik
Schleifeninvariante
SECD-Maschine
Selbstmodifizierender Code
Sentinel (Programmierung)
Serialisierung
Service-oriented Computing
Shebang
Shim (Informatik)
Sichtbarkeit (Programmierung)
Signal-Slot-Konzept
Signatur (Programmierung)
Skeleton (Programmierung)
Software-Interrupt
Softwareentwickler
Codequalität
Sprungmarke
Stacktrace
Stapelspeicher
Stub (Programmierung)
Systemprogrammierung
T
Tag des Programmierers
Technische Schulden
Teile-und-herrsche-Verfahren
Thunk
Timeout (Netzwerktechnik)
Toter Code
Trait (Programmierung)
Trampolin (Informatik)
U
Überschreiben (Programmierung)
Übersetzungszeit
Umgebungsvariable
Ungarische Notation
User Defined Function
V
Validierung (Informatik)
Van-Emde-Boas-Vorrangwarteschlange
ViolaWWW
Visuelle Programmiersprache
W
W3Schools
Werkstattprogrammierung
Wide-Format und Long-Format
Windows Workflow Foundation
Workaround
Wrapper (Software)
Y
Yoda Conditions
Z
Zeiger (Informatik)
Zentraleuropäische Informatik-Olympiade
Zero One Infinity
Zuweisung
Zuweisungskompatibilität
Zwischenstand
A
AirPair
Algoid (programming language)
Algorave
Asynchronous procedure call
Asynchrony (computer programming)
B
Bayesian program synthesis
Best coding practices
Binary repository manager
Bitpit
Boolean flag
C
Characteristic based product configurator
Cheat sheet
Code Club
Code Words
Codecademy
CodeCombat
CodeHS
CoderDojo
Codewars
Compile and go system
Computer code
Computer network programming
Computer program
Computer programming in the punched card era
Conditional operator
Creative coding
D
Daily build
Dangling else
Derivative code
Design-Oriented Programming
Deutsch limit
Directive (programming)
E
End-user development
Energy modeling
Engineering Code Snippets Project
Entry point
EPANET
Event (computing)
Event cascade
Example-centric programming
Existence detection
Explicit parallelism
F
Feature toggle
Flatiron School
Flowchart
Floyd’s triangle
Fluxus (programming environment)
Free variables and bound variables
FreeCodeCamp
Fully qualified name
Function prototype
G
Garbage (computer science)
Gateway (computer program)
Geocoder (Ruby)
Gerrit (software)
Ghana Code Club
Global Offset Table
Glue code
Gnits standards
Grist (computing)
H
Hacker
Hand coding
Happy path
I
Identity transform
Integrated Water Flow Model (IWFM)
Invariant (computer science)
Ixi lang
K
Kata (programming)
L
LaunchCode
Lighthouse Labs
Lightweight programming language
List of program transformation systems
Live coding
Locks-and-keys
M
Macro instruction
Makers Academy
MobileNotifier
N
Nassi–Shneiderman diagram
National Computer Rank Examination
Natural-language programming
Nested quotation
Nesting (computing)
Neutral build
Nondeterministic programming
O
Object-based language
Observer effect (information technology)
OLE DB for OLAP
OLE DB provider
One-liner program
Opaque pointer
Opaque predicate
Open Agent Architecture
Open collaboration
Open Database Connectivity
Open energy system models
P
Persistence (computer science)
Phase distinction
Pointer aliasing
Polyglot (computing)
Polyglot persistence
Predeclared
Privatization (computer programming)
Procedural design
Proggy programming fonts
Program comprehension
Program-specific information
Programming interview
Programming model
Proto.io
Psychology of programming
R
Recursive transcompiling
Refinement (computing)
Reverse architecture
Rewrite (programming)
Rosalind (education platform)
S
Scaffold (programming)
Self-documenting code
Self-hosting
Self-hosting (compilers)
Self-relocation
Services computing
Side effect (computer science)
Sigar (software)
Signature program
Signed overpunch
Skeleton (computer programming)
Softcoding
Software build
Software craftsmanship
Sonic Pi
Standalone program
Stanza (computing)
Stripped binary
The Structure and Interpretation of the Computer Science Curriculum
SwitchUp
System time
Systems programming
T
Taint checking
Third-party software component
TidalCycles
Timeout (computing)
Tombstone diagram
Toy program
Transient (computer programming)
Treehouse (company)
U
Unspecified behavior
V
Variadic template
Voodoo programming
W
Winner-take-all in action selection
Workspace
Y
Yoda conditions
Young Rewired State
Ρ
Portal:Computer programming