From: Jian Zhen
Subject: forth/fifth generation languages?
Date: 
Message-ID: <CBFLM2.vK@mentor.cc.purdue.edu>
I have been talking with my friends about computer languages and he
mentioned terms such as "forth/fifth generation languages", since I am
a newbie on computers, I was wondering if someone could help me out on
explaning those terms to me.  What exactly are they?  What are the
difference between them?  and What are the first to third generation
languages?

If anyone knows any documentations on the net that explain these,
please let me know.  I really appreciate it.

Since I don't usually read these newsgroups very often, I would prefer
response by E-Mail to ···@sonata.cc.purdue.edu and I will summarize if
it's necessary.

Thanks very much for all your help.

--
+---------------------------------------------------------------------------+
| Jian Liang Zhen          | Lifeforms are extinct on other planets because |
| ···@sonata.cc.purdue.edu | their sciences are more advanced than ours.    |
|___________/---> Linux: There IS such thing as FREE lunch! <---\___________|

From: Marty Fouts
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <FOUTS.93Aug8152353@cello.hp.com>
first generation:	Raw machine code
  When computers were first "programmed" from an input device, rather
than by being rewired, they were fed input in the form of numbers,
which they then interpretted as commands.  This was really low level,
and a program fragment might look like
  010307
  010307
Almost no one programs in machine language anymore, because
translators are nearly trivial to write.
 
second generation:	Symbolic assembly language
  Somebody figured out that humans weren't really good at writing
programs this way, and tried to wrote one that translated symbols into
these numbers.  Second generation language for the same fragment might
be
   add r3, r7
   add r3, r7
most machine assembly languages fit this format

third generation:	"high level" languages
  Eventually it was figured out that even this was too close to the
machine, so they idea of expressing the program in a form easier for
a human to understand, including things like variables was developed.
The above fragment might be
    let c = c + 2 * d
in such a language.  Fortran, Algol and Cobal are early examples of
this sort of language.  Most "modern" languages (including C++) are
third generation.

fourth generation:	"application specific" languages
  The first three generations were developed fairly quickly, but it
was still frustrating, slow, and error prone to programm computers,
leading to the first "programming crisis", in which the amount of work
that might be assigned to programmers greatly exceeded the amount of
programmer time available to do it.  Meanwhile, a lot of experience
was gathered in certain areas, and it became clear that certain
applications could be generalized by adding limited programming
languages to them.  Thus was born report-generator languages, which
were fed a description of the data format and the report to generate
and turned that into a cobal (or other language) program which
actually contained the commands to read and process the data and place
the results on the page.  Fairly successful examples of fourth
generation languages include Metafont and RPG-II.  Some people include
database query languages (SQL) in this catagory, but I don't.

fifth generation:	A myth the Japanese spent a *lot* of money on
  About a decade ago, MITI decided it would spend 10 years and a lot
of money applying AI to programming, thus solving the software crisis.
The project spent its money and its ten years and just recently closed
down with a wimper.  It looks a lot like programming languages have
gotten about as good as they are going to, probably peaking at C, and
that we are currently in a period of regression, including such
languages as Ada and C++.

Basically, each 'generation' has been an attempt to find a way of
describing the problem to be solved using a more terse "language" than
the previous.  The first three generations were simple refinements on
an attempt to command the computer (imperative languages) while the
fourth was an attempt to shift the way in which programming was done
(descriptive languages.)  The fifth was, and continues to be,
mumbo-jumbo.  (I'm sure someone will volunteer to correct this last
assesment.)

Marty
--
Martin Fouts
·····@hpl.hp.com
From: Jan Peter de Ruiter
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <1993Aug9.084733.16628@rulway.LeidenUniv.nl>
In article <··················@cello.hp.com>, ·····@cello.hp.com (Marty
Fouts) writes:

|> fifth generation:	A myth the Japanese spent a *lot* of money on
|>   About a decade ago, MITI decided it would spend 10 years and a lot
|> of money applying AI to programming, thus solving the software crisis.
|> The project spent its money and its ten years and just recently closed
|> down with a wimper.  It looks a lot like programming languages have
|> gotten about as good as they are going to, probably peaking at C, and
|> that we are currently in a period of regression, including such
|> languages as Ada and C++.
|> 

Unfortunately, you're not telling us what the goal of the 5th generation
languages was. I only know that they failed, but what were they trying
to do?

