Programmiersprachen


Programmiersprachen sind künstliche Sprachen , die ausgelegt sind , auf einem Computer Berechnungen durchzuführen. Programmiersprachen für verwendete Programmierung , die Computerprogramme zu erstellen ist, und zum Ausdruck bringen Algorithmen genau.

Einige Programmiersprachen haben irgendeine Form von formalen Definition oder Beschreibung dessen , was möglich ist , in der Sprache auszudrücken und wie es gemacht wird . Eine solche Definition oder Spezifikation kann in Syntax (Form / Grammatik) und Semantik (Bedeutung) unterteilt werden. Andere Programmiersprachen sind lose von Handbüchern definiert, aktuelle Verwendung oder einen bestimmten Übersetzer / Dolmetscher , eine so genannte Referenz – Implementierung.

Die frühesten Programmiersprachen vor dem modernen Computer. Sie wurden verwendet , um das Verhalten bestimmter zu lenken Weberei und selbstspiel Klaviere. Tausende von Programmiersprachen sind seit erstellt wurden, in erster Linie für moderne Computer, und viele neue jedes Jahr erstellt.

Programmierparadigmen

Hauptartikel: Programmierparadigma

Die meisten Programmiersprachen fallen in ein oder mehr Programmierparadigmen . Unter diesen sind die beliebtesten sind heute procedurel Programmierung , objektorientierte Programmierung und funktionale Programmierung , obwohl viele neue Paradigmen kommen mit neuen Problemen zu befassen. Es gibt keinen einzigen Weg Programmierparadigmen zu teilen. Eine weitere allgemeine Art und Weise zu klassifizieren Programmiersprachen sind die Paradigmen des Imperativ und deklarativer Programmierung .

Neben der Programmierung gibt es andere Computersprachen schließen. Zum Beispiel der Auszeichnungssprache HTML im Internet populär, aber es ist keine Programmiersprache , da es Programme oder Berechnungen nicht ausdrücken.

Proceedings des Quellcodes

Hauptartikel: Compiler

Der Text , wie er zum Ausdruck bringt mit einer Programmiersprache namens Quellcode . Der Quellcode neu geschrieben meist zu Maschinencode ein Programm, das den Quellcode interpretiert und übersetzt, genannt Compiler oder einfach nur einen Übersetzer. Maschinencode wird in einer Programmiersprache , der Anweisungen ausgedrückt kann direkt auf Ihrem Computer ausgeführt werden. Hier sind also sehr einfach die Anweisungen , die in vielerlei Hinsicht ungeeignet für Programmierer, sondern nur geeignet für Computer.

In anderen Fällen siedelten Quellen Recht des Programms , das es interpretiert, ohne Einnahmen in Maschinencode. Diese Programme sind Dolmetscher genannt (engl. Interpreter ) und Programmiersprachen , die diese statt Übersetzer verwenden wird oft als bezeichnet Skriptsprache . Skriptsprache ist auch die Programmierung.

Syntax

Die Gesamtform einer Programmiersprache nimmt Gestalt an, nachdem sie durch die Sprache der Syntax angegeben. Eine Syntax der Programmiersprache ist vergleichbar mit dem natürlichen Sprache Syntax: Es grammatikalische Regeln der Sprachkonstrukte sind, die miteinander in Kombination eingesetzt werden kann. Ein Vorteil von Programmiersprachen ist , dass sie mit einer oft einfachen und vollständiger regulären Syntax definiert werden können, im Gegensatz zu natürlichen Sprachen. Die meisten Programmiersprachen sind in Textform ausgedrückt, aber einige verwendet grafische Darstellung wie Pfeildiagramme .

Die Syntax von Programmiersprachen ist eine endliche Menge von Regeln eines Ausdruck bringt in der Regel unter Verwendung von regulären Ausdrücken und Backus-Naur Form Ausdruck (BNF). Ein Beispiel für einen regulären Ausdruck ist [AZ] +, die eine oder mehr Großbuchstaben bedeuten, und ein Beispiel für eine einfache Sprache , die von BNF ausgedrückt:

