Path: utzoo!attcan!uunet!lll-winken!lll-tis!daitc!jkrueger From: jkrueger@daitc.daitc.mil (Jonathan Krueger) Newsgroups: comp.databases Subject: Re: SQL = 4GL ??? Keywords: 4GL buzzwords Message-ID: <161@daitc.daitc.mil> Date: 22 Aug 88 22:18:17 GMT References: <24484@bu-cs.BU.EDU> <641@stech.UUCP> Reply-To: jkrueger@daitc.daitc.mil.UUCP (Jonathan Krueger) Organization: Defense Applied Information Technology Center, Alexandria VA Lines: 54 >We've just managed to start an argument here regarding the >actual definition of 4GL and its relationship to SQL... > >IS SQL considered a 4GL? >and if it isn't .. what is it? ... also as long as I'm >asking, what about QUEL, dBASE, and other languages... >according to my RTI (Ingres) documentation they call OSL >a 4GL but not SQL or QUEL... could someone define the >term 4GL?? 1GL machine language: toggle switches, modify plugboards, binary edit machine instructions 2GL assembler: mnemonics for instructions, symbols for data and control structures, subroutine libraries 3GL programming languages like C, Pascal, Fortran: portable machine-independent programs, portable function libraries, more abstract data and control structures These terms were coined after the fact. At the time, 3GL's were called "high level languages" or even "automatic programming systems"! So if you find such distinctions facile, and don't think them accurate or useful, great, they're all just generalizations. At least there's consensus about what they mean. But "4GL" has been used before the fact, mostly by marketing types. Little consensus has developed concerning its use. For instance, I'd use the term to mean: 4GL packages, toolkits, or shells; higher level abstractions than 3GL, aimed at safer and more productive programming; specialized to certain kinds of programming, such as database management, circuit simulation, process control. Usually tries to encapsulate commonly used constructs from 3GL's, for instance "where clause" qualification encapsulates iteration. Therefore, I'd have no problem with calling SQL a 4GL, just as I'd accept the circuit description language for SPICE. However, common vendor use, such as your RTI docs, would use 4GL to mean: 4GL application generation, aimed at programming for non-programmers; automatic generation of a user interface from a data dictionary and programmer-specified customizations Which would accept OSL but not SPICE or SQL. So if you listen to people selling dbms software, their 4GL will be touted as an addition to SQL. The rest of us have fallen into that usage, but would accept other tools and shells as well, e.g. the Unix shell, SQL, SPICE, KEE. -- Jonathan Krueger uunet!daitc!jkrueger jkrueger@daitc.arpa (703) 998-4777 Inspected by: No. 15