Liste der Programmiersprachen nach Typ

Dies ist eine Liste von bemerkenswerten Programmiersprachen, gruppiert nach Typ.

Es gibt kein übergeordnetes Klassifizierungsschema für Programmiersprachen. In vielen Fällen wird eine Sprache unter mehreren Überschriften aufgeführt (in dieser Hinsicht siehe "."Multiparadigmsprachen" unter).

Arraysprachen

Array -Programmierung (auch bezeichnet Vektor oder mehrdimensional) Sprachen verallgemeinern die Operationen auf Skalaren, um sich transparent zu bewerben Vektoren, Matrizen, und höherdimensionale Arrays.

Assemblersprachen

Assemblersprachen entsprechen direkt a Maschinensprache (sehen unter), obwohl es möglicherweise keine 1-1-Mapping zwischen einer einzelnen Anweisung und einer einzelnen Anweisung gibt, so dass die Anweisungen für Maschinencode in einer von Menschen verständlichen Form erscheinen. Assemblersprachen können Programmierer symbolische Adressen verwenden, die die Assembler konvertiert in absolut oder Umlebbar Adressen. Die meisten Assembler unterstützen auch Makros und Symbolische Konstanten.

Authoringsprachen

Ein Autorierungssprache ist eine Programmiersprache, die für die Verwendung eines Nicht-Computer-Experten entwickelt wurde, um einfach Tutorials, Websites und andere interaktive Computerprogramme zu erstellen.

Okatenative Programmiersprachen

A Conklibstönische Programmiersprache ist ein punktfrei Computer Programmiersprache in denen alle Ausdrücke bezeichnen Funktionen, und die Nebeneinander von Ausdrücke bezeichnet Funktionszusammensetzung.[1] Die verkettungsansiedlige Programmierung ersetzt Funktionsanwendung, was in anderen Programmierstilen üblich ist, mit Funktionszusammensetzung als die Standardmethode zum Erstellen Unterroutinen.

Einschränkungsprogrammiersprachen

A Einschränkungsprogrammiersprache ist ein deklarative Programmiersprache wo Beziehungen zwischen Variablen ausgedrückt werden als Einschränkungen. Die Ausführung wird fortgesetzt, indem versucht wird, Werte für die Variablen zu finden, die alle deklarierten Einschränkungen erfüllen.

Befehlszeilen-Schnittstellensprachen

Befehlszeilenschnittstelle (CLI) Sprachen werden auch als Stapelsprachen oder Arbeitskontrollsprachen bezeichnet. Beispiele:

Kompilierte Sprachen

Dies sind Sprachen, die normalerweise von verarbeitet werden von Compilerobwohl theoretisch jede Sprache kompiliert oder interpretiert werden kann.

Gleichzeitige Sprachen

Nachrichtenübergang Sprachen bieten Sprachkonstrukte für Parallelität. Das vorherrschende Paradigma für die Parallelität in Mainstream -Sprachen wie z. Java ist geteilte Erinnerung Parallelität. Gleichzeitige Sprachen, die das Übergeben von Nachrichten verwenden Kommunizieren von sequentiellen Prozessen (Csp) oder die π-Kalkulus.

Lockige Sprachen

Geschweifte Klammer oder Curly-Brace-Programmiersprachen eine Syntax haben, die Anweisungsblöcke mit dem definiert lockige Klammer- oder Klammerfiguren { und }. Diese Syntax entstand von BCPL (1966) und wurde populär von C. Viele lockige Sprachen stammen von C. Beispiele für Curly-Spurt-Sprachen aus oder werden stark beeinflusst: Zu gehören: gehören:

DataFlow -Sprachen

Datenflow -Programmierung Sprachen stützen sich auf eine (normalerweise visuelle) Darstellung des Datenflusss, um das Programm anzugeben. Häufig zur Reaktion auf diskrete Ereignisse oder zur Verarbeitung von Datenströmen. Beispiele für Datenflusssprachen sind:

Datenorientierte Sprachen

Datenorientierte Sprachen bieten leistungsstarke Möglichkeiten, die Beziehungen zu durchsuchen und zu manipulieren, die als Entitätsbeziehungstabellen beschrieben wurden, die einen Satz von Dingen in andere Sätze abbilden. Beispiele für datenorientierte Sprachen sind:

Entscheidungstischsprachen

Entscheidungstabellen Kann als Hilfe zur Klärung der Logik verwendet werden, bevor ein Programm in jeder Sprache geschrieben wird, aber in den 1960er Jahren wurde eine Reihe von Sprachen entwickelt, bei denen die Hauptlogik direkt in Form einer Entscheidungstabelle ausgedrückt wird, einschließlich:

Deklarative Sprachen

Deklarative Sprachen Drücken Sie die Logik einer Berechnung aus, ohne ihren Kontrollfluss im Detail zu beschreiben. Deklarative Programmierung steht im Gegensatz zu Imperative Programmierung über imperative Programmiersprachen, wobei der Kontrollfluss durch serielle Ordnungen (Imperative) angegeben wird. (Rein) funktional und logikbasiert Programmiersprachen sind ebenfalls deklarativ und bilden die Hauptunterkategorien der deklarativen Kategorie. In diesem Abschnitt werden zusätzliche Beispiele aufgeführt, die nicht in diesen Unterkategorien sind.

Einbettbare Sprachen

Im Quellcode

Einbettungsbare Sprachen mit Quellen, die kleine ausführbare Code-Teile in ein Stück freier Form einbetten, oft eine Webseite.

Die eingebetteten Sprachen auf dem Client-Seiten sind durch die Fähigkeiten des Browsers oder des beabsichtigten Kunden begrenzt. Sie wollen Webseiten Dynamik bereitstellen, ohne den Server wiederzugeben.

Eingebettete Serversprachen sind viel flexibler, da fast jede Sprache in einen Server integriert werden kann. Ziel, Fragmente des in einer Webseite eingebetteten serverseitigen Codes eingebettet zu haben, ist die dynamische Erstellung zusätzlicher Markup. Der Code selbst verschwindet, wenn die Seite serviert wird und durch seine Ausgabe ersetzt wird.

Serverseite

  • Php
  • Vbscript
  • SMX - Webseiten gewidmet
  • Tcl -Server-Seite in Naviserver und eine wesentliche Komponente in Systemen der Elektronikindustrie
  • WebDNA -datenbankgesteuerte Websites gewidmet

Die obigen Beispiele sind besonders für diesen Zweck gewidmet. Eine große Anzahl anderer Sprachen, wie z. Erlang, Scala, Perl, Ring und Rubin kann angepasst werden (zum Beispiel, indem man in angegeben wird Apache Module).

Client -Seite

Im Objektcode

Eine Vielzahl von dynamischen oder Skriptsprachen kann in den kompilierten ausführbaren Code eingebettet werden. Grundsätzlich Objektcode für die Sprache der Sprache Dolmetscher muss mit der ausführbaren Datei verbunden werden. Quellcodefragmente für die eingebettete Sprache können dann als Zeichenfolgen an eine Bewertungsfunktion übergeben werden. Auf diese Weise können Anwendungssteuersprachen implementiert werden, wenn der Quellcode vom Benutzer eingegeben wird. Sprachen mit kleinen Dolmetschern werden bevorzugt.

Bildungsprogrammiersprachen

Sprachen entwickelten sich hauptsächlich zum Zweck des Lehrenes und Lernens der Programmierung.

Esoterische Sprachen

Ein Esoterische Programmiersprache ist eine Programmiersprache, die als Test der Grenzen des Computerprogrammiersprachenentwurfs, als Beweis für das Konzept oder als Witz entwickelt wurde.

Erweiterungssprachen

Erweiterungsprogrammiersprachen Sind Sprachen in ein anderes Programm eingebettet und verwendet, um seine Funktionen in Erweiterungsskripten zu nutzen.

Sprachen der vierten Generation

Programmiersprachen der vierten Generation sind hochrangige Sprachen, die rund um Datenbanksysteme basieren. Sie werden im Allgemeinen in kommerziellen Umgebungen verwendet.

Funktionssprachen

Funktionelle Programmierung Sprachen definieren Programme und Unterprogramme als mathematische Funktionen und behandeln sie als erstklassig. Viele sogenannte funktionale Sprachen sind "unrein", die zwingende Merkmale enthalten. Viele funktionale Sprachen sind an mathematische Berechnungswerkzeuge gebunden. Funktionale Sprachen umfassen:

Rein

Unrein

Hardware -Beschreibung Sprachen

In Elektronik, a Hardware -Beschreibung Sprache (HDL) ist eine spezialisierte Computersprache, mit der die Struktur, das Design und der Betrieb elektronischer Schaltungen und am häufigsten digitale Logikschaltungen beschrieben werden. Die beiden am häufigsten verwendeten und gut unterstützten HDL-Sorten in der Industrie sind Verilog und VHDL. Zu den Hardware -Beschreibung Sprachen gehören:

HDLs für das analoge Schaltungsdesign

  • Verilog-Ams (Verilog für analoges und gemischtes Signal)
  • VHDL-AMS (VHDL mit Analog-/Mischsignalverlängerung)

HDLs für digitales Schaltungsdesign

Imperative Sprachen

Imperative Programmiersprachen können Multi-Paradigma sein und in anderen Klassifikationen erscheinen. Hier ist eine Liste von Programmiersprachen, die dem folgen Imperatives Paradigma:

Interaktive Modussprachen

Sprachen der interaktiven Modus wirken als eine Art Shell: Ausdrücke oder Aussagen können einzeln eingegeben werden, und das Ergebnis ihrer Bewertung wird sofort angezeigt. Der interaktive Modus wird auch als a bezeichnet Read -E -druck -Schleife (Repl).

Interpretierte Sprachen

Interpretierte Sprachen sind Programmiersprachen, in denen Programme von einem Interpreter aus dem Quellcodeformular ausgeführt werden können. Theoretisch kann jede Sprache kompiliert oder interpretiert werden, so dass der Begriff Interpretierte Sprache Bezieht sich im Allgemeinen auf Sprachen, die normalerweise eher interpretiert als kompiliert werden.

Iterative Sprachen

Iterative Sprachen basieren auf oder bieten an Generatoren.

Sprachen nach Speicherverwaltungstyp

Müll gesammelte Sprachen

Müllsammlung (GC) ist eine Form der automatischen Speicherverwaltung. Der Müllsammler versucht, das vom Programm zugewiesene Gedächtnis zurückzugewinnen, wird jedoch nicht mehr verwendet.

Sprachen mit manueller Speicherverwaltung

Sprachen mit optionalem manuellem Speichermanagement

  • Ada Implementierungen sind nicht erforderlich, um Müllsammlung anzubieten, aber die Sprachsemantik unterstützt sie, und viele Implementierungen umfassen sie.
  • D Bietet den Programmierern die volle Kontrolle über seinen eigenen Müllsammler, einschließlich der Möglichkeit, sie sofort zu deaktivieren.[14]
  • Nim wird in der Regel standardmäßig mit Müll gesammelt oder referenziert, abhängig von seiner Konfiguration, der Programmierer kann jedoch den Switch verwenden -mm: Keine das Gedächtnis manuell zu erledigen.[15]
  • Ziel c und Ziel-C ++ Unterstützung optionaler Referenzzählung und Müllsammlung als Alternativen zum manuellen Speichermanagement (der Müllsammler wurde jedoch von Apple deklariert).
  • Rost Unterstützt die optionale Referenzzählung, das manuelle Speichermanagement wird jedoch bevorzugt.
  • Vala Verwendet standardmäßig die Referenzzählung, aber der Benutzer kann den Speicher manuell manuell verwalten, wenn er dies wünscht.[16]

Sprachen mit deterministischem Gedächtnismanagement

Sprachen mit automatischer Referenzzählung (ARC)

Listenbasierte Sprachen-LISPs

Listenbasierte Sprachen sind eine Art von datenstrukturierten Sprache, die auf dem basieren aufführen Datenstruktur.

Kleine Sprachen

Kleine Sprachen[19] eine spezialisierte Problemdomäne bedienen.

  • awk - Verwendet für die Manipulation der Textdatei.
  • Komet - verwendet, um komplexe Kombinator zu lösen Optimierung Probleme in Bereichen wie z. Ressourcenzuweisung und Planung
  • sed - Analysiert und verwandelt Text
  • Sql - hat nur wenige Schlüsselwörter und nicht alle Konstrukte, die für eine vollständige Programmiersprache benötigt werden[a] - Viele Datenbankverwaltungssysteme erweitern SQL mit zusätzlichen Konstrukten als a gespeicherte Prozedur Sprache

Logikbasierte Sprachen

Logikbasiert Sprachen geben eine Reihe von Attributen an, die eine Lösung eher und eine Reihe von Schritten haben, um eine Lösung zu erhalten.

Bemerkenswerte Sprachen folgen Programmierparadigma enthalten:

Maschinensprachen

Maschinensprachen sind direkt von der CPU eines Computers ausführbar. Sie sind normalerweise als Bitmuster formuliert, normalerweise in Oktal oder hexadezimal. Jedes Bitmuster bewirkt, dass die Schaltkreise in der CPU einen der grundlegenden Vorgänge der Hardware ausführen. Die Aktivierung spezifischer elektrischer Eingänge (z. B. CPU -Paketnins für Mikroprozessoren) und logische Einstellungen für CPU -Zustandswerte steuern die Berechnung des Prozessors. Einzelne Maschinensprachen sind spezifisch für eine Familie von Prozessoren; Maschinensprachiger Code für eine Prozessfamilie kann nicht direkt auf Prozessoren in einer anderen Familie ausgeführt werden, es sei denn, die fraglichen Prozessoren haben zusätzliche Hardware, um sie zu unterstützen (z. B. Dec-VAX-Prozessoren enthalten einen PDP-11-Kompatibilitätsmodus). Sie werden (im Wesentlichen) immer vom CPU -Entwickler definiert, nicht von den Dritten.[b] Die symbolische Version, die Prozessor des Prozessors Montagesprache, wird in den meisten Fällen auch vom Entwickler definiert. Einige häufig verwendete Maschinencode Anweisungssätze sind:

Makrosprachen

Makrosprachen makrote textuelle Substitution

Makro Sprachen verwandeln eine Quellcodedatei in eine andere. Ein "Makro" ist im Wesentlichen ein kurz Hygienische Makros), möglicherweise mit Parametersubstitution. Sie werden oft gewohnt Vorverarbeitung Quellcode. Präprozessoren können auch Einrichtungen wie Dateieinschluss.

