Beliebte Programmiersprachen (C #, Java, C ++) sind alle Sprachen der 3. Generation (mit einem höheren Abstraktionsgrad von den physischen Teilen der Maschine). Assemblersprachen werden als 2. und Maschinensprachen als Sprachen der 1. Generation klassifiziert.
Anfänglich dachte ich, SQL sollte als Sprache der 4. Generation betrachtet werden, da es abstrakter und weit entfernt von Details der Schleifenbildung und aussagekräftiger ist.
Ich habe gerade herausgefunden, dass es Sprachen der 4. und 5. Generation gibt, aber auf welcher Grundlage kann eine Programmiersprache oder Technologie als Sprache der 4. oder 5. Generation eingestuft werden?
Gibt es auch Sprachen der 6. oder 7. Generation?
Antworten:
Übersicht über einfache Generationen: Eine Sprache ist die n-te Generation, wenn es sich um Bausteine handelt
Daher sind selbst Sprachen wie Google Go oder Apple Swift in der 3. Generation noch solide. Regex ist eine Textanpassungssprache, die es zu einer Sprache der frühen 4. Generation macht. Nach dieser Definition ist die 4. Generation eng an die DSLs angelehnt. Beachten Sie jedoch, dass Sprachen wie C ++ reale Typen wie
Length
undWeight
zusätzlich zufloat
und haben könnendouble
, was sie zur hybriden 3./4. Generation macht.Sprachen der fünften Generation gibt es praktisch nicht, da sie im Allgemeinen einen Grad an KI erfordern, der nie zustande gekommen ist. Die Tatsache, dass wir Programmierer immer noch gebraucht werden, liegt genau daran, dass Nicht-Programmierer einem Computer nicht genau genug sagen können, was genau sie wollen.
quelle
DONALD problem
Problem in diesem Blog zeigt, wie weit wir noch entferntsudo make me a sandwich
sind und wie viel Fortschritt wir in den letzten 50 Jahren gemacht haben.Die Sprache der n-ten Generation ist ein Schlagwort. Es ist ein Marketingbegriff. Es gibt keine allgemein akzeptierte Definition dessen, was genau die „n-te Generation“ für n> 2 definiert. Einige Leute kategorisieren Skriptsprachen wie Perl oder Python als 4GLs, weil sie viel übergeordneter sind als C, während andere die Definition denken 4GLs zeichnen sich dadurch aus, dass sie domänenspezifisch sind, z. B. SQL. Einige Trottel glauben sogar, dass Java (eine Sprache aus der Mitte der 90er Jahre, die voller Objektorientierung und Speicherbereinigung und -reflexion ist) in die gleiche „3GL“ -Kategorie gehört wie Fortran (aus den 50er Jahren) und C (aus den 70er Jahren).
Eine so verwirrende Kategorisierung wie „Sprache der 4. Generation“ ist nutzlos. Sie können es in alten Lehrbüchern sehen oder von Leuten hören, die in den 80er Jahren mit dem Programmieren begonnen haben, aber ein Tag wie „4GL“ ist wertlos, ohne eine begleitende Erklärung, was der Autor genau damit meint.
Da niemand sofort versteht, was Sie unter "4GL" verstehen, sollten Sie solche Kategorisierungen nicht verwenden. Verwenden Sie stattdessen bestimmte Begriffe, um genau zu kommunizieren, was Sie meinen. Beispiel: NASM, LLVM IR und Jasmin sind alle Assemblersprachen. Die beiden letztgenannten Ziel-VMs und die letzte sind ebenfalls objektorientierte Programmiersprachen. Sind alle diese 2GLs? SQL ist eine teilweise deklarative, domänenspezifische Sprache für Datenbankabfragen aus den 80er Jahren. Und TeX ist eine domänenspezifische Sprache für den Schriftsatz aus den 70er Jahren. Sind beide 4GLs, da beide mehr oder weniger domänenspezifisch sind?
quelle
(I + 7) * 3
. Es besteht jedoch kein Konsens darüber, wo die Kategorie 3GL endet und was 4GL und 5GL konkret bedeuten sollen.