Jan
From: Robert Dewar
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <245k0p$lv@schonberg.cs.nyu.edu>
In my opinion, while the 4GL concept is pretty well defined (read Jim Martin's
articles and books on this subject, and look at the tools that are out there
now), the idea of 5GL languages is murky, and better regarded as a concept
with a name but no substance. The Miti 5GL project was NOT a language project
per se, but rather a comprehensive approach to advanced AI systems with an
emphasis on natural language comprehension. There was some element of language
work, in the form of enhanced prolog, but really the respondents in this
group who have assumed that the 5GL project has something to do with what
people mean when they talk about fifth generation languages are making the
mistake of uninformed keyword
matching
From: Marty Fouts
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <1993Aug9.173808.18828@cello.hpl.hp.com>
In article <·····················@rulway.LeidenUniv.nl>, ······@ruls41.LeidenUniv.nl (Jan Peter de Ruiter) writes:
|> In article <··················@cello.hp.com>, ·····@cello.hp.com (Marty
|> Fouts) writes:
|> 
|> |> fifth generation:	A myth the Japanese spent a *lot* of money on
|> |>   About a decade ago, MITI decided it would spend 10 years and a lot
|> |> of money applying AI to programming, thus solving the software crisis.
|> |> The project spent its money and its ten years and just recently closed
|> |> down with a wimper.  It looks a lot like programming languages have
|> |> gotten about as good as they are going to, probably peaking at C, and
|> |> that we are currently in a period of regression, including such
|> |> languages as Ada and C++.
|> |> 
|> 
|> Unfortunately, you're not telling us what the goal of the 5th generation
|> languages was. I only know that they failed, but what were they trying
|> to do?
|> 

Sorry about that.  The goal was "applying AI to programming, thus
solving the software crisis."  That is, MITI wanted to reduce the time
it took to complete a computer program, while at the same time
increasing the likelyhood that the resulting program would meet the
customer's real requirements and would be easy to extend as those
requirements changed.  This was to be done by increasing the part of
the programming job being done by the computer.  This was only one of
the ambitious goals of the 5th generation project.

Marty


-- 
Martin Fouts
·····@hpl.hp.com
From: Zdzislaw Meglicki
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <247bqr$5il@manuel.anu.edu.au>
In article <·····················@cello.hpl.hp.com>, ·····@cello.hpl.hp.com (Marty Fouts) writes:
|> In article <·····················@rulway.LeidenUniv.nl>, ······@ruls41.LeidenUniv.nl (Jan Peter de Ruiter) writes:
|> [...]
|> |> 
|> |> Unfortunately, you're not telling us what the goal of the 5th generation
|> |> languages was. I only know that they failed, but what were they trying
|> |> to do?
|> |> 
|> [...]
|> Sorry about that.  The goal was "applying AI to programming, thus
|> solving the software crisis."  That is, MITI wanted to reduce the time
|> it took to complete a computer program, while at the same time
|> increasing the likelyhood that the resulting program would meet the
|> customer's real requirements and would be easy to extend as those
|> requirements changed.  This was to be done by increasing the part of
|> the programming job being done by the computer.[...]

The 5th generation MITI project wasn't really all that expensive. At 
the best of times only about a 100 people worked at ICOT in Tokyo. Also,
the project didn't really die. It's been extended and the work now 
continues on producing UNIX ports of KL1 and various other software systems
developed using the PSI and PIM machines. A relatively small number of
experimental "Prolog Machines" (strictly speaking they should be called
KL1 or ESP machines, but to me KL1 and ESP look so much like Prolog 
that...) was produced by Mitsubishi. These were quite freely given 
to the researchers in other countries who were interested in joining 
the project.

The PIM machine was used recently to solve a remarkable number of
open problems in the quasigroup theory and you'll have a chance to 
hear more about it at the IJCAI in Chambery, France, August/September 
this year. 

Some people think that the greatest shortcoming of that project was 
the idea that AI
should be developed around a specially designed hardware platform.
In this the project perhaps made a similar mistake to Symbolics 
(and their Lisp machines). ICOT's "Prolog Machines" (PSI and PIM) 
were slow, expensive, and clumsy in comparison with modern workstations
or modern parallel supercomputers. 

Since much of the project was concerned from the beginning with
hardware and with a specific non-RISC large instruction set
microprocessor design, which goes against 
the current thinking about computer architectures, this part of
it was indeed closed down and the researchers who were hired for
the time of the life of the project were returned to their native
companies (in Japan, people are very seldom laid off). 