Ausdruck :: = Atom | Anzahl | zusammengesetzt
Atom: = [ 'A' - 'Z'] +
Zahlen: = [ '0' - '9'] +
zusammengesetzt: = '(' Ausdrücke ( '+' | '-' | '*' | '/') Ausdruck ')'

Diese Sprache ermöglicht Ausdruck in einer Form, wo Zahlen ohne Vorzeichen und unbekannt in großen Buchstaben können mit zusammengebaut werden. Die vier Regeln der Arithmetik, wo Klammern für die Zusammensetzung sind zwingend erforderlich. Beachten Sie jedoch, dass diese offensichtliche Interpretation der Grammatik der Sprache Semantik gehören, dh die Bedeutung der Symbole 0-9 positive ganze Zahl ohne Vorzeichen sind und so weiter.

Es gibt viele andere Möglichkeiten , um eine Programmiersprache Grammatik, einschließlich auszudrücken kontextfreien Grammatiken .

Semantics

Nicht alle syntaktisch korrekte Programme sind semantisch korrekt. In natürlicher Sprache entspricht grammatisch korrekt Unsinn Sätze zu bilden. Im Gegensatz zu natürlicher Sprache, in der Nonsense-Sätze auch etwas implizierte für Einzelpersonen, erwartete Programmierung bedeuten können eine eindeutige Interpretation haben. Das obige Beispiel führt zu (5/0) zu schreiben, die eine typische mathematische gegeben Semantik der Sprache nicht möglich ist. Ein Beispiel für eine echte Programmiersprache in syntaktisch korrekt, aber semantisch falsch Ausdruck, wenn Sie eine Variable, die eine Zahl enthält, aber Sie versuchen, die Variable als Funktion zu verwenden.

Einige Programmiersprachen haben eine gut definierte Syntax als Ganze Sprache kann durch BNF oder dergleichen neu bewertet werden. Andere definieren nur Sprachsyntax, was der Übersetzer / Dolmetscher akzeptieren.

Typ – System

Hauptartikel: Datentyp

Eine Art von System definiert , wie eine Programmiersprache , stuft Werte und Ausdrücke , so dass jeder von ihnen hat Typen , die sich voneinander unterscheiden. Eine Art von System definiert auch , wie die Typen zueinander verhalten. Der Zweck einer Art von System ist , um zu überprüfen und um die Programme zu einem gewissen Grad abgestürzten zu erzwingen.

Einige Programmiersprache ermöglicht es , vorübergehend bricht aus der Art des Systems (zum Beispiel durch Gießen eines Variablentyp in einen anderen, die in der C möglich ist, C ++ und Java). Es kann ein Vorteil sein , wenn Sie zum Ausdruck bringen möchten , ist tatsächlich ein gültiges Programm, obwohl Art System sie nicht annehmen können, aber es ist ein Nachteil bei dieser Art von System nicht mehr einen Sinn in diesem Teil des Programms dient. IC kann sich unter anderem in Segmentation Faults und Java – Ausnahme kann Nullpointer geworfen.

Andere Programmiersprachen nutzen Typinferenz , so dass die Programmierer nicht Typen für alle Ausdruck zu annotieren muss. Typinferenz tritt häufig in der funktionsorientierten Programmierung und führt zu der Quellcode weniger Platz in Anspruch nimmt.

Die Studie über Typen und Typsysteme werden als Typ Theorie .

Typisiert und utypede Sprache

Eine Programmiersprache namens üblich getippt , wenn es zu einem gewissen Grad ist Typ verwendet.

Unter utypede Sprachen ist Assemblersprache , wo jeder Betrieb kann auf jede Menge von Daten durchgeführt werden. Unter utypede Programmierung der höheren Ebene sind BCPL und einige Varianten von Forth .

