Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDonnerstag, 21. August 2014 

Programmiersprache


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Eine Programmiersprache ist eine formale Sprache zur Darstellung (Notation) von Computerprogrammen . Sie vermittelt dem Computersystem durch von Menschen geschriebenen Text genaue Angaben zu einer von internen Verarbeitungsschritten beteiligten Daten und deren in Abhängigkeit von internen oder externen Ereignissen.

Da digitale Computer intern nur die Werte 0 und verarbeiten wäre es nach heutigen Maßstäben extrem und mühsam die vielen Formen der Informationsverarbeitung Binärzahlen einzugeben (zu kodieren). Daher haben sich den letzten Jahrzehnten Verfahrensweisen etabliert nach denen häufig verwendete Zahlen und Zeichen und häufig grundlegende Operationen in symbolischen Befehlen angibt. Eine technische Einrichtung übersetzt dann diese Angaben in Daten einfachste Datenänderungsbefehle und Kontrollanweisungen die der dann schließlich ausführt.

Wird ein Programmtext als Ganzes übersetzt spricht man in Bezug auf den von einem Compiler . Der Compiler ist selbst ein Programm als Dateneingabe den menschenlesbaren Programmtext bekommt und Datenausgabe den Maschinencode liefert der direkt vom Prozessor verstanden wird (z.B. Objectcode EXE-Datei) oder einer Laufzeitumgebung (z.B. JVM oder .NET ) ausgeführt wird. Wird ein Programmtext hingegen für Schritt übersetzt und der jeweils übersetzte sofort ausgeführt spricht man von einem Interpreter . Interpretierte Programme laufen meist langsamer als

Eine logische Abfolge von Befehlen in Programmiersprache nennt man allgemein Programm Programmcode oder Quelltext . (Quelltext betont besonders die Lesbarkeit). Dieser von Programmierern verfasst.

Inhaltsverzeichnis

Elemente einer Programmiersprache

Die meisten Befehle einer Programmiersprache lassen auf 5 Hauptkategorien zurückführen:

  • Eingabe = input
Daten von der Tastatur von einer oder anderswo her übernehmen.
  • Ausgabe = output
Daten ausgeben: auf den Monitor auf Drucker oder in eine Datei
  • Mathematische Berechnung
Eine mathematische Berechnung wie Addition oder oder Ähnliches durchführen.
  • Vergleich und Auswahl
Bestimmte Bedingungen überprüfen und anhand des entscheiden welche Befehle als nächstes ausgeführt werden.
  • Wiederholung
Eine Befehlsfolge wiederholt durchführen meist mit gewissen Variation .

Eine andere Kategorisierung sieht wie folgt

  • Arbeiten mit Variablen
Zuweisen Auslesen und Ändern von Speicherinhalten
  • Elementare Mathematik
zumindest die vier Grundrechenarten
  • Bedingte Verzweigung
Abhängig von einer Bedingung wird ein Programmfluss ausgewählt
  • Schleifen
Wiederholen von Programmteilen abhängig von Bedingungen
  • Blockbildung
Zusammenfassung mehrerer Befehle zum Beispiel einer in einem Unterprogramm
  • Umgang mit nicht mathematischen Elementen
zum Beispiel mit Text Bildern Sound...
  • Kommentare
Die meisten Programmiersprachen ermöglichen es Kommentare den Programmtext einzufügen.

Jede Programmiersprache hält Vereinbarungen bezüglich Syntax Vokabular und Bedeutung bereit für:

  • Daten und Datenstrukturen
  • Befehle und Befehlsgruppen
  • Bezugnahmemechanismen und Wiederverwendung
  • zumeist eine primäre Designphilosophie

Daten und Datenstrukturen

Um die üblichen Arten von Informationen Computer abbilden zu können müssen Möglichkeiten zur von Daten oder Datenstrukturen bereitstehen auch als Datentyp bezeichnet. Hierbei kann zwischen typsicheren (zum C++ oder Java ) und typenlosen Sprachen (zum Beispiel JavaScript Tcl oder Prolog ) unterschieden werden. Bei typsicheren Sprachen sind entweder vordefinierte Einheiten für einzelne Zahlen ( Byte Integer Word etc.) und Zeichen ( Char ) oder auch zusammengesetzte für Daten Wörter sensorische Information und so weiter (Strukturen Klassen). besteht auch die Möglichkeit zusammengesetzte Objekte oder aufzubauen und als neuen Typ zu vereinbaren (etwa Arrays Listen Stacks Dateien). Die typenlosen Sprachen behandeln oftmals alle als Zeichenketten und kennen für zusammengesetzte Daten eine Liste (zum Beispiel Perl ).

Befehle und Befehlsstrukturen

