[comp.arch] Jovial

wws@raphael.cray.com (Walter Spector) (02/07/91)

In article <PCG.91Feb2211921@odin.cs.aber.ac.uk>, pcg@cs.aber.ac.uk
(Piercarlo Grandi) writes:

> A very important language for the 635 was Jovial. I think that Jovial is
> one of the more widely used languages, in terms of lines of code lying
> around. Wasn't the USA military WWCCS implemented in a few million lines
> of (among others) Jovial on GE 600 (in their various later incarnations
> as Honeywell 6000, etc.) machines?

I have a few questions on Jovial:

 - When was JOVIAL written?

 - What were the salient features of Jovial?

 - What did it do/not do well?

 - What machines was it developed on? and did it run on?

 - Why did(/do) the Feds love it so much?

 - What other good stories does anyone have?

In short, what was Jules Schwartz thinking when he wrote 
his Own Version of IAL?

> Notable point about Jovial: it is the only language I have seen that
> makes explicit the important difference between serial and parallel
> representations of arrays of records.

SYMPL (SYsteMs Programming Language) for the 60-bit CDC systems
had this feature.

Walt Spector
(wws@renaissance.cray.com)
Sunnyvale, California
_._ _._ _.... _. ._.

dt@yenta.alb.nm.us (David B. Thomas) (02/07/91)

wws@raphael.cray.com (Walter Spector) writes:

>I have a few questions on Jovial:

> - When was JOVIAL written?
> - What were the salient features of Jovial?
> - What did it do/not do well?
> - What machines was it developed on? and did it run on?
> - Why did(/do) the Feds love it so much?
> - What other good stories does anyone have?

Up until very recently, I was working for a big company --
make that big, slow, stodgy, ungainly bureaucracy --
steeped in computer tradition.  All of their business
data, to this day, resides on a univac 1100 (vintage 1957..
not a good year for computers) which was set up poorly
then, and still does not begin to do what it is capable
of.  Yes, that's good for a few shudders.  They still
use paper tape, EBCDIC,  ... escuse me...
<puuuuuuuuaafffhh>  okay, I'm back.  Now where was I?

Oh!  Well, anyway, JOVIAL was one of the very newest and
freshest things I got my hands on while I was there.
We had to distinct compiler/linker/debugger toolsets
(both full of bugs) running on VAXen under VMS.

I'll probably get flamed for saying this, but I really
liked J's handling of types, both builtin and user-defined.
It did pointers and bit fields much more sensibly, but not
as flexibly as C.  You rode pretty close to the machine,
and the structure was formal without being ridiculous.

Linking with assembly code was a cinch.  Lucky thing,
too, since one of our compilers was messed up, in
such a way that a "return from interrupt" was impossible
to code in jovial.  It HAD to be done in assembler.
Oh well... most languages don't do that anyway.

A nifty conecpt in J is that of a COMPOOL, which is sort
of a cross between and .o and a .h file all rolled into
one.  You declare shared data in it, then compile the
compool, and include it at the tops of your other sources.
In C, global data must be externally referenced in the .h
file, so all the sources know its type, but it must be
declared in just one place, another .c file.  So if it
changes you have to change it in two places.  The COMPOOL
serves both purposes and allows you to keep exactly one
description of each object that both specifies its type
and defines/declares/allocates it.

An interesting piece of J folklore: NO console i/o.
None!  Zippo!  That really messed me up, since the most
natural thing to do in a new language is to write a
"hello, world" program.  Aaack!  I suppose I could have
stuffed the bits in i/o registers and pretended that the
registers were driving the display unit in an F-16 fighter
(I really did work with some J code that might just be
helping to delete a few iraqis along about now).  If you
really HAD to have console i/o there was a way you could
link to a fortran object file.  Imagine doing all that
just to say "hello, world"!

One more thing of note ... in C, you always end statements
with a semicolon.  In pascal, it's a bit trickier.
Sometimes you'll mess yourself up with extra ones.  In J
you REALLY had to watch it.  Even in such things as
block definitions or the very last statement of a function,
an extra semicolon could stop your code from compiling.

>In short, what was Jules Schwartz thinking when he wrote 
>his Own Version of IAL?

hahahhaa.  Ever use that handy unix tool, Juan's Obsequious
Implementation of 'N'?

					little david
-- 
Computer interfaces and user interfaces are as different as night and 1.

joe@oilean.uucp (Joe McGuckin) (02/07/91)

I used to work for Proprietary Software Systems - a small (< 35) company that won the contract
to maintain and upgrade the base 1750A JOVIAL compiler for the USAF. Unless they received exemptions, 
contractors developing embedded applications for ordinance or on-board flight systems were required to 
use the 1750A/JOVIAL combination.


-- 
Joe McGuckin             oilean!joe@sgi.com
Island Software          joe@parcplace.com
(415) 969-5453

jones@pyrite.cs.uiowa.edu (Douglas W. Jones,201H MLH,3193350740,3193382879) (02/07/91)