Sie können typisiert Sprache auf verschiedene Weise kategorisieren, auch im stark / schwach oder statisch / dynamisch , je nachdem wie strikst Typ – System ist und wo in dem Prozess der Übersetzung des Programms und Abrechnung , die Typprüfung durchgeführt wird. Einige Programmiersprachen unterstützen die sogenannten abhängigen Typen (Eng. Abhängige Typen ) , wobei jeder Typ jeden Wert angibt , kann die (entgegengesetzte Typen nehmen Int und schwebt in der herkömmlichen Programmiersprache, die Werte in einem weiten Bereich annehmen kann).

In der Praxis einige Programmiersprachen getippt aus einer Art theoretischer Perspektive (System , dessen Typ kann die gesamte Programm Richtigkeit nicht überprüfen) – modernste Programmierung ermöglicht ein gewisses Maß an Art von Stärke, und viele erlauben Typen System zu umgehen, zum Beispiel. Typecasting , wo ein Wert eines Typs vorgeblich ein Wert von einem anderen Typ sein.

Generations

Traditionell haben die Menschen versuchen , von der Programmierung in einer Reihe von Generationen zu teilen. Die erste Generation zur vierten Generation (5. Generation wird manchmal zu sehen ist ). Die Division verwendet weniger heute, da es immer schwieriger geworden ist Generationen zu definieren. Es ist zu beachten , dass einige der ersten Computer nicht im modernen Sinn programmiert wurden. Stattdessen „hinzugefügt , um die Maschine“ auf Reihen von Schaltern oder Schalttafeln mit Drähten, die die gewünschten Operationen verbunden ist .

Die erste Generation Programmiersprachen

Die erste Generation war Maschinencode, der direkt in den Computer gelagert wurde. Das Programm wurde in keiner Weise übersetzt darüber hinaus , dass Programmierer eine sogenannte machen könnte håndassemblering , dh Schreibprogramm mit mehr Mensch-Befehlscodes genannt Mnemotechnik und sie dann in ihrer binären Darstellung übersetzen. Eine mnemonic wurden in einem Maschinenbefehl übersetzt. Adressen wurden von Hand gezählt. Das fertige Programm könnte auf verschiedene Weise eingegeben werden. Eine davon war eine Reihe von Kontakten auf dem Bedienfeld mit der Adresse einer Speicherzelle zu setzen und den gewünschten Inhalt der Zelle in einer zweiten Reihe von Kontakten , und dann mit einer speziellen Berührungs den Inhalt in der Zelle festgelegt. In ähnlicher Weise ein lagercelles Inhalt auf einer Vielzahl von Lampen angezeigt.

In Microcomputer aus den 70er und 80er Jahren könnte es auch mit gutem Beispiel tun. ein BASIC – Programm mit dem Befehl POKE , die einen Wert in eine bestimmte Speicherzelle schreibt. Die Technik wurde verwendet , um kleine Maschinencode – Routinen für das Programm hinzufügen. Diese fuhren schneller als die interpretierte BASIC – Programm.

2. Generation Programmiersprachen

Die zweite Generation von Programmiersprachen ist der symbolische Assembler . Assembler ist ein Programm , das symbolische Namen von Maschinenbefehlen auf ihre binären Werte übersetzt, berechnet Adressen und erweitert Makros . Es erleichtert damit die Programmierer der Arbeit viel und Grenzen von Fehlern bei den Adressberechnungen.

3. Generation Programmiersprachen

Dies sind die so genannten High-Level – Sprache , die in den späten erschien 1950 . Hier arbeiten Programmierer nicht mit Maschinenbefehlen , sondern mit Anweisungen , die die Compiler auf eine Reihe von Maschinenbefehlen übersetzt. Die erste höhere Programmiersprache war maschinenspezifische Sprache als Flow-Matic und Math-Matic. Bald nach der Arbeit begann mehr oder weniger standardisierte Sprachen wie zu entwickeln , Fortran , Algol , COBOL und Lisp . Diese Sprachen maschinenunabhängige Programme aktiviert. Die gleiche Quelle Text auf verschiedenen Computern übersetzt werden könnte, die oft von verschiedenen Anbietern und laufen; möglicherweise. mit einem Minimum an Änderungen.