Makrosprachen können auf speziell beschriftete Coderegionen beschränkt sein (vor dem Fixieren mit a # im Fall des C -Präprozessors). Alternativ können sie möglicherweise nicht, aber in diesem Fall ist es immer noch oft unerwünscht, (zum Beispiel) ein Makro zu erweitern, das in a eingebettet ist SaitenliteralSie brauchen also immer noch ein rudimentäres Bewusstsein für die Syntax. In diesem Fall sind sie oft noch auf mehr als eine Sprache anwendbar. Kontrast zu Quellen-Embedable-Sprachen wie Php, die vollständig vorgestellt werden.

  • CPP (der C -Präprozessor)
  • M4 (Ursprünglich aus AT & T, mit Unix gebündelt)
  • Ml/i (Allzweck-Makroprozessor)

Anwendungsmakrosprachen

Skriptsprachen wie zum Beispiel Tcl und ECMaskript (Aktionen, ECMascript für XML, JavaScript, Jscript) wurden in Anwendungen eingebettet. Diese werden manchmal als "Makrosprachen" bezeichnet, wenn auch in einem etwas anderen Sinne als Text-Substitution-Makros wie M4.

Metaprogrammiersprachen

Metaprogrammierung ist das Schreiben von Programmen, die andere Programme schreiben oder manipulieren, einschließlich sich selbst, als Daten oder die Teil der Arbeit, die sonst bei der Erledigung von Arbeiten erledigt wird Laufzeit während Zeit kompilieren. In vielen Fällen können Programmierer in der gleichen Zeit mehr erledigen, wie sie es brauchen würden, um den gesamten Code manuell zu schreiben.

Multiparadigmsprachen

Multiparadigmsprachen Unterstützen Sie mehr als eine Programmierparadigma. Sie erlauben a Programm mehr als einen verwenden Programmierung Stil. Ziel ist es, den Programmierern das beste Werkzeug für einen Job zu ermöglichen und zuzugeben, dass kein Paradigma alle Probleme auf die einfachste oder effizienteste Weise löst.

  • 1c: Enterprise -Programmiersprache (Generisches, imperatives, objektorientiertes, prototypbasiertes, funktionales)
  • Ada (gleichzeitig, verteilt, generisch (Vorlage Metaprogrammierung), Imperativ, objektorientierter (Klassenbasierte))
  • Alf (funktional, Logik)
  • ALMA-0 (Einschränkung, Imperativ, Logik)
  • Apl (Funktional, imperativ, objektorientiert (klassenbasierte))
  • BETA (Funktional, imperativ, objektorientiert (klassenbasierte))
  • C ++ (Generisches, imperatives, objektorientiertes (klassenbasiertes), funktionaler, metaprogrammierender)
  • C# (generisches, imperatives, objektorientiertes (klassenbasiertes), funktional, deklarativ)
  • Ceylon (generisches, imperatives, objektorientiertes (klassenbasiertes), funktional, deklarativ)
  • Futter (Imperativ, objektorientiert, zeitbasiert, gleichzeitig, im Fliege)
  • Kobra (generisches, imperatives, objektorientiertes (klassenbasiertes), funktional, vertraglich)
  • Common Lisp (funktional, imperativ, objektorientiert (klassenbasiert), Aspektorientiert (Benutzer kann weitere Paradigmen hinzufügen, z. B. Logik)))
  • Locken (funktional, imperativ, objektorientiert (klassenbasierte), Metaprogrammierung)
  • Curry (gleichzeitig, funktional, logisch)
  • D (Generisches, imperatives, funktionales, objektorientiertes (klassenbasiertes), Metaprogrammieren)
  • Delphi Objekt Pascal (Generisches, imperatives, objektorientiertes (klassenbasiertes), Metaprogrammieren)
  • Dylan (funktional, objektorientiert (klassenbasierte))
  • EC (generische, imperative, objektorientierte (klassenbasierte)))
  • ECMaskript (funktional, imperativ, objektorientiert (prototypbasiert)))
  • Eiffel (Imperative, objektorientierte (klassenbasierte), generische, funktionelle (Wirkstoffe), gleichzeitige (Scoop))
  • F# (Funktional, generisches, objektorientiertes (klassenbasiert), sprachorientiert)
  • Fantom (funktional, objektorientiert (klassenbasierte))
  • gehen (Imperativ, prozedural),
  • Groovig (funktional, objektorientiert (klassenbasiert), imperativ, prozedural)
  • Hafen
  • Hüpfen
  • J (Funktional, imperativ, objektorientiert (klassenbasierte))
  • Julia (Imperativ, Mehrfachversand ("objektorientiert"), funktional, metaprogrammieren)
  • Labor (visuell, Datenfluss, gleichzeitig, modular, funktional, objektorientiert, Skript)
  • Lava (objektorientiert (klassenbasiert), visuell)
  • Lua (funktional, imperativ, objektorientiert (Prototypbasiert))
  • Quecksilber (funktional, logisch, objektorientiert)
  • MetaObject -Protokolle (objektorientiert (klassenbasierte, prototypbasierte)))
  • Nemerle (funktional, objektorientiert (klassenbasierte), Imperativ, Metaprogrammierung)
  • Ziel c (Imperativ, objektorientiert (klassenbasiert), reflektierend)
  • Ocaml (funktional, imperativ, objektorientiert (klassenbasiert), modular)
  • Oz (Funktional (Bewertung: erpicht, faul), Logik, Zwang, Imperativ, objektorientiert (klassenbasierte), gleichzeitige, verteilte) und Mozart-Programmiersystem plattformübergreifend Oz
  • Objekt Pascal (Imperative, objektorientierte (klassenbasierte)))
  • Perl (Imperativ, funktional (kann nicht rein funktionell sein), objektorientierter, klassenorientierter, Aspektorientiertes (durch Module))
  • Php (Imperativ, objektorientiert, funktional (kann nicht rein funktionell sein)))
  • Pike (Interpretierte, allgemeine, hochrangige, plattformübergreifende, dynamische Programmiersprache)
  • Profil (DataFlow, objektorientiert (klassenbasiert), visuell)
  • Python (Funktional, kompiliert, interpretiert, objektorientiert (klassenbasiert), Imperativ, Metaprogrammierung, Erweiterung, unrein, interaktiver Modus, iterativ, reflektierend, Scripting)
  • R (Array, interpretiert, unrein, interaktiver Modus, listenbasierte, objektorientierte prototypbasierte Skripten)
  • Schläger (Funktional, imperativ, objektorientiert (klassenbasiert) und kann vom Benutzer erweitert werden)
  • Rebol (funktional, imperativ, objektorientiert (prototypbasiert), metaprogrammierend (dialiert))
  • Rot (funktional, imperativ, objektorientiert (prototypbasiert), metaprogrammierend (dialiert))
  • Roop (Imperativ, logisch, objektorientiert (klassenbasiert), regelbasiert)
  • Ring (Imperativ, funktional, objektorientiert (klassenbasierte), Metaprogrammierung, deklarativ, natürlich)
  • Rubin (Imperativ, funktional, objektorientiert (klassenbasierte), Metaprogrammierung)
  • Rost (gleichzeitig, funktional, imperativ, objektorientiert, generisches, metaprogrammieren, kompiliert)
  • Scala (funktional, objektorientiert)
  • Samen7 (Imperativ, objektorientiert, generisches)
  • Sisal (gleichzeitig, Datenflow, funktional)
  • Tabellenkalkulationen (funktional, visuell)
  • Schnell (Protokollorientiert, objektorientiert, funktional, imperativ, blockstrukturiert)
  • Tcl (Funktional, imperativ, objektorientiert (klassenbasierte))
    • Tee (Funktional, imperativ, objektorientiert (klassenbasierte))
  • Windows PowerShell (funktional, imperativ, pipeline, objektorientiert (klassenbasiert))
  • Wolfram Sprache

