Quali sono le 4a e 5a generazioni del linguaggio di programmazione? Ce ne sono più di loro? [chiuso]

36

Come spesso è classificato a livello di scuola / università, i linguaggi di programmazione popolari (C #, Java, C ++) sono tutti linguaggi di terza generazione (con un livello più alto di astrazione dalle parti fisiche della macchina). Inoltre, le lingue di assemblaggio sono classificate come lingue di seconda e macchina come lingue di prima generazione.

Inizialmente pensavo che SQL dovesse essere considerato un linguaggio di quarta generazione, perché è più astratto e lontano dai dettagli del looping e più descrittivo.

Proprio ora ho scoperto che esistono linguaggi di quarta generazione e di quinta generazione, ma qual è la base per qualsiasi linguaggio o tecnologia di programmazione da classificare come lingua di quarta o quinta generazione?

Inoltre, ci sono anche le lingue di sesta o settima generazione?

    
posta Ali 05.01.2015 - 13:17
fonte

2 risposte

35

Panoramica delle generazioni semplici: una lingua è la non generazione quando sono elementi costitutivi

  1. bit
  2. istruzioni
  3. Operazioni astratte
  4. Oggetti dominio
  5. Obiettivi del programma

Quindi anche le lingue nuove come Google Go o Apple Swift sono ancora solidamente di terza generazione. Regex è un linguaggio di adattamento del testo, che lo rende un linguaggio di prima generazione di quarta generazione. Con questa definizione, la quarta generazione si allinea strettamente con le DSL. Tuttavia, tieni presente che linguaggi come C ++ possono avere tipi reali come Length e Weight oltre a float e double , che li rende ibridi di 3 ° / 4 ° generazione.

Le lingue di quinta generazione non esistono praticamente, in quanto richiedono generalmente un livello di intelligenza artificiale mai materializzato. Il fatto che noi programmatori siamo ancora necessari è esattamente perché i non programmatori non possono dire a un computer con una precisione sufficiente cosa vogliono esattamente.

    
risposta data 05.01.2015 - 15:37
fonte
87

"linguaggio dell'ennesima generazione" è una parola d'ordine. È un termine di marketing. Non esiste una definizione universalmente accettata di ciò che definisce esattamente la "n-generazione" per n > 2. Alcune persone classificano linguaggi "scripting" come Perl o Python come 4GL perché sono molto più di alto livello rispetto a C, mentre altri ritengono che le caratteristiche di definizione di 4GL siano che sono specifici del dominio, ad es. SQL. Alcuni imbecilli pensano addirittura che Java (un linguaggio degli anni '90 pieno di orientamento agli oggetti e raccolta e riflessione dei rifiuti) appartenga alla stessa categoria "3GL" come Fortran (dagli anni '50) e C (dagli anni '70).

Una categorizzazione così confusa come "linguaggio di quarta generazione" è inutile. Potresti vederlo nei vecchi libri di testo o ascoltarlo da persone che hanno iniziato a programmare negli anni '80, ma un tag come "4GL" è inutile senza una spiegazione di ciò che esattamente significa l'autore.

Dal momento che nessuno capisce immediatamente cosa intendi per "4GL", non dovresti usare tali categorizzazioni. Invece, usa termini specifici per comunicare con precisione cosa intendi. Per esempio. tutti NASM, LLVM IR e Jasmin sono linguaggi di assemblaggio, ma gli ultimi due VM di destinazione e l'ultimo è anche un linguaggio di programmazione orientato agli oggetti. Sono tutti questi 2GL? SQL è un linguaggio parzialmente dichiarativo, specifico per dominio, per query di database degli anni '80. E TeX è un linguaggio specifico del dominio per la composizione degli anni '70. Sono entrambi 4GL poiché sono entrambi più o meno specifici del dominio?

    
risposta data 05.01.2015 - 14:47
fonte