4. Generation Programmiersprachen

Eine vierte Generation Sprache der Programmierer viel effizienter zu machen, so dass die Sprache eine Menge trivial und häufig verwendete Operationen behandeln. Die Anweisungen in der Sprache, zumindest viele von ihnen sind daher stärker. Die Sprachstrukturen können auf Dateien und Datenbanken zu verwalten, Schleifen, Pausen (dh wenn ein Wert in einem Bereich von Lesedatenänderungen) und externer Kommunikation. Der Programmierer ist wahrscheinlich mehr Zeit verbringen , die Lösung der Aufgabe , anstatt sich Gedanken über kleinere technische Details. Ein Programm , geschrieben in einer Sprache der vierten Generation enthält weniger Zeilen als ein äquivalentes Programm in einer dritten Generation Language. Es ist auch enthalten weniger Fehler angenommen. Die Umgebung um die Sprache nutzt den hohen Grad an Informationen über die Daten, Metadaten aus einem abgerufenen Datenwörterbuch . Zum Beispiel. werden Informationen über die Formatierung und Beschriftung Texte, sondern auch einige Validierungen hier sein. Einige Sprache in dieser Gruppe erzeugen Quellcode in einer dritten Sprache, die dann in dieser Sprache Compiler übersetzt werden müssen.

Fünfte Generation Programmiersprachen

Diese Gruppe von Sprachen zumindest teilweise auf Basis künstlicher Intelligenz . Man könnte zum Beispiel. vorstellen , dass die Aufgabe wurde in einer natürlichen Sprache beschrieben und das System dann gebeten , Fragen zu klären , bevor es einen Prototyp gebaut. Typ stimmt noch nicht in Betrieb.

Die Entwicklung der Division

Heute ist die dritte Generation und vierte Generation zum Teil zusammen in einigen Sprachen gewachsen. Es ist schwer zu sagen , wie eine Sprache gehört. Zur gleichen Zeit gibt es viele neuere Sprachen entwickelt großen und komplexen Frameworks , die die Funktionalität für verschiedene allgemeine Aufgaben bieten , die sonst Monate gedauert hätte , zu schreiben.

Liste der Programmiersprachen

