mohan@ihlpf.ATT.COM (Mohan Palat) (08/25/88)
>From: larry@postgres.uucp (Larry Rowe) >Newsgroups: comp.databases >Subject: Re: SQL = 4GL ??? >Organization: Postgres Research Group, UC Berkeley > >SQL is *definitely* not a 4GL. As some of the other responders noted, >SQL is a data definition and manipulation language. Unfortunately, early >press reports about SQL advertised it as a 4GL. > If 1GL = machine languages, 2GL = assembly languages, 3GL = high level programming languages, and SQL cannot be classified as a 4GL, then where exactly do data definition and manipulation languages like SQL fit in, in this hierarchy? Surely SQL cannot be classified as a 5GL, i.e., at a level higher than the current definition of a 4GL. Maybe the current 4GLs should be called 5GL and languages like SQL should be called 4GL. Mohan Palat ihlpf!mohan -- MOHAN PALAT
fwb@demon.siemens.com (Frederic W. Brehm) (08/25/88)
larry@postgres.uucp (Larry Rowe) writes: >SQL is *definitely* not a 4GL. mohan@ihlpf.ATT.COM (Mohan Palat) responds: > If 1GL = machine languages, 2GL = assembly languages, 3GL = high level > programming languages, and SQL cannot be classified as a 4GL, > then where exactly do data definition and manipulation languages > like SQL fit in, in this hierarchy? I quip: Perhaps this isn't a one dimensional problem. Fred ---------------------------------------------------------------------------- Frederic W. Brehm Siemens Research and Technology Laboratories 105 College Road East Princeton, NJ 08540 (609) 734-3336 uucp: {att!princeton, astrovax, pruxe}!siemens!demon!fwb Internet: fwb@demon.siemens.com "From there to here, from here to there, funny things are everywhere." - Dr. Seuss
larry@postgres.uucp (Larry Rowe) (08/28/88)
In article <5829@ihlpf.ATT.COM> mohan@ihlpf.ATT.COM (Mohan Palat) writes: > > If 1GL = machine languages, 2GL = assembly languages, 3GL = high level > programming languages, and SQL cannot be classified as a 4GL, > then where exactly do data definition and manipulation languages > like SQL fit in, in this hierarchy? Surely SQL cannot be classified > as a 5GL, i.e., at a level higher than the current definition of > a 4GL. Maybe the current 4GLs should be called 5GL and languages > like SQL should be called 4GL. > SQL is a data definition and data manipulation language, not a programming language. while many computations can be expressed in SQL, there are many that cannot (e.g., write a parser in sql). i sympathize with the readers of this newsgroup that complain that the ``marketeers'' have co-opted the word 4GL to mean roughly what i defined. the problem i see is one of communication. when i say 3GL, most people understand what that means. they know what kinds of programs can be written using the language and they can usually identify examples of 3GL's. but, the same cannot be said about 4GL's. because there is imprecision about the definition, people cannot tell what a 4GL means. if the unix shell, lotus macros, sql, and focus are all to be considered 4gl's, i can't identify a class of programs that can be written in all of these languages. moreover, i would be hard pressed to determine whether a particular language was a 4GL (e.g., is the C preprocessor a 4GL?). my objective is to define what a 4GL is so that people will understand what capabilities that can expect from a 4GL, hence what kinds of programs can be written in one. the confusion surrounding the database application development languages (my notion of a 4GL) has hurt the progress of their development, adoption, and eventual standardization. *POUR GASOLINE ON THE FIRE* i think the biggest problem in the area of database application development is that there are no *standards* for 4GL's. the recent effort to standardize on SQL has solved a small part of the problem. my experience is that less than 20% of the lines of code in a 4GL application are sql commands. the remainder are: form i/o, reportwriting, application logic, and user interaction (e.g., error messages, help systems, etc.). the biggest problem that companies face today is selecting an appropriate language/environment for developing applications. while everyone is standardized on SQL, programs written by a company can be ported to other language/environments only if the company uses a standard 3GL (e.g., fortran, cobol, c) with sql standard embedding. the company must write their own forms system, reportwriter, etc. or their code won't be portable. a secondary problem, is that with a few notable exceptions, most 4GL's as programming languages, are comparable to BASIC. they do not support good program structuring mechanisms (e.g., data abstractions, packages, etc.), reasonable type systems (e.g., a complete set of type constructors for structured-types such as records, arrays, etc.), sophisticated program management tools (e.g., version control systems, recompilation tools, source-level debuggers, structured editors, etc.), or extensible environment facilities (e.g., 4GL's are inherently multiple-language environments, the programming environment must support management of ``programs'' written in these different languages as well as the addition of new languages to the environment). *THE BOTTOM LINE* maybe we have to argue about the definition of 4GL before we can get on to these issues. larry
allbery@ncoast.UUCP (Brandon S. Allbery) (09/01/88)
As quoted from <1493@siemens.UUCP> by fwb@demon.siemens.com (Frederic W. Brehm): +--------------- | larry@postgres.uucp (Larry Rowe) writes: | >SQL is *definitely* not a 4GL. | | mohan@ihlpf.ATT.COM (Mohan Palat) responds: | > If 1GL = machine languages, 2GL = assembly languages, 3GL = high level | > programming languages, and SQL cannot be classified as a 4GL, | > then where exactly do data definition and manipulation languages | > like SQL fit in, in this hierarchy? | | I quip: | Perhaps this isn't a one dimensional problem. +--------------- Just to expand on that... SQL doesn't fit into the hierarchy. This is because it is not *complete*; it can do a certain limited set of operations, but almost every real-world application uses SQL in conjunction with other languages, whether 3GLs (C, Ada, PL/I, Pascal, whatever) or 4GLs (OSL, Informix-4GL, Accell/Language, etc.). SQL may be used as a component in a 4GL, but it is not complete enough to be a 4GL, or a 3GL, or anything else. ++Brandon -- Brandon S. Allbery, uunet!marque!ncoast!allbery DELPHI: ALLBERY For comp.sources.misc send mail to ncoast!sources-misc "Don't discount flying pigs before you have good air defense." -- jvh@clinet.FI