Numerische Analyse

Mehrere allgemeine Programmiersprachen, wie z. C und Python, werden auch für technisches Computing verwendet. Diese Liste konzentriert sich auf Sprachen, die fast ausschließlich für das technische Computing verwendet werden.

Nicht englischbasierte Sprachen

Objektorientierte klassenbasierte Sprachen

Klasse-basierend Objekt orientierte Programmierung Sprachen Unterstützung Objekte definiert von ihrer Klasse. Klassendefinitionen enthalten Mitgliedsdaten. Nachrichtenübergang ist ein Schlüsselkonzept, wenn nicht das Hauptkonzept in objektorientierten Sprachen.

Polymorphe Funktionen, die durch die Klasse einiger ihrer Argumente parametrisiert werden Methoden. In Sprachen mit einzelner Versand, Klassen enthalten typischerweise auch Methodendefinitionen. In Sprachen mit Mehrfachversand, Methoden werden durch definiert von generische Funktionen. Es gibt Ausnahmen, bei denen einzelner Versand Methoden sind generische Funktionen (z.B. BiglooObjektsystem).

Mehrfachversand

Einzelner Versand

Objektorientierte prototypbasierte Sprachen

Prototypbasierte Sprachen sind objektorientierte Sprachen, in denen die Unterscheidung zwischen Klassen und Instanzen entfernt wurde:

Off-Side-Regelsprachen

Off-Side-Regel Sprachen bezeichnen Codeblöcke durch ihre Vertiefung.

Prozedurale Sprachen

Verfahrensprogrammierung Sprachen basieren auf dem Konzept des Geräts und des Umfangs (der Daten zur Datenzehlung) einer ausführbaren Code -Anweisung. Ein prozedurales Programm besteht aus einer oder mehreren Einheiten oder Modulen, die entweder benutzercodiert oder in einer Codebibliothek bereitgestellt werden. Jedes Modul besteht aus einer oder mehreren Verfahren, die je nach Sprache auch als Funktion, Routine, Unterprogramm oder Methode bezeichnet wird. Beispiele für prozedurale Sprachen sind:

Abfragesprachen

Reflektierende Sprachen

Reflektierend Mit Sprachen können Programme ihre hochrangige Struktur zur Laufzeit oder zur Kompilierung untersuchen und möglicherweise ändern. Dies ist am häufigsten in hochrangigen Programmiersprachen virtueller Maschine wie möglich wie Smalltalkund weniger verbreitet in Programmiersprachen unter niedrigerer Ebene wie C. Sprachen und Plattformen, die Reflexion unterstützen:

Regelbasierte Sprachen

Regelbasierte Sprachen instanziieren Regeln, wenn sie durch Bedingungen in einem Datensatz aktiviert werden. Von allen möglichen Aktivierungen wird ein Teil ausgewählt und die Aussagen dieser Regeln ausgeführt. Zu den regelbasierten Sprachen gehören:

Skriptsprachen

"Skriptsprache"Hat zwei anscheinend unterschiedliche, aber tatsächlich ähnliche Bedeutungen. Im herkömmlichen Sinne sind Skriptsprachen so konzipiert, dass sie häufig verwendete Aufgaben automatisieren, bei denen normalerweise Befehle aufgerufen oder an externe Programme weitergegeben werden. Viele komplexe Anwendungsprogramme liefern integrierte Sprachen, die Benutzer lassen Aufgaben automatisieren. Diejenigen, die sind Interpretativ werden oft als Skriptsprachen bezeichnet.

In jüngster Zeit haben viele Anwendungen integrierte traditionelle Skriptsprachen wie z. Perl oder Visual Basic, aber es gibt einige einheimisch SCRIPTING -Sprachen werden noch verwendet. Viele Skriptsprachen werden in Bytecode zusammengestellt und dann wird dieser (normalerweise) plattformunabhängige Bytecode durch eine virtuelle Maschine ausgeführt (verglichen mit Java virtuelle Maschine).

Stackbasierte Sprachen

Stackbasierte Sprachen sind eine Art von datenstrukturierter Sprache, die auf dem basieren Stapel Datenstruktur.

Synchronsprachen

Synchrone Programmiersprachen sind optimiert für Programmierreaktivsysteme, Systeme, die häufig unterbrochen werden und schnell reagieren müssen. Viele solcher Systeme werden auch genannt Echtzeitsysteme, und werden oft in verwendet in eingebettete Systeme.

