Cosa si intende per 4 GL?

4

Mi sono imbattuto nel termine 4GL (linguaggio generazionale) nella lettura dei componenti Oracle ADF Busniess. Voglio sapere che cosa è esattamente 4GL?

Questa è la citazione effettiva dal libro Guida Oracle Fusion :

Oracle ADF Business Components is the business services layer of choice in Oracle Fusion application development. Compared to other persistence layers, ADF Business Components provides exceptional built-in business application functionality and maximally declarative experience that makes it a perfect match for those who seek an end-to-end fourth generation language (4GL) Java EE development architecture.

    
posta Geek 13.12.2012 - 15:38
fonte

3 risposte

6

Ho quasi sempre parlato delle lingue 4GL come lingue in cui anche un analista tecnico può programmare come strumenti CASE (Computer Assisted Software Engineering). Tuttavia, a quanto pare c'è molto di più rispetto a quello di Wikipedia .

La società con cui lavoro lavora parecchio con Oracle ADF e abbiamo il nostro strumento CASE per lo sviluppo mobile e quindi ci riferiamo anche alla nostra lingua come una 4GL. Specificamente lo chiamiamo come tale perché include un IDE che genera codice sul back-end basato su diagrammi di flusso e script molto semplici. È in grado di gestire tutte le interazioni di base con database, file system, repository, risorse, promozioni, cronologia e distribuzione degli script in un modo facilmente accessibile. Oracle ADF ha un sistema simile.

Dato che direi che un linguaggio 4GL è un linguaggio che astrae i dettagli dello sviluppo in un livello superiore che consente una maggiore produttività o consente all'analista tecnico di essere in grado di lavorare con esso.

    
risposta data 13.12.2012 - 15:51
fonte
5

4GL è un termine un po 'nebuloso.

È un tentativo di descrivere una lingua in cui il programmatore è in grado di risolvere un problema specifico del dominio senza doversi preoccupare di problemi che non sono specifici del dominio (come memoria / memoria / comunicazione). Tutti questi costrutti di basso livello sono astratti dal linguaggio.

Ci sono stati molti tentativi per raggiungere questo obiettivo nel corso degli anni nessuno ha avuto "molto" successo. Questo di solito è perché sia efficace il dominio del problema che il linguaggio copre è molto specifico (e quindi ha un pubblico limitato (ciò non significa che non siano popolari solo che il pubblico è piccolo)).

Naturalmente perché il termine non è ben definito c'è anche un abuso del termine. A volte può essere utilizzato per definire framework in cui è sufficiente collegare moduli di codice e l'infrastruttura si occupa di tutto il materiale di basso livello mentre il plug-in si occupa solo di elementi a livello di dominio.

    
risposta data 14.12.2012 - 04:07
fonte
4

La migliore spiegazione è quella che copre tutte le generazioni:

  • 1st-gen è l'opcode della macchina. Questi sono i codici binari (esadecimali se si desidera) che il computer effettivamente comprende e lavora a livello hardware.
  • 2nd-gen è il linguaggio assembly. Queste sono etichette leggibili per gli opcode effettivi, rendendo più facile per un essere umano scrivere un programma senza dover ricordare o fare costantemente riferimento agli opcodi numerici e agli indirizzi di posizione dei registri e delle unità logiche / aritmetiche, ecc.
  • 3rd-gen sono la maggior parte dei programmatori linguistici attualmente in codice che sono destinati a produrre programmi che girano sul computer come applicazioni: C / C ++, Basic / VB, Pascal / Delphi, ecc. Questi linguaggi sono compilati in assembly file di linguaggio, quindi i riferimenti tra questi file sono collegati tra loro e i risultati digeriti in codice macchina, ma i linguaggi di terza generazione forniscono costrutti come loop logici, variabili e principi orientati agli oggetti in una forma che li rende facili per gli umani con cui lavorare e capire Essi astraggono molto il pensiero logico di basso livello, consentendo ai programmatori di pensare in passi leggermente più grandi (anche se una parte fondamentale dell'istruzione informatica è insegnare agli studenti a pensare in piccoli passi che un computer può seguire).
  • 4th-gen sono lingue inventate per comunicare con altri programmi. Linguaggi di markup (XML / HTML), linguaggi di query (SQL), linguaggi di scripting (JavaScript), anche alcuni dei protocolli di comunicazione di livello superiore come HTTP e SOAP sono considerati lingue di quarta generazione. Questi non sono, direttamente, compilati nelle istruzioni della macchina; esistono invece per essere interpretati da un altro programma che poi esegue il compito che è stato chiesto dal programma che ha ricevuto.

Per essere onesti, non c'è più una linea di demarcazione molto chiara tra la 3a e la 4a gen. Alcuni sono chiaramente uno o l'altro, come C / C ++ (3 °) e SQL (4 °). Ma, per esempio, Java è considerato di terza generazione, perché ha lo scopo di creare programmi che sono "applicazioni" a pieno titolo? O è 4-gen, perché Java non è compilato in codice macchina, ma in un linguaggio intermedio di bytecode, che vengono quindi interpretati da un ambiente macchina virtuale (la maggior parte dei quali sono a loro volta ospitati da qualche altro programma come un browser web o web server) che fa effettivamente quello che dice il codice del programmatore? Lo stesso potrebbe essere chiesto ai linguaggi .NET come C # / VB e alla maggior parte dei linguaggi funzionali, che richiedono runtime che nascondono tutta la logica imperativa e gli effetti collaterali, in modo che il programmatore possa pensare in termini più matematici e valutativi .

    
risposta data 13.12.2012 - 22:18
fonte

Leggi altre domande sui tag