Programmiersprachen

Eine Programmiersprache ist eine formale Sprache, in der die Befehle geschrieben sind, die ein Computer ausführen muss. Diese Sprachen haben eine andere Syntax und Grammatik als natürliche Sprachen . Letztere sind zu komplex und zu vieldeutig, um als Programmiersprache zu fungieren. Code , der in einer Programmiersprache geschrieben wurde, sollte vom Computer nur auf eine Weise „verstanden“ werden.

Definition

Unter Programmiersprachen werden in der üblichen Definition Sprachen verstanden, die vollständig sind . Das heißt, es muss möglich sein, einen Interpreter für eine Turingmaschine in der Programmiersprache zu schreiben, und es muss möglich sein, einen Interpreter für die Programmiersprache auf einer Turingmaschine zu schreiben.

In einer Sprache, die nicht vollständig ist, kann eine kleinere Anzahl von Problemen gelöst werden als in einer vollständigen Sprache. In SQL können Sie beispielsweise die Gesamtzahl der Tabellen mit Daten berechnen, jedoch nicht die kürzeste Route zwischen zwei Punkten in einem Diagramm .

Es gibt mehrere Möglichkeiten , eine durch eine Software geschrieben Computerprogramm kann von einem Computer ausgeführt werden. Der Code, den der Entwickler sieht und verarbeitet, wird als Quellcode der Software bezeichnet. es muss irgendwie in die Maschinensprache des betreffenden Computers konvertiert werden, die vom Prozessor ausgeführt werden kann. Grundsätzlich gibt es folgende Möglichkeiten:

Übersicht

Der Programmierer gibt den Maschinencode direkt in den Speicher des Computers ein. Dies ist so unpraktisch und zeitaufwendig, dass es selten vorkommt.
Interpretation : Ein Interpreter liest den Text Stück für Stück aus dem Quellcode, interpretiert ihn in sinnvolle Anweisungen und führt ihn direkt aus, unterstützt durch eine Laufzeitbibliothek. Ein Programm, das auf diese Weise funktioniert, wird normalerweise als Skript bezeichnet, und die betreffende Programmiersprache ist eine Skriptsprache .
Assembler : Eine Assemblersprache ermöglicht das Schreiben von Programmen als Anweisungs- und Datensätze, die direkt in der Maschinensprache angezeigt werden können, in denen Sie jedoch etwas symbolischer arbeiten können, z. B. weil die Maschinenanweisungen Namen haben und Speicheradressen mit Namen versehen werden können und Makros können verwendet werden; Ein Assembler konvertiert solchen Code in Dateien mit Objektcode , die von einem Linker zusammen mit dem Objektcode , der bereits aus Softwarebibliotheken vorhanden ist, in ein ausführbares Programm kompiliert werden .
Kompilierung : Übersetzung des Quellcodes in eine andere Sprache (die Zielsprache ) durch einen Compiler . Die Zielsprache kann Assemblersprache sein. oder eine maschinenunabhängige Zwischensprache, die speziell für den Übersetzungsprozess entwickelt wurde ( Bytecode , auch bekannt als P-Code ), die dann kompiliert oder interpretiert werden muss; oder eine andere Programmiersprache.

Es gibt alle Arten von Zwischenformen und Varianten.

Eine höhere (dh kompilierte oder interpretierte) Programmiersprache soll es dem Programmierer ermöglichen, so klar und elegant wie möglich zu spezifizieren, was ein Programm tun soll, wenn der Programmierer über das Problem nachdenkt, ohne genau zu wissen, wie es vom Computer ausgeführt wird : Solche Sprachen bieten Abstraktionen auf hoher Ebene und sind maschinenunabhängig. In Assemblersprachen ist die Programmierung nur erforderlich, wenn bestimmte Kenntnisse über die genaue Funktionsweise des betreffenden Computers erforderlich sind, z. B. weil das Programm sonst zu viel Platz oder Zeit beanspruchen würde.

