Comme il est souvent classé au niveau de l'école ou du collège, les langages de programmation courants (C #, Java, C ++) sont tous des langages de 3ème génération (avec un niveau d'abstraction plus élevé des parties physiques de la machine). De plus, les langues d'assemblage sont classées comme langues de 2e génération et les langues de machine comme langues de 1ère génération.
Au départ, je pensais que SQL devrait être considéré comme un langage de 4ème génération car il est plus abstrait et plus éloigné des détails de la mise en boucle et plus descriptif.
Je viens tout juste de découvrir qu'il existe des langages de 4e et de 5e génération, mais quelle est la base d'un langage de programmation ou d'une technologie pour être classé comme langage de 4e ou de 5e génération?
De plus, existe-t-il des langues de 6ème ou 7ème génération?
Réponses:
Vue d'ensemble des générations simples: un langage est la génération la plus récente
Par conséquent, même des langues aussi nouvelles que Google Go ou Apple Swift sont toujours solidement de la 3ème génération. Regex est un langage de correspondance de texte, ce qui en fait un langage précoce de 4ème génération. Selon cette définition, la 4ème génération est étroitement alignée sur les DSL. Cependant, notez que les langages tels que C ++ peuvent avoir des types du monde réel tels que
Length
etWeight
en plusfloat
etdouble
, ce qui en fait des hybrides de 3ème / 4ème génération.Les langues de la 5ème génération n'existent pratiquement pas, car elles nécessitent généralement un niveau d'IA qui ne s'est jamais matérialisé. Le fait que les programmeurs soient toujours nécessaires est précisément dû au fait que les non-programmeurs ne peuvent pas dire à un ordinateur avec suffisamment de précision ce qu'il veut exactement.
la source
DONALD problem
problème de ce blog souligne à quel point nous sommes encore loinsudo make me a sandwich
et combien nous avons progressé de manière inquiétante au cours des 50 dernières années.«Langage de la nième génération» est un mot à la mode. C'est un terme de marketing. Il n’existe pas de définition universellement acceptée de ce qui définit exactement la "nième génération" pour n> 2. Certaines personnes classent les langages de "script" tels que Perl ou Python dans la catégorie des 4GL car ils sont beaucoup plus sophistiqués que le C, Les caractéristiques des 4GL sont qu’elles sont spécifiques à un domaine, par exemple SQL. Certains Nitwits pensent même que Java (langage du milieu des années 90 riche en orientation d'objet, en ramasse-miettes et en réflexion) appartient à la même catégorie «3GL» que Fortran (des années 50) et C (des années 70).
Une catégorisation aussi confuse telle que «langage de 4ème génération» est inutile. Vous pouvez le voir dans de vieux manuels, ou l'entendre de gens qui ont commencé à programmer dans les années 80, mais une étiquette telle que «4GL» ne vaut rien sans une explication d'accompagnement de ce que l'auteur veut dire exactement.
Puisque personne ne comprend immédiatement ce que vous entendez par «4GL», vous ne devriez pas utiliser de telles catégorisations. Au lieu de cela, utilisez des termes spécifiques pour communiquer précisément ce que vous voulez dire. Par exemple, NASM, LLVM IR et Jasmin sont tous des langages d'assemblage, mais les deux derniers ordinateurs virtuels cibles et le dernier sont également un langage de programmation orienté objet. Sont tous ces 2GL? SQL est un langage partiellement déclaratif, spécifique à un domaine, pour les requêtes de base de données à partir des années 80. Et TeX est un langage spécifique au domaine pour la composition à partir des années 70. Sont-ils les deux 4GL puisqu'ils sont tous deux plus ou moins spécifiques à un domaine?
la source
(I + 7) * 3
. Cependant, il n'y a pas de consensus sur l'endroit où la catégorie 3GL se termine, ni sur ce que 4GL et 5GL sont spécifiquement supposés signifier.