In retrospect, perhaps the greatest achievement of the project
was to put together a relatively large number of highly 
qualified computer scientists and hardware engineers and
let them work jointly for a while on something quite challenging
and interesting. This contributed to the standing and
broadening of the horizons of Japanese computer science 
and for a while produced a little bit of panic on the other 
side of the Pacific which was fun to watch.
-- 
   Zdzislaw Meglicki, ·················@cisr.anu.edu.au,
   Automated Reasoning Program - CISR, and Plasma Theory Group - RSPhysSE,
   The Australian National University, G.P.O. Box 4, Canberra, A.C.T., 2601, 
   Australia, fax: (Australia)-6-249-0747, tel: (Australia)-6-249-0158
From: Robert Dewar
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <2486qf$2c5@schonberg.cs.nyu.edu>
Well 5th generation retrospecting is pretty far from Ada, but since we have
a thread going, lete me add the following observations. I attended the
original 5th generation conference in Tokyo as an observer for the National
Research Council of the US. At that time, the program that was presented
focussed primarily on AI applications, with a strong emphasis on natural
language understanding. The business of building specialized hardware was
a relatively minor aspect, and the impression was clear that the center of
the program was the AI research, and the hardware guys had managed to climb
aboard for the MITI sponsored ride.

At the time, the judgment of many of us (if you like you can probably dig out
my report to NRC, it's public record, and was quoted widely), was that the
program was pretty much over-optimistic nonsense, and that the only thing
likely to come out was some interesting developments on the hardware front.

I have not seen anything to suggest that this original judgment (which many
of the other US observers shared) was incorrect, although actually I would
say that the achievments in the specialized hardware area are actually 
somewhat disappointing compared to what I expected at the time. 

All in all, you have to consider that the 5th generation effort was one of
MITI's failures (their track record is actually pretty spotty, other failed
efforts include the solar energy program and the commercial airline program).

(they have of course some significant success stories as well. I would 
actually rate PIP as a success, because although it didn't generate much
during the program, it sparked a thread of technology that has been very
useful -- perhaps in the long run 5G will be able to claim similar success,
though I doubt it)

Anyway, this sure is far away, not only from Ada, but also from the subject,
since, as I have pointed out before, the 5G project had very little to do
with programming languages. It did place an emphasis on Prolog (a decision
which seemed pretty peculiar to the AI folks at the conference, and was
widely assumed at the time to be a deliberate "we'll be different from the
US guys who use Lisp" type of decision). At the time they made all sorts
of glib statements about Prolog along the lines of "Prolog is pretty nice,
but lacks data abstraction and module capability, but never mind, we'll
create a marvellous new Prolog that solves these problems". Not much has
come of that either.)
From: Fergus James HENDERSON
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <9322314.24451@mulga.cs.mu.OZ.AU>
·····@cs.nyu.edu (Robert Dewar) writes:

>At the time they made all sorts
>of glib statements about Prolog along the lines of "Prolog is pretty nice,
>but lacks data abstraction and module capability, but never mind, we'll
>create a marvellous new Prolog that solves these problems". Not much has
>come of that either.)

Actually there's an excellent new logic programming language called
"Goedel" which is strongly typed and has a module system, which does a
reasonably good job with data abstraction.  Furthermore many current
Prolog implementations have module systems and the upcoming ISO Prolog
standard will include a module system.  [I don't think any of these had
much to do with the Japanese 5G project, but even if _they_ didn't do
it, other people have.]

-- 
Fergus Henderson                     ···@munta.cs.mu.OZ.AU
From: Kai M. Becker
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <qak78B1w165w@cameron.UUCP>
Can anyone tell me, why this diskussion goes on in so many groups
simultaneously? Cleaning up my news archive has become a hard job.

I propose, to post follow-ups to "Fourth/Fifth ..." to comp.software-eng.

-- Kai
From: David Wuertele
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <DAVE.93Aug9185657@yuriko.hal.t.u-tokyo.ac.jp>
In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts) writes:
>   fourth generation:	"application specific" languages
>	[...]  Fairly successful examples of fourth
>   generation languages include Metafont and RPG-II.  Some people include
>   database query languages (SQL) in this catagory, but I don't.

Don't forget FORTH !

Dave
From: Robert Dewar
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <245jj3$kd@schonberg.cs.nyu.edu>
I do not believe that RPG-II would qualify as a 4GL. The term was invented
by Jim Martin to refer to high level non-procedural languages built around
database systems. It is true that RPG-II has some of these characteristics,
but a better canonical example of a 4GL would be Focus.
From: Peter Van Roy
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <1993Aug15.134131.17249@prl.dec.com>
In article <··········@sol.ctr.columbia.edu>, ·······@still3.chem.columbia.edu (Peter Shenkin) writes:
 
