jkrueger@daitc.daitc.mil (Jonathan Krueger) (08/23/88)
>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
allbery@ncoast.UUCP (Brandon S. Allbery) (08/23/88)
As quoted from <24484@bu-cs.BU.EDU> by berlin@bu-cs.BU.EDU (David K. Fickes): +--------------- | 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?? +--------------- This has, I believe, been the subject of a few "religious wars". I can only give my opinion on the matter; others may disagree. SQL and QUEL are data retrieval and modification languages. They are not sufficiently general that complete data manipulation programs can be written in them (unless they only perform simple retreval and modification), thius they are not 4GLs. They may, however, be used as a basis for the construction of 4GLs, thus we have OSL, Accell/Language, Informix-4GL, etc. There are non-SQL-based 4GLs as well. Progress is one; dBase also qualifies, although it is not as general as the others I've mentioned in this article. ++Brandon -- Brandon S. Allbery, uunet!marque!ncoast!allbery DELPHI: ALLBERY For comp.sources.misc send mail to ncoast!sources-misc
evan@telly.UUCP (Evan Leibovitch) (08/24/88)
In article <641@stech.UUCP>, sysop@stech.UUCP (Jan Harrington) writes: > > I don't consider languages such as dBase's as 4GLs. They are more like > 3GLs (e.g., Pascal) with DBMS extensions. I agree, and would extend that definiton to include most self-proclaimed '4GL' packages such as the one by Informix. Let's face it. For the foreseeable future, the term 'fourth generation language' has been appropriated by marketing types, and should be treated as suspect in any non-academic context. -- Evan Leibovitch, SA of System Telly, located in beautiful Brampton, Ontario evan@telly.UUCP / {uunet!attcan,utzoo}!telly!evan The advantage of the incomprehensible is that it never loses its freshness.
billc@rtech.UUCP (Bill Coffin) (08/24/88)
A lot of people have talked about what a 4GL should look like. This is valuable but omits some philosophical underpinnings. Here is a taxonomy that was suggested to me by a friend: 1GL -- hardware level. patchcords, etc. 2GL -- symbolic. Hides (abstracts) a lot of hardware dependencies. 2GLs separate the hardware implementation from the architecture. 3GL -- algorithmic. Differs from 2GL in that it allows programmers to write at the algorithmic level. 3GLs hide the architecure. However, 3GLs are still procedural -- the programmer tells the computer HOW to do stuff. 4GL -- specification. Differs (ideally) from a 3GL in that programmers specify what they want done, not how to do it. That is, a true 4GL would be entirely non-procedural and non-algorithmic, accepting high-level goal-oriented specifications as input and producing complete applications as output. However, I have never seen a "4GL" that didn't have some 3GL glue to hold the 4GL parts together. That is, the above definition is an ideal, and it's hard to imagine how it could be fully implemented. Most 4GLs I've seen are forms systems and forms editors with lots of clever defaults and menu-driven configuration, but with procedural stuff available for when the defaults don't make it. So in this taxonomy, all current so-called 4GLs are really 3.5GLs. (By the same argument, since C does a poor job of hiding architecture, C could really be called a 2.6GL.) Surprisingly, QUEL is a 4GL in this taxonomy, since it is non-procedural. So I guess this taxonomy lacks completeness criteria. {sun,pyramid,mtxinu,amdahl}!rtech!billc, billc@rtech.uucp
seavey@portia.PRC.Unisys.COM (Beverly Seavey) (08/24/88)
In article <314@telly.UUCP>, evan@telly.UUCP (Evan Leibovitch) writes: >4GL -- specification. Differs (ideally) from a 3GL in that programmers specify what they want done, not how to do it. That is, a true 4GL would be entirely non-procedural and non-algorithmic, accepting high-level goal-oriented specifications as input and producing complete applications as output. >Surprisingly, QUEL is a 4GL in this taxonomy, since it is non-procedural. >So I guess this taxonomy lacks completeness criteria. I saw a comment in, I think, Ulmann's new book on knowledge bases, that giving full power to query languages would make the optimization of queries undecidable.
pavlov@hscfvax.harvard.edu (G.Pavlov) (08/25/88)
In article <2389@rtech.rtech.com>, davek@rtech.rtech.com (Dave Kellogg) writes: > > I'll refrain from trying to define a 4GL, but I'll say that SQL and > QUEL are Data Manipulation and Data Defintion languages, and not > what I would consider fourth generation langauges. > ................................... I believe Chris Date (noted DBMS > expert) uses the terms DDL and DML often in his writings as well. > I am pretty sure that the concepts of DDL and DML were first introduced in the original CODASYL (hierarchical/network) database definition. Not to take anything away from Date, most certainly, by no means, etc... > (No *definition* here, but I will list some properties) Here neither. The primary property of interest to our shop is the tools to manipulate complex structures (such as forms, menus, graphs) as simple objects. The following is NOT a complaint, simply an observation: the problem at present is that many of the key characteristics of these structures are "wired" into the dbms code. Which means that even minor deviations from the default concept of an object will often require tremendous increases in the amount of 4GL code one must write. But even with this, the effort required to implement an application is very substantially reduced. > > For example INGRES OSL is a superset of SQL. It's too bad (for us long-time Ingres users AND customers) that RTI is trying so hard to forget its QUEL heritage ........ :-) > ================================================================= > David Kellogg > Relational Technology (INGRES) New York City greg pavlov, fstrf, amherst, ny
gupta@cullsj.UUCP (Yogesh Gupta) (08/25/88)
In article <314@telly.UUCP>, evan@telly.UUCP (Evan Leibovitch) writes: > > Let's face it. For the foreseeable future, the term 'fourth generation > language' has been appropriated by marketing types, and should be treated > as suspect in any non-academic context. > -- For your enjoyment, here are excerpts from an article in "Digital NEWS", a bi-weekly technical {:-) :-)} publication: ====== Next Stop: 5GLs While software houses continue to tout the productivity gains of their 4GL products, they eye the future - and so-called 5GLs - with excitement. To Ottawa-based Cognos Inc., the makers of PowerHouse software, the fifth generation is synonymous with expert systems and artificial intelligence, said Henry Urion, senior product-line manager. [...] "We're on the threshold of having some very serious offerings ourselves in that direction," he said. [...] Roger Brown, president of Beaverton, Ore.-based Interactive Technology Inc., producers of RDM: The Application Developer, could not offer a 5GL definition. "The paradox is, a 5GL is not going to be language at all." Mark Hannah, product-marketing manager for Alameda, Calif.-based Relational Technology Inc., views the fifth generation as visual programming. "And we've started on that," he said. "When you design an application using Ingres, you use the Ingres screen painter. It's similar for reports and queries." [...] ====== Now things are really improving :-)! -- Yogesh Gupta | If you think my company will let me Cullinet Software, Inc. | speak for them, you must be joking.
DMasterson@cup.portal.com (08/25/88)
I've read with the interest the definitions of 4GLs that I've seen so far, but none have quite hit the mark that I expected. This is not to say that I think I have a definitive definition of 4GL, just another one. ;-) 4GL - a language providing the features to allow a user to describe the information he desires and the form in which he desires to see it, but leaves the mechanism by which this information is gathered and presented to the system. I believe this is a flexible and complete definition that doesn't limit the implementation of a 4GL to just a conglomeration of previously specified tools. However, this begs the question -- what's a 5GL?? :-)) David Masterson DMasterson@cup.portal.com
vaisanen@ujocs.UUCP (Jarmo V{is{nen) (09/01/88)
From article <5172@pasteur.Berkeley.EDU>, by larry@postgres.uucp (Larry Rowe): > > I have developed the following definition of a 4GL. > > ``A fourth generation language (4GL) is an integrated programming > environment for interactive database applications that must include > the following features: > > 1. a database management system, > 2. a reportwriter, > 3. a forms system, > 4. a procedural language with embedded database and form > input/output commands, and > 5. an integrated data dictionary.'' > > A 4GL can include other features (e.g., version control, wysiwyg report/form > editors, structured editors, etc.), but it *must* include the features above. > Notice that the definition does not prescribe a relational DBMS, but most > 4GL's today are being converted to SQL so they are relational. > larry What is the difference between a 4GL and an application generator if you use this definition (or something else)? What is an application generator anyway? Jarmo ------------------------------------------------------------------------------ ! Jarmo V{is{nen ! Actually that's Jarmo Vaisanen where last! ! Department of Computer Science, ! two a:s are with two dots above them. ! ! University of Joensuu ! ! ! P.O. Box 111, ! [Why do we have these punctuation chars ! ! SF-80101 JOENSUU FINLAND ! in our names? I may as well change my ! ! vaisanen@ujocs.Joensuu.FI ! name. Sigh! ... :-] ! ------------------------------------------------------------------------------
garyp@cognos.uucp (Gary Puckering) (09/01/88)
In article <24484@bu-cs.BU.EDU> berlin@buita.bu.edu (David Fickes Einstein Project) writes: >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?? I've heard many answers to this question. Here is my favorite answer (I won't disclose the author): "A 4GL is any language created by software vendors after 1978" Similarly, there is a definition for relational database: "A relational DBMS is any DBMS created after DB2" -------------- Seriously, though, I believe that a 4GL differs from a 3GL (or, indeed, from a DBMS) in that it has built-in algorithms and heuristics that speed up the process of developing applications of a certain type (for example, commercial applications). Forerunners of this concept were COBOL with Report Writer and RPG. In fact, I can think to no good reason not to class RPG as a 4GL. It has a built-in logic cycle for generalized report writing, balance-line updating, etc. More recent 4GL's exhibit similar but more comprehensive capabilities and most are now driven by a data dictionary which provides a centralized source of data definitions and rules for presentation, editing, and representation of data. -- Gary Puckering P.O. Box 9707 Cognos Incorporated 3755 Riverside Dr. VOICE: (613) 738-1440 FAX: (613) 738-0002 Ottawa, Ontario UUCP: uunet!mnetor!dciem!nrcaer!cognos!garyp CANADA K1G 3Z4