Durch Programmierung kann umfassen umfassen:

  • Ada – Eine Sprache in Algol-Pascal Familie, benannt nach Ada Lovelace , als Standardsprache für das US – Militär entwickelt.
  • Algol – Die erste „moderne“ Sprache mit einer gut durchdachten Grammatik.
  • Algol 68 – Die erste Sprache der Halb formale Definition
  • APL – Eine sehr kompakte Sprache, besonders geeignet für matriceregning.
  • Assemblersprache – Oberbegriff für symbolische Versionen des Maschinencode .
  • ASP – Sprache für Web – Server, entwickelt von Microsoft.
  • BASIC – Einfache Sprache für Anfänger gedacht.
  • B – Ausgelegt Art von loser Sprache basierend auf BCPL, der Vorläufer von C.
  • BATCH – Original – Skriptsprache, sondern hat sich seitdem weiterentwickelt eine einfache , aber leistungsfähige Programmiersprache zu sein.
  • BCPL – Typ lose Sprache, vereinfachte Version von CPL.
  • BETA – Sprache basierend auf „Muster“, eine Art verallgemeinerte Abstraktion.
  • Blubi – Programmiersprachen in Dänisch, für pädagogische Zwecke.
  • Gehirn – Fick – Ist das nicht eine nützliche Sprache, sondern als eine Art von Unterhaltung konzipiert.
  • C – Systemsprache für Unix , der Vorgänger zu C ++.
  • C ++ – C mit Unterstützung für objektorientierte und generische Programmierung.
  • C # – Microsofts Antwort auf Java – Syntax ähnlich wie C ++.
  • Objective-C – C mit Erweiterungen von Smalltalk inspiriert.
  • Swift – Offene Souce Programmiersprache , die von Apple entwickelt (ursprünglich nicht Open Source)
  • Caml – Variante von ML .
  • COBOL – Frühe Sprache für Verwaltungssysteme. Abkürzung für: Common Business Oriented Language.
  • Comal – BASIC – Variante mit Unterstützung für die strukturierte Programmierung. Abkürzung für: Gemeine algorithmische Sprache.
  • Delphi – keine Sprache , sondern eine Umgebung für Object Pascal.
  • Eiffel – Objektorientierte Programmiersprachen.
  • Erlang – Funktionale Sprache in erster Linie von der schwedischen verwendet Ericsson Gruppe.
  • Fortran – Frühe Sprache auf der Grundlage wissenschaftliche Berechnungen. Abkürzung für: Formel Übersetzung.
  • FP – Funktionale Programmiersprache ohne Variablen , entwickelt von John Backus
  • Haskell – Funktionale Sprachen mit lazy evaluation von Miranda inspiriert, aber die primären Umsetzung ist freie Software .
  • INTERCAL – Paros, esoterische Sprache, mit dem Ziel , eine kryptische und redundante Syntax.
  • Java – objektorientierte Sprache mit statischer Typprüfung entwickelt , um mit Code für eine virtuelle Maschine zu erzeugen.
  • JavaScript – Programmiersprache für die Bearbeitung von Webseiten / HTML – Seite in einem Webbrowser
  • Job Control Language – JCL – verwendet Jobs zu steuern , auf einem IBM – Mainframe .
  • Lisp – Die erste funktionale Sprache. Abkürzung für Listenverarbeitung.
  • Oberon – Modula-2 mit Objekten.
  • OCaml – Objektorientierte Sprachen basierend auf Caml .
  • Occam – Sprache für die parallele Programmierung auf der formalen Sprache CSP basiert.
  • Pascal – imperative Sprache für die strukturierte Programmierung, inspiriert von Algol.
  • Perl – Eine praktische Sprache für das Abrufen von Daten und die Erstellung von Berichten.
  • PHP – Eine Antwort auf ASP mit einer primären freien Software – Implementierung. Abkürzung für PHP: Hypertext Preprocessor (ursprünglich Personal Home Werkzeuge).
  • PL / I – IBM ‚s Angebot für einen neuen Standard FORTRAN zu ersetzen. Abkürzung für Programmiersprache I.
  • Postscript – Sprache der Seitenbeschreibung (Grafiken und Buchstaben), entwickelt von John Warnock von Adobe .
  • Prolog – Sprache für Logikprogrammierung.
  • Python – Objekt Skripte interpretierte Sprache orientiert.
  • REXX – Strukturierte Hochsprache entwickelt von IBM .
  • Rubin – Objektorientierte Sprache. Kann auch in Skripten verwendet werden.
  • Scheme – Variante von Lisp mit statischen Rahmen (Programmierung) .
  • Simula 67 – Die erste Sprache mit Unterstützung für objektorientierte Programmierung .
  • Smalltalk-80 – Eine standardisierte Version von Smalltalk, eine objektorientierten Sprache mit dynamischer Typisierung.
  • SML – Eine standardisierte Version von ML.
  • Structured Query Language – SQL – eine Sprache für Datenbankabfragen. Verwendet insbesondere MySQL und PostgreSQL .
  • Turbo Pascal – Eine dänische ursprünglich entwickelte Variante von Pascal.
  • Visual Basic – Eine Microsoft – Version von BASIC.
  • Visual Prolog – Eine stark typisierte objektorientierte Erweiterung von Prolog (Danish entwickelt).