Beispiele:

Schattierungssprachen

A Schattierungssprache ist eine Grafikprogrammiersprache, die an Programmier -Shader -Effekte angepasst ist. Solche Sprachformen bestehen normalerweise aus speziellen Datentypen wie "Farbe" und "normal". Aufgrund der Vielfalt der Zielmärkte für 3D -Computergrafiken.

Echtzeit-Rendering

Sie bieten sowohl eine höhere Hardware -Abstraktion als auch ein flexibleres Programmiermodell als frühere Paradigmen, die die transformierenden und schattierenden Gleichungen harten. Dies gibt dem Programmierer eine höhere Kontrolle über den Rendering -Prozess und liefert in niedrigeren Overheads einen umfangreicheren Inhalt.

Offline -Rendering

Schattierungssprachen, die bei Offline -Rendering verwendet werden, erzeugen maximale Bildqualität. Die Verarbeitung solcher Shader ist zeitaufwändig. Die erforderliche Rechenleistung kann aufgrund ihrer Fähigkeit, fotorealistische Ergebnisse zu erzielen, teuer sein.

Syntax-Handlingsprachen

Diese Sprachen helfen bei der Erzeugung Lexikalanalysatoren und Parser zum Kontextfreie Grammatiken.

Systemsprachen

Das Systemprogrammiersprachen sind für Aufgaben auf niedrigem Niveau wie Speicherverwaltung oder Aufgabenverwaltung. Eine Systemprogrammiersprache bezieht sich normalerweise auf eine Programmiersprache, die für die Systemprogrammierung verwendet wird. Solche Sprachen sind für das Schreiben von Systemsoftware ausgelegt, für die in der Regel unterschiedliche Entwicklungsansätze im Vergleich zu Anwendungssoftware erforderlich sind.