Konzeptionell ist ein programmierbarer Rechner weit als eine Sammlung von Daten und auch starre Rechenmaschine. Vielmehr wird angegeben wie der mit variablen internen oder externen Daten zu hat. Elementare Anweisungen geben über Schlüsselwörter (key an WANN WAS WIE geändert werden soll. Sprache enthält eine WENN-DANN-artige Anweisung die letztlich mit dem Sprungbefehl ( GOTO ) die Universalität bereitstellt um allgemein auf Fälle reagierende Programme schreiben zu können. Falls für Schleifen mit Bedingungen (Bedingung zuerst dann oder: erst Anweisungsgruppe und dann Bedingung) zur stehen kann auf den Sprungbefehl vollständig verzichtet Niklaus Wirth hat dies mit Pascal gezeigt.

Bezugnahmemechanismen und Wiederverwendung

Der Kern der Bezugnahme ist die von Speicherplatz als so genannte Variable . Weitere Bezugnahmen sind Zeiger auf solche oder Variablengruppen. Auch Befehlsgruppen werden im Programm Namensaufruf als Prozedur oder Funktionsaufruf verfügbar gemacht. diese Weise wird durch Symbole einerseits eine Variabilität erreicht und durch Referenz auf vorhandene oder Datenteile andererseits ein hohes Maß an erreicht. Viele anwendungsbezogene Sprachen integrieren typische Aufgaben aufrufbare Befehle.

Entwurfsphilosophie

Für die oben genannten Zwecke hat Sprache meist eine besondere Philosophie entwickelt. Es der eine oder andere Aspekt besonders betont. Datenstrukturen oder Freiheit in der Notation oder was Zeigerstrukturen angeht.

Die meisten Sprachen bieten eine gute fordern aber auch ein hohes Maß an bezüglich Fehlerfreiheit. Programmiersprachen sind nicht fehlertolerant was Hilfen aber abgemildert ist. Einige wenige Sprachen große gestalterische Freiheiten bis hin zum sich verändernden Programm: dazu gehört Maschinensprache und auch

Die Entwicklung von Programmiersprachen selbst ist Aufgabe der Informatik. Die syntaktische Definition einer wird meist in der formalen Notation Backus-Naur-Form sowie Kontextbedingungen angegeben. Eine vollständige Spezifikation Programmiersprache in einem einzigen Kalkül ist Forschungsgebiet erst ansatzweise gelungen.

Geschichte

Anfänge

Erste Arbeiten stammen bereits von Lady Countess of Lovelace ( 1815 - 1852 Assistentin von Charles Babbage ) die als erste das Prinzip der Programmierbarkeit erkannte. Dies entwickelte sich erst spürbar mit Entwicklung der ersten elektronischen Rechenmaschinen und Verwendung der booleschen Algebra .

Meilensteine sind ca. 1937 Patente von Konrad Zuse die die beschreiben die später als Von-Neumann-Maschine bekannt wird sowie 1945 die Fertigstellung von Plankalkül durch Zuse. Die ersten praktisch eingesetzten sind FORTRAN ( 1954 John Backus) COBOL ( 1959 Grace Hopper ) LISP (1959 McCarthy) ALGOL-60 ( 1960 Strukturierte Programmierung)) und weitere (siehe Tabelle).

Inzwischen ist eine riesige Zahl von entstanden und es gibt einen evolutionären Prozess gegenseitiger Adaptierung. Eine wichtige Rolle spielen dabei die Standardisierungs-Organisationen ( ISO ). Die vorgenannten Sprachen existieren bis heute.

Kurze Zeittafel