From article <193900.598@timbuk.cray.com>,
by wws@raphael.cray.com (Walter Spector):
> 
>  - When was JOVIAL written?
      The name dates the language.  Algol 58 was also known as the IAL,
      or International Algorithmic Language.  By the time of the Algol 60
      report, the name IAL was dead.
> 
>  - What were the salient features of Jovial?
      The COMPOOL (common variable pool, if I remember correctly); I
      think this was analogous to FORTRAN unnamed common in many ways.
> 
>  - What did it do/not do well?
      For the time it was written, it was a great improvement on all of
      the alternatives.  By 1975, it was probably still better than many
      alternatives for embedded systems.
> 
>  - What machines was it developed on? and did it run on?
      It ran on essentially every machine the Air Force ever used.  When
      I was at the Rockwell Collins Government Avionics Division in the
      summer of 1986, there were lots of Jovial programmers.  As I
      understand it, the Collins CAPS minicomputer (a nice stack based
      architecture) tended to be programmed in JOVIAL for military
      applications and PL/I for civilian applications.  The first
      generation GPS receivers each contain a CAPS processor programmed
      in JOVIAL.  (I worked with the people who were developing the Ada
      compiler for the AAMP -- the monolithic successor to CAPS.)
> 
>  - Why did(/do) the Feds love it so much?
      Because having a language standard is so much better than having no
      standard, even if the language could be improved on.  JOVIAL was
      never widely used or loved outside the Air Force and their
      contractors, but within the Air Force, it was the standard language
      until Ada came along.
				Doug Jones
				jones@cs.uiowa.edu

timr@gssc.UUCP (Tim Roberts) (02/08/91)

In article <193900.598@timbuk.cray.com> wws@raphael.cray.com (Walter Spector) writes:
>In article <PCG.91Feb2211921@odin.cs.aber.ac.uk>, pcg@cs.aber.ac.uk
>(Piercarlo Grandi) writes:
>
>> A very important language for the 635 was Jovial. I think that Jovial is
>> one of the more widely used languages, in terms of lines of code lying
>> around.

I have to agree.  There is a GREAT deal if Jovial code still running today on
some fascinating and arcane architectures.

> - What did it do/not do well?

It shares many of its strong (and weak!) points with C.  It tends to rather 
easily allow direct bit-level access to hardware.  It was typed, but (like C)
rather weakly.  Also, Jovial code tends to make strong use of pointers and
linked lists, simply because the language supports them so well.

> - Why did(/do) the Feds love it so much?

The Feds loved it by definition.  It was, for a long time, THE standard 
programming language of the US Air Force.

>> Notable point about Jovial: it is the only language I have seen that
>> makes explicit the important difference between serial and parallel
>> representations of arrays of records.
>
>SYMPL (SYsteMs Programming Language) for the 60-bit CDC systems
>had this feature.

Control Data's SYMPL is a very close derivation of Jovial.  ITEMs, ARRAYs and
BASED ARRAYs, the odd variable declaration syntax, all of this came from
Jovial.  The early SYMPL compilers shared a great deal of common code with
CDC's Jovial compiler.  If you know SYMPL, you can read Jovial almost
immediately.

-- 
timr@gssc.gss.com	Tim N Roberts, CCP	Graphic Software Systems
						Beaverton, OR

This is a very long palindrome. .emordnilap gnol yrev a si sihT

lsmith@cs.umn.edu (Lance "Billy Fish" Smith) (02/08/91)

In <193900.598@timbuk.cray.com> wws@raphael.cray.com (Walter Spector) writes:

>In short, what was Jules Schwartz thinking when he wrote 
>his Own Version of IAL?

Hmmmm, I read an unpublished interview with Jules Schwartz where he talked
about JOVIAL. Let me see what I can remember. (<-- In other words, don't
trust anything I say.)

As  I recall:

JOVIAL was developed at SDC which was a spin-off of the RAND Corporation. They
were responsible for most of the software of the early military systems like
SAGE and other early warning systems. I think JOVIAL was developed on the Q-32
which was a computer SDC wound up with after the Super-SAGE project was 
terminated. 

Didn't Schwartz have help on JOVIAL? I seem to remember the name was a bit of 
a tweak.

For more concrete information try the either Jean Sammet's or Richard Wexelblat
(ed) history of programming languages. You might also try The System Builders
by Claude Baum. Or maybe the ACM's upcoming History of Programming Languages
Conference will deal with it...

-- 
Lance "Analog" Smith
Not all those that wander are lost.
Excuse me, but I'm only in this for the entropy.
Send monetary units to: PO Box 13345, Dinkytown Station, Minneapolis, MN 55414

frisbie@flying-disk.com (Alan Frisbie) (02/08/91)

In article <1991Feb8.212943.2233@en.ecn.purdue.edu>, 
wailes@en.ecn.purdue.edu (Tom S Wailes) writes:

> Some years ago I had the honor of programming one of the worlds largest
> collections of vacuum tubes ever put into large scale use.  It was called
> the SAGE computer system and boasted of having 54,000 vacuum tubes (all
> trying to ruin your day).  IBM made these systems ~ 1956-58 for the
> Air Force for the Air Defense of the United States and Canada.  It was
> labeled the "AFSN/Q-7" or the "Q-7" for short.  