Systemsoftware ist Computersoftware, die für den Betrieb und die Steuerung der Computerhardware entwickelt wurde und eine Plattform für das Ausführen von Anwendungssoftware bereitstellt. Die Systemsoftware umfasst Softwarekategorien wie Betriebssysteme, Dienstprogrammsoftware, Gerätefahrer, Compiler und Linker. Beispiele für Systemsprachen sind:

Sprache Urheber Erstmals erschienen Beeinflusst von Benutzt für
Espol Burroughs Corporation 1961 Algol 60 MCP
Pl/i IBM, TEILEN 1964 Algol 60, Forran, etwas Cobol Mehrheit
PL360 Niklaus Wirth 1968 Algol 60 Algol w
C Dennis Ritchie 1969 BCPL Die meisten Betriebssystemkerne, einschließlich Windows NT Und die meisten Unix-artig Systeme
Pl/s IBM 196x Pl/i OS/360
WONNE Carnegie Mellon Universität 1970 Algol-pl/i[27] VMs (Portionen)
PL/8 IBM 197X Pl/i AIX
PL/MP und PL/MI IBM 197X Pl/i CPF, OS/400
PL-6 Honeywell, Inc. 197X Pl/i CP-6
Sympl CDC 197X Fröhlich Nr Subsysteme, die meisten Compiler, FSE -Editor
C ++ Bjarne Stroustrup 1979 C, Simula Siehe C ++ - Anwendungen[28]
Ada Jean IchbiahS. Tucker Taft 1983 Algol 68, Pascal, C ++, Java, Eiffel Eingebettete Systeme, OS -Kerne, Compiler, Spiele, Simulationen, Cubesat, Flugverkehrskontrolle und Avionik
D Digital Mars 2001 C ++ Mehrere Domänen[29]
Nim Andreas Rumpf 2008 Ada, Modula-3, Lispeln, C ++, Objekt Pascal, Python, Oberon OS -Kerne, Compiler, Spiele
Rost Mozilla -Forschung[30] 2010 C ++, Haskell, Erlang, Rubin Servo -Layout -Engine, Redox OS
Schnell Apple Inc. 2014 C, Ziel c, Rost Mac OS, iOS App -Entwicklung[e]
Zick Andrew Kelley 2016 C, C ++, LLVM IR, gehen, Rost, JavaScript Als Ersatz für c
Odin Ginger Bill 2016 Pascal, C, gehen, Oberon-2, Newsqueak, Jai, GLSL Als Alternative für c

Transformationssprachen

Transformationssprachen Servieren Sie den Zweck der Umwandlung (Übersetzung) Quellcode, die in einer bestimmten formalen Sprache in einen definierten Zielformatcode angegeben sind. Es wird am häufigsten in Zwischenkomponenten komplexerer Supersysteme verwendet, um interne Ergebnisse für die Eingabe in eine nachfolgende Verarbeitungsroutine zu verwenden.

Visuelle Sprachen

Visuelle Programmiersprachen Lassen Sie Benutzer über grafische Layouts verschiedener Typen Programme anstelle von eindimensionalen Textzeichenfolgen anstelle von eindimensionalen Textzeichenfolgen angeben. Etwas Datenflow -Programmierung Sprachen sind auch visuelle Sprachen.

Wirthsprachen

Informatiker Niklaus Wirth entworfen und implementierte mehrere einflussreiche Sprachen.

XML-basierte Sprachen

Dies sind Sprachen basierend auf oder die betrieben werden Xml.

Siehe auch