~1840 --'Erstes Programm' (Ada Lovelace)
1947 -- Plankalkül ( Konrad Zuse )
1954 -- FORTRAN (John Backus)
1958 -- ALGOL
1959 -- LISP ( McCarthy )
1960 -- COBOL ( Grace Hopper )
1960 -- BASIC (Kemmeny Kurtz)
1962 -- APL
1964 -- PL/1 ( Heinz Zemanek )
1965 -- Simula
1968 -- Logo (Seymour Papert)
1969 -- BCPL
1970 -- Forth
1971 -- Pascal ( Niklaus Wirth Kathleen Jensen)
1972 -- C ( Brian W. Kernighan Dennis Ritchie Ken Thompson )
1975 -- Prolog (Colmerauer et. al.)
1978 -- Modula-2
1980 -- Smalltalk
1980 -- Ada
1983 -- Objective C (ObjC) (Brad Cox)
1983 -- C++ ( Bjarne Stroustrup )
1987 -- Perl ( Larry Wall )
1988 -- Tcl ( John Ousterhout )
1991 -- Python (Guido van Rossum)
1995 -- Delphi (auf Pascal basierende visuelle Entwicklungsumgebung Borland)
1995 -- Java ( Sun Microsystems )
1997 -- PHP ( Rasmus Lerdorf
2001 -- C# ( Microsoft im Rahmen von .NET )
Siehe auch die ausführliche Zeittafel der Programmiersprachen .

Die Entwicklung hat dahin geführt dass Universalisten am weitesten verbreitet sind d.h. diejenigen (wie C++ ) die weitestgehend alle wichtigen Aspekte integriert Hierzu gehören auch neuere Konzeptionen wie die objektorientierten Programmierung die Daten- Prozedur- und Referenzaspekte dem einzigen Konzept des Objekts vereinigt.

Aktuelle Entwicklungen

Neuere integrierte visuelle Entwicklungsumgebungen haben deutliche gebracht was Aufwand an Zeit Kosten (und angeht. Bedienoberflächen lassen sich meist interaktiv gestalten Codefragmente sind per Klick direkt erreichbar.

Weitere Arbeitserleichterungen sind vorgefertigte Komponenten und mit wiederverwendbarem Code. Dazu kann objektorientierte Methodik die Komplexität von Programmen erheblich reduzieren. Diese markieren gleichzeitig den Übergang von einer eher Kunst zu einem mehr industriell organisierten Prozess.

Besondere Ausprägungen

Im Folgenden werden diverse Klassen von unterteilt nach Anwendungsbereich oder zugrundeliegendem Paradigma vorgestellt.

Maschinensprache

Maschinensprache ist der direkt auf einem Prozessor Code und in diesem Sinne keine Programmiersprache. Prozessorarchitektur hat eine eigene unterschiedliche Maschinensprache.

Assemblersprachen

Assemblersprachen gehören immer direkt zu ihrer Maschinensprache. Die Maschinenbefehle werden jedoch in einer Form geschrieben. Weiter wird mittels Symbolen adressiert absoluten Adressen werden vom Assembler errechnet. Auch symbolische Konstanten benutzt und Makros die häufig Befehlsfolgen repräsentieren definiert werden.

Datenstrukturen

LISP verwendet als konzeptionelle Hauptstruktur Listen. Auch Programm ist eine Liste von Befehlen die Listen verändern. FORTH verwendet als konzeptionelle Hauptstruktur Stacks und

Logische Sprachen

Prolog orientiert sich in bezug auf Daten- Evaluationsmechanismus an der Prädikatenlogik . Sie kann damit als Spezialfall der Funktionalen Programmierung aufgefaßt werden.

Prozedurale Sprachen

AWK BASIC C COBOL FORTRAN Pascal PL/1 REXX sind Vertreter der prozeduralen Familie in Anweisungen hintereinander abgearbeitet werden.

Objektorientierte Sprachen

Smalltalk Eiffel Modula-3 C++ Java C# Delphi/ObjectPascal und Oberon sind objektorientierte Sprachen. In objektorientierten Programmiersprachen Datenstrukturen und Methoden die auf diesen Datenstrukturen in Klassen gekapselt.

Funktionale Sprachen

LISP (Hybridsprache) Logo (Programmiersprache) ML (Programmiersprache) Scheme Haskell

regelbasierte Sprachen

Bei regelbasierten Sprachen wie OPS-5 oder Prolog werden Regeln gegen eine Datenmenge auf Instanziierbarkeit geprüft. Aus allen Regelinstanziierungen wird eine alle) ausgewählt und die zur Regel gehörenden werden ausgeführt.

Visuelle Programmierumgebungen

Die Programmierung wird erleichtert da zwischen
  • Eigenschaften von Objekten
  • der Lage von Objekten auf dem und
  • dem eigentlichen Code
unterschieden wird. Beispiele: Visual Basic Visual Delphi (Sprache: Pascal) Kylix (Delphi/C++ für Linux) KDevelop (Sprache: C++) Microsoft Visual Studio

Daneben wird der Begriff Visuelle Programmierung auch für Programmiersprachen benutzt bei denen Programmstruktur graphisch in Diagrammen erzeugt wird. Diese sich jedoch nicht auf breiter Basis durchgesetzt.

"Esoterische" Programmiersprachen

Sprachen die nicht für Real-Welt-Programmierung sondern als anspruchsvolle Scherze gedacht sind. Beispiele: Brainfuck Ook False Shakespeare

Anwendungsbezogene Sprachen und Systeme

Datenbanksysteme: dBase Clipper (Programmiersprache) Paradox (Programmiersprache) . EASY

Programmieren

Programmieren ist eine anspruchsvolle Tätigkeit und erfordert Ausdauer abstraktes Denkvermögen Kreativität und hohe Lernbereitschaft. Unterschiedlichste Aufgaben müssen die Symbole der Programmiersprache transferiert werden.

Das Programmieren als dieses reine Kodieren nur ein Teil der Tätigkeit eines guten der zum gesamten Softwareentwicklungsprozess beitragen können sollte: Analyse Entwurf Prototyping Realisation Testen Einführung Dokumentation Konsolidierung. Erheblichen Aufwand nimmt auch das genannte Debuggen ein also die Diagnose oder Fehlersuche.

Berufe: Softwareentwickler Anwendungsentwickler Systemprogrammierer Organisationsprogrammmierer ...

Siehe auch: Liste der Programmiersprachen Algorithmus Datenbanksysteme Informatik Softwaretechnik Hallo Welt Quine

Weblinks



Bücher zum Thema Programmiersprache

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Programmiersprache.html">Programmiersprache </a>