I believe the correct designation was AN/FSQ-7.   If I remember right, all
military equipment of that vintage had the designation AN/xxx-n.
"A/N" stood for something like Army/Navy, but I don't really know.
Each of the three letters "xxx" had a meaning.   "FSQ" meant something
like "Equipment associated with a Radar set, meant to be used in a
fixed location".   If anyone is *really* interested, I could look
up the list of what each letter actually meant.

> It was put out of service at the end of 1983.  

What is not well known is that the three companies in the US which made
vacuum tubes for it (RCA, GE & Sylvania) stopped producing them in 1975.
The Air Force figured that since the Q-7 was scheduled to be replaced
in 1980, they would buy a five-year supply (a *lot* of tubes).

What happened between 1980 and 1983?   They had to buy tubes from the
only qualified supplier they could find -- in Czechoslovakia!

In 1982, I was part of a tour sponsered by The Computer Museum to visit
the Q-7 at North Bay, Canada.   700 feet below solid granite, is a
three-story building, with a blast door that looks just like the one
in "War Games".   Part (a very small part) of this same computer is now on 
display at The Computer Museum, 300 Congress Street, Boston, Mass.
It just isn't the same, however, as being led *through* the computer
while it was in operation.   "On your left are bits three through six
of the accumulator."   :-)

---  Alan E. Frisbie                    Frisbie@Flying-Disk.Com  (Preferred)
---  Flying Disk Systems, Inc.      or  ...elroy!flying!frisbie
---  4759 Round Top Drive           or  Flying!Frisbie@Elroy.jpl.nasa.gov
---  Los Angeles, CA 90065          or  Frisbie%Flying@oxy.edu
---  (213) 256-2575                 or  ...oxy!flying!frisbie

wailes@en.ecn.purdue.edu (Tom S Wailes) (02/09/91)

In article <193900.598@timbuk.cray.com>, wws@raphael.cray.com (Walter Spector) writes:
> In article <PCG.91Feb2211921@odin.cs.aber.ac.uk>, pcg@cs.aber.ac.uk
> (Piercarlo Grandi) writes:
> 
>  - What machines was it developed on? and did it run on?
> 
>  - Why did(/do) the Feds love it so much?
> 
>  - What other good stories does anyone have?
> 
> Walt Spector
> (wws@renaissance.cray.com)

Some years ago I had the honor of programming one of the worlds largest
collections of vacuum tubes ever put into large scale use.  It was called
the SAGE computer system and boasted of having 54,000 vacuum tubes (all
trying to ruin your day).  IBM made these systems ~ 1956-58 for the
Air Force for the Air Defense of the United States and Canada.  It was
labeled the "AFSN/Q-7" or the "Q-7" for short.  It was put out of service
at the end of 1983.  At that time it was replaced by modern main
frames.  At one time there were ~30 of these systems up and running in the
US and Canada.  Most of the main programs were written in Assembly
Language, and of course there was no operating system.  Millions of lines
of Assembly Code were maintained by a group of programmers devoted to
keeping the machine up to date (imagine how it was for us to interface the
AWACS).  Anyway, we had a Jovial compiler (any compiler is better than none)
and as I recall we used it for our off-line processing.  Things like our
exercise tape creation (for testing our radar scope operators and intercept
directors) was done with programs written in Jovial.  I even looked at some
of them.  But as things would happen, a very common practice was to make
updates to the assembly code generated by the Jovial compiler.  You have to
keep in mind that everyone knew our Assembly code.  Only a very few knew
Jovial.  I think that at one time alot of the Code written for the NORAD
command center (in C-Springs) was written in Jovial.  But perhaps someone
who actually worked there could enlighten us on that.


                                               Tom

tomr@dbase.A-T.COM (Tom Rombouts) (02/13/91)

In article <1991Feb7.203948.1861@cs.umn.edu> lsmith@cs.umn.edu (Lance "Billy Fish" Smith) writes:
>
>For more concrete information try the either Jean Sammet's or Richard Wexelblat
>(ed) history of programming languages. You might also try The System Builders
>by Claude Baum. Or maybe the ACM's upcoming History of Programming Languages
>Conference will deal with it...

The above mentioned Wexelblat book is a polished version of the 1978
ACM History of Programming Languages Conference, held in Los Angeles.
The proceedings can still be ordered from the ACM ($17 members, c.
$24 for non-members.) order department.  This is perhaps the most
entertaining collection of language histories ever put together.
For the record, the following languages are covered with about
10 or 15 pages each:  ALGOL, APL, APT, BASIC, COBOL, FORTRAN,
GPSS, JOSS, JOVIAL, LISP, PL/I, SIMULA and SNOBOL.  Jean Sammet,
also mentioned above, was the chariperson of the committee that
put on this conference.  Also, I have heard that audio tapes of these
lectures are also available from the ACM, but have no ordering
info.

P.S. - Watch for "The Language List" - coming to this news group
real soon now!


Tom Rombouts  Torrance 'Tater  tomr@ashtate.A-T.com  V:(213)538-7108