Bei der Kompilierung ist häufig eine Unterscheidung zwischen Aktionen erforderlich, die während der Verarbeitung des Quellcodes („zum Bearbeitungszeitpunkt“), während des Übersetzungsprozesses vom Quellcode zum Zielcode („zum Kompilierungszeitpunkt“) und während der Ausführung des Programms ausgeführt werden Zielcode (‚zur Laufzeit‘). Die Software kann den Programmierer in jeder dieser Phasen unterstützen, indem sie beispielsweise die Gültigkeit oder Sensibilität bestimmter Operationen oder Ausdrücke überprüft.

Die Codeoptimierung findet häufig während der Übersetzung statt . Ein einfaches Beispiel: Wenn während der Übersetzung eine Addition oder Subtraktion mit 0 im Zielcode auftritt, kann diese weggelassen werden.

Ein Programm, das mit einem Compiler in einen Zielcode übersetzt wurde, kann in der Regel – teilweise durch Optimierung – vom Computer schneller ausgeführt werden als bei Verwendung eines Interpreters, da dieser die Befehle immer zuerst in Maschinensprache konvertieren muss – das Äquivalent Die Kompilierung erfolgt zur Laufzeit. Viele Sprachen arbeiten jedoch mit einer Zwischenform, in der zum Zeitpunkt der Ausführung eines Programms noch eine Kompilierung zu Zwischencode und / oder Zielcode erfolgt: Just-In-Time-Kompilierung .

Die traditionelle Unterscheidung zwischen kompilierten Sprachen einerseits und interpretierten Sprachen (oder „Skriptsprachen“) ist daher nicht ganz richtig. Wenn eine interpretierte Programmiersprache beliebt ist, werden häufig Compiler (JIT oder andere) geschrieben, um sie zu beschleunigen. Es kommt auch vor, dass ein Interpreter für eine zuvor kompilierte Sprache oder ein Übersetzer von einer Programmiersprache in eine andere geschrieben ist.

0–9
4th Dimension
A
A
A#
A+
ABAP
ABC
Action
ActionScript
Active Oberon
ACUCOBOL
Ada
ADbasic
Adenine
AgentSheets & AgentCubes
Agilent VEE
AIMMS
Aldor
Alef
Aleph
ALGOL (ALGOL 60, ALGOL W, ALGOL 68)
Alice
AML
AmigaBASIC
AMOS BASIC
AMPL
AngelScript
ANSYS Parametric Design Language
Anweisungsliste (AWL)
A-0
APL
App Inventor
Applied Type System
AppleScript
Arden-Syntax
ARLA
ASIC
Atlas Transformation Language
Autocoder
AutoHotkey
AutoIt
AutoLISP
Automatically Programmed Tools (APT)
awk (awk, gawk, mawk, nawk)
B
B
B-0
BANCStar
BASIC, siehe auch Liste der BASIC-Dialekte
Basic Calculator
Batch
Bash
Basic Combined Programming Language (BCPL)
BeanShell
Befunge
Beta (Programmiersprache)
BLISS (Programmiersprache)
Blitz Basic
Boo
Brainfuck, Brainfuck2D
C
C
C++
C−−
C#
C/AL
Caml, siehe Objective CAML
CA-Realizer
Ceylon
C for graphics
Chef
CHILL
ChucK
CL
Clarion
Clean
Clipper
CLIPS
CLIST
Clojure
CLU
Cluster
Co-array Fortran
COBOL
Cobra
CoffeeScript
COMAL

COMIT
Common Lisp
Component Pascal
Comskee
CONZEPT 16
CPL
CURL
Curry
CycL
Cython
D
D
DarkBASIC
Dart
Datalog
Delphi, siehe Object Pascal
Digital Command Language (DCL)
Dylan
Dynamo
E
E
Easytrieve
Eiffel
ELAN
Elixir
Elm
Emacs Lisp
Enterprise Generation Language (EGL)
Erlang
ESPOL
Esterel
Euler
Euphoria
EXAPT
F
F (Variante von Fortran)
F#
Factor
Faust
FileMaker Script
FlagShip
Flavors
FLOW-MATIC
FOCAL (HP-41)
Forth
Fortran
Fortress
FRACTRAN
FreeBASIC
FreeMat
Funktionsbausteinsprache (FBS oder auch Siemens FUP)
G
G
Gambas
Game Maker Language (GML), siehe Game Maker
Gauss
GDScript
Generative Modelling Language (GML)
GFA-BASIC
Go
Gofer
GPSS (General Purpose Simulation System)
GrGen.NET
Grape
Groovy
H
Hack
HAL
Haskell
Haxe
High Level Shading Language (HLSL)
Hollywood
HQ9+
I
iCon-L
Industrial Robot Language (IRL)
Inform
Interactive Data Language (IDL)
INTERCAL
Io
ISWIM
J
J
J#
Jasmin
Java
JavaScript (JScript, ECMAScript, DHTML)
Job Control Language (JCL)
JOVIAL
Joy
JScript
JScript .NET
Julia
Jython (JPython)
K
KiXtart
Kontaktplan (KOP)
Kornshell
Kotlin
L
LabVIEW
Liberty Basic
Lingo
Limbo
Linda
Linden Scripting Language (LSL)
Linear Programming Language (LPL)
Lisp
Logo
LOLCODE
LotusScript
LPC
Lua
Luna
Lustre
Lite-C
M
M
M4
Malbolge
Maple
Mathematica
Matlab
Max/MSP
MDL
Mercury
Mesa
MetaQuotes Language (MQL4/MQL5)
Miranda
MIXAL
ML
Modula (Modula-2, Modula-2+, Modula-3)
Monkey X
MPD
MUMPS
N
Nasal
NATURAL
NetLogo
NeWS
Newsqueak
NewtonScript
NewLISP
Nice
Not Quite C (NQC)
Not eXactly C (NXC)
Nyquist
O
Oberon
Objective-C
Objective-C++
OCaml
Object Pascal
Occam
Octave
Opal
OPL
OpenGL ES Shading Language
OpenGL Shading Language
Ook!
Oz
P
Pacbase
Pascal
Pascal Script
PEARL
Perl
Phalanger
Pharo
PHP
Piet
Pike
PILOT
PL/0
PL/I
PL/M
PL/S
PL/SQL
Plankalkül
Posity
PostScript
POW!
PowerScript
PowerShell
Processing
PROGRES
Prolog (Arity Prolog, Turbo Prolog, Sicstus, CLP, CLPR)
PROSA
PureBasic
Pure Data
Python
Q
QuakeC
QML
R
R
REBOL
REXX
Robot Karol
RPG
Ruby
Rust
S
S
S-Lang
SabreTalk
SAIL (Stanford AI Language)
SassScript
Sather
Scala
Scilab
Scheme
Strukturierter Text (SCL)
Scratch
Script.NET
Server Side Includes (SSI)
Seed7
Self
SETL
Shakespeare
Shell (sh, ksh, bash, csh, zsh)
Simula
Simulink
Sing#
Slate
Sleep
Smalltalk
Snap!
SNOBOL4
Solidity
Spec#
Specification and Description Language (SDL)
Squeak
Squirrel
SR
Standard ML (SML)
StatPascal
StepTalk
STOS BASIC
Strongtalk
StarOffice Basic (auch bekannt als StarBasic und OOoBasic)
Swift
SuperCollider
System Management Language (SML)
T
TACL
TAL (Transaction Application Language)
Tcl
TECO
TELON (auch CA-Telon)
TI-Basic
Timing Definition Language (TDL)
Transact-SQL
TTCN
TTCN-3
Turbo Pascal
Turing
TypeScript
U
UnrealScript
V
Vala
VEE
Visual Basic Classic (VB)
Visual Basic .NET (VB.NET)
Visual Basic for Applications (VBA)
Visual Basic Script (VBScript)
Visual FoxPro
Visual J++
Visual Objects (VO)
Vienna Definition Language (VDL)
VisSim
Vulcan.NET
vvvv
W
Web
Web Language
Whitespace
WinDev
WordBasic
WMLScript
Wyvern
X
X10
Xbase++
XL
XL (XML-Programmiersprache)
Xojo
XProfan
XSL Transformation (XSLT)
Xtend
Z
Zonnon