Anmerkungen

  1. ^ Die Objekte von SQL sind Sammlungen von Datenbankdatensätze, genannte Tische. Ein voller Programmiersprache kann angeben Algorithmen, unabhängig von Laufzeit. Somit kann ein Algorithmus in Betracht gezogen werden, um nutzbare Ergebnisse zu erzielen. Im Gegensatz dazu kann SQL nur Datensätze auswählen, die auf die aktuelle Sammlung beschränkt sind, die im System vorhandenen Daten, anstatt eine Anweisung zur Richtigkeit des Ergebniss zu erstellen.
  2. ^ Eine bemerkenswerte Ausnahme wäre der Sowjet/Russisch 1801 Serie CPU, die ursprünglich ihre eigene inländische ISA verwendeten, aber später neu gestaltet wurden, um zu sein PDP-11 kompatibel als politische Entscheidung.
  3. ^ a b Submodels sind nicht aufgeführt, nur Basismodelle.
  4. ^ Das Konzept von Objekt Mit der traditionellen Single-Dispatch-OO-Semantik ist in Julia nicht vorhanden, stattdessen mit dem allgemeineren Multiple-Versand auf verschiedenen Typen zur Laufzeit.
  5. ^ Swift verwendet Automatische Referenzzählung.

Verweise

  1. ^ "Christopher Diggins: Was ist eine verkettende Sprache". DRDOBBS.com. 2008-12-31. Abgerufen 2013-07-01.
  2. ^ "Kätzchen -Programmiersprache".
  3. ^ "LVIV -Programmiersprache".
  4. ^ "R3 Programmiersprache".
  5. ^ "STAAPL -Programmiersprache".
  6. ^ "Trith -Programmiersprache".
  7. ^ "XS -Programmiersprache".
  8. ^ "8. Programmiersprache".
  9. ^ Dokumentation »Die Python Standard Library» Gleichzeitige Ausführung
  10. ^ a b "Eindrückungsbasierte Syntax · RSDN/Nemerle Wiki". GitHub. Abgerufen 2022-03-18.
  11. ^ "Solidität - Solidität 0,8.11 Dokumentation".
  12. ^ "Rindfleischprogrammiersprache". Abgerufen 2022-03-18.
  13. ^ "Häufig gestellte Fragen | Odin Programmiersprache". Odin -Programmiersprache. Abgerufen 2022-03-18.
  14. ^ "Müllsammlung - D Programmiersprache". D Programmiersprache. Abgerufen 2022-03-18.
  15. ^ "NIMs Speicherverwaltung". Abgerufen 2022-03-18.
  16. ^ "Projekte/Vala/Referenzhandling - Gnome Wiki!". Abgerufen 2022-03-21.
  17. ^ "Eigentum verstehen - die Rust -Programmiersprache". doc.rustlang.org.
  18. ^ "Smart Zeiger - die Rost -Programmiersprache". doc.rustlang.org.
  19. ^ Jon Bentley (AT & T) August 1986 CACM 29 (8) "kleine Sprachen", S. 711-721 von ihm Programmierpearls -Spalte
  20. ^ "Verfahrensmakros zum Generieren von Code aus Attributen". doc.rustlang.org.
  21. ^ "Canonware Onyx". Canonware.com. Archiviert von das Original am 13. März 2017. Abgerufen 7. Juli, 2018.
  22. ^ Scabia, Marco. "Was ist allgemein". Adobe Developer -Verbindung. Adobe. Abgerufen 8. Mai 2018.
  23. ^ Hodorowicz, Luke (30. März 2015). "Schattierungssprachen". www.siningrocksoftware.com. Shining Rock -Software. Abgerufen 8. Mai 2018.
  24. ^ Foley, Tim; Hanrahan, Pat. "Spark: Modulare, komponierbare Shader für Grafikhardware". Intel -Software. ACM. Abgerufen 8. Mai 2018.
  25. ^ "Lachgiebende FAQ". oxidegames.com. Abgerufen 8. Mai 2018.
  26. ^ Linietsky, Juan; Manzur, Ariel. "Schattierungssprache - Godot Engine Neueste Dokumentation". docs.godotengine.org. Godot -Gemeinschaft. Abgerufen 8. Mai 2018.
  27. ^ Wulf, W. A.; Russell, D.B.; Haberman, A.N. (Dezember 1971). "Bliss: Eine Sprache für Systemprogramme". Kommunikation der ACM. 14 (12): 780–790. Citeseerx 10.1.1.691.9765. doi:10.1145/362919.362936. S2CID 9564255.
  28. ^ "C ++ Anwendungen".
  29. ^ "Organisationen, die die D -Sprache verwenden - D Programmiersprache".
  30. ^ "Mozilla Research". 1. Januar 2014.