> Most people think of FORTH and APL as 3rd-generation;  in fact, FORTH might
> be closer to 2nd generation.

> Some other successful and ongoing 4th-generation languages are:
> 
> 	PostScript

Why is Forth 3rd generation and PostScript 4th generation?

My programming experience in both Forth and PostScript leads me
to say that:

   PostScript = Forth + dynamic typing + graphics library

(Although I confess ignorance about whether Forth's BUILDS-DOES
facility can be done in PostScript.)

Is it the fact that PostScript is *embedded* in hardware used for
other purposes than computing, that makes it 4th generation?

Languages should be classified along lots of axes, not along the
single axis of "generation".  The force-fitting onto this single
axis just muddies the whole process of language comparison.

Peter

----------------------------------------------------------------
Peter Van Roy                      DEC Paris Research Laboratory
Email: ······@prl.dec.com              Phone: (33)-1-47.14.28.65
From: D.A.Turner
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <290@beech.ukc.ac.uk>
I am surely not alone in finding it just a trifle crazy that this thread
is  being  cross-posted  to  FIFTEEN  (!!) newsgroups.  Can I repeat the
appeal to anyone who wants to continue  this  thread  to  post  ONLY  to
comp.lang.misc?  Thanks a lot.

David Turner
(a comp.lang.functional subscriber)
From: Peter Shenkin
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <245kpl$bab@sol.ctr.columbia.edu>
[[ Note:  I've directed followups to comp.lang.misc. ]]

In article <·················@yuriko.hal.t.u-tokyo.ac.jp> ····@yuriko.hal.t.u-tokyo.ac.jp (David Wuertele) writes:
>In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts) writes:
>>   fourth generation:	"application specific" languages
>>	[...]  Fairly successful examples of fourth
>>   generation languages include Metafont and RPG-II.  Some people include
>>   database query languages (SQL) in this catagory, but I don't.
>
>Don't forget FORTH !

Most people think of FORTH and APL as 3rd-generation;  in fact, FORTH might
be closer to 2nd generation.  Some might put APL into the 4th-generation 
category, especially since it is interpreted.  Most 4GL's are interpreted.
Some other successful and ongoing 4th-generation languages are:

	PostScript
	S
	IDL-PV/WAVE
	Gauss
	Mathematica
	data-stream languages such as AVS, APE, Iris Explorer

One might then ask, "What's the difference between a language and an 
application?" The answer is probably, "That's a good question."  Most
people would probably consider the above to be languages.

	-P.
-- 
************************f*u*cn*rd*ths*u*cn*gt*a*gd*jb************************
Peter S. Shenkin, Box 768 Havemeyer Hall, Dept. of Chemistry, Columbia Univ.,
New York, NY  10027;  ·······@still3.chem.columbia.edu;  (212) 854-5143
********************** Wagner, Beame, Screvane in '93! ********************** 
From: Marty Fouts
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <1993Aug9.173905.18929@cello.hpl.hp.com>
In article <·················@yuriko.hal.t.u-tokyo.ac.jp>, ····@yuriko.hal.t.u-tokyo.ac.jp (David Wuertele) writes:
|> In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts) writes:
|> >   fourth generation:	"application specific" languages
|> >	[...]  Fairly successful examples of fourth
|> >   generation languages include Metafont and RPG-II.  Some people include
|> >   database query languages (SQL) in this catagory, but I don't.
|> 
|> Don't forget FORTH !
|> 

I didn't.  but since you asked:  Some people include FORTH in this
catagory, along with SQL, but I don't. (;-)

-- 
Martin Fouts
·····@hpl.hp.com
From: Richard M. Hartman
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <2148@ulogic.UUCP>
In article <·····················@cello.hpl.hp.com> ·····@hpl.hp.com writes:
>In article <·················@yuriko.hal.t.u-tokyo.ac.jp>, ····@yuriko.hal.t.u-tokyo.ac.jp (David Wuertele) writes:
>|> In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts) writes:
>|> >   fourth generation:	"application specific" languages
>|> >	[...]  Fairly successful examples of fourth
>|> >   generation languages include Metafont and RPG-II.  Some people include
>|> >   database query languages (SQL) in this catagory, but I don't.
>|> 
>|> Don't forget FORTH !
>|> 
>
>I didn't.  but since you asked:  Some people include FORTH in this
>catagory, along with SQL, but I don't. (;-)

I would consider FORTH to be 3rd generation, but PostScript (which
either has strong similarities to, or is based upon, FORTH) is 4th
generation (by your guideliens), due to it's application-specific 
(document printing) nature.

Another good example of 4th generation languages that people might
be more familiar with than MetaFont might be DBase (database-specific),
and some people consider spreadsheets like Excel to express a "language"
of a sort.

I think the archetypical fifth generation language was Prolog.

Anyone is free to disagree with any statement made herein.


		-Richard Hartman
		·······@ulogic.COM

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"There are no problems, only opportunities!"
"What we have here is an insurmountable opportunity..."
From: Mike Haynie
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <MBH.93Aug11095341@wisdom.wisdom.attmail.com>
In article <····@ulogic.UUCP> ·······@ulogic.UUCP (Richard M. Hartman) writes:

   In article <·····················@cello.hpl.hp.com> ·····@hpl.hp.com writes:
   >In article <·················@yuriko.hal.t.u-tokyo.ac.jp>, ····@yuriko.hal.t.u-tokyo.ac.jp (David Wuertele) writes:
   >|> In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts) writes:
   >|> >   fourth generation:	"application specific" languages
   >|> >	[...]  Fairly successful examples of fourth
   >|> >   generation languages include Metafont and RPG-II.  Some people include
   >|> >   database query languages (SQL) in this catagory, but I don't.
   >|> 
   >|> Don't forget FORTH !
   >|> 
   >
   >I didn't.  but since you asked:  Some people include FORTH in this
   >catagory, along with SQL, but I don't. (;-)

   I would consider FORTH to be 3rd generation, but PostScript (which
   either has strong similarities to, or is based upon, FORTH) is 4th
   generation (by your guideliens), due to it's application-specific 
   (document printing) nature.

I feel compelled to point out that the author of FORTH (whose name
I've forgotten) called it that because the file system he was using
wouldn't allow more letters. He intended to design a *fourth*
generation language which was aimed at control problems like
controlling large telescopes. Ergo, FORTH is a fourth generation
language, and one that refuses to die in spite of the CS
establishment. 

--

                                ____/|
Michael Haynie                  \ o.O|   ACK!
···@wisdom.attmail.com           =(_)=  THPHTH!
                                   U
From: Will Duquette
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <24b2ce$hms@elroy.jpl.nasa.gov>
In article <·················@wisdom.wisdom.attmail.com> Mike Haynie,
···@wisdom.attmail.com writes:
>I feel compelled to point out that the author of FORTH (whose name
>I've forgotten) called it that because the file system he was using
>wouldn't allow more letters. He intended to design a *fourth*
>generation language which was aimed at control problems like
>controlling large telescopes. Ergo, FORTH is a fourth generation
>language, and one that refuses to die in spite of the CS
>establishment. 

Granted, Chuck Moore called it FORTH because he intended to design
a Fourth-Generation Language.  But Fourth-Generation Language has
a fairly well-understood meaning these days (see other posts for
details).  According to the standard taxonomy, FORTH is at most
a third-generation language regardless of what Chuck Moore intended.

---------------------------------------------------------------------
Will Duquette,                | C Functions, SIMSCRIPT Processes,
····@SOLSTICE.JPL.NASA.GOV    |    but OPS5 Rules
From: Ian Woollard
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <WOLFE.93Aug13130025@bhars443.BNR.CA>
I think that (in fact I believe that) real fifth generation languages
are going to be increasingly more formal, and more diagrammatic.

Technologies like Entity Relationship Diagrams and object oriented
analysis are maturing rapidly, and atleast seem to be giving a
productivity boost, whilst being reviewable by customers, and
engineers alike.

The shift is starting: originally from hex to assembler, from
assembler to high level, from high level to application specific, and
from there to application independent analyses...

Current languages only support one small area of the development
cycle i.e. coding , fifth generation languages will need to support more:

Analysis, testing, coding, verification of requirements... control of changes etc. etc.

-Ian.
--


-Ian
<It's a quantum thing. It is indeterminate whether one exists until
someone /usr/bin/fingers you to find out.>
<I'm logged in so therefore I am.>
From: Ulrich Grepel
Subject: Re: forth/fifth generation languages?
Date: 
Message-ID: <CBKG89.4vx@zoodle.robin.de>
In article <··················@cello.hp.com> ·····@cello.hp.com (Marty Fouts)  
writes:
> 
> first generation:	Raw machine code
>   When computers were first "programmed" from an input device, rather
> than by being rewired, they were fed input in the form of numbers,
> which they then interpretted as commands.  This was really low level,
> and a program fragment might look like
>   010307
>   010307
> Almost no one programs in machine language anymore, because
> translators are nearly trivial to write.

That's not true. On mainframes most patches are done this way. painframe
indeed.

Uli