[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::languages

Title:Languages
Notice:Speaking In Tongues
Moderator:TLE::TOKLAS::FELDMAN
Created:Sat Jan 25 1986
Last Modified:Wed May 21 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:394
Total number of notes:2683

27.0. "What's next?" by XENON::STANSBURY () Fri Sep 14 1984 08:49

At a talk given recently by Bill Keating, he seemed to say that the Technical
Languages group and the Commercial Languages group have almost reached a point
with development of languages where there won't be much more to do. Most of
the languages they are responsible for have pretty much reached a stable point,
and most of the major languages have been developed.

This brings up an interesting question. What's next for these groups? Are
you going to start working on other tools (other than compilers) to complement
the languages? More languages (Modula)? Adding frills to the existing languages?
Fourth generation languages? Fifth? (Sixth???)

Jack
T.RTitleUserPersonal
Name
DateLines
27.1VAXUUM::DYERFri Sep 14 1984 09:524
	Let's see...an ALGOL compiler would be nice...more frills such as
better optimization (what the heck)...work on a few extra header files (the
ones that SDL can't handle)...
		<_Jym_>
27.2TURTLE::GILBERTFri Sep 14 1984 15:1354
Programming is getting more and more expensive.  This is due to greater
reliability and performance expectations, and more complex software.

Interactive Basic is a good example of a third generation language that
reduces software development costs (I can't believe I said that).  Its
important attributes are the interactive environment and the short time
between a program modification and a re-run of the program.

There's still life in 3rd generation languages.  Hopefully, the LSE and
related projects will substantially alter the way software is developed.
Strongly-typed languages (data-typing at compile-time), and type-sensitive
languages (data-typing may be deferred until run-time) (Ada?), should
also reduce development costs.

Several 'new' programming techniques have not been adequately combined
in a single language, or software development system.

	Object based approach.
	Run-time data typing.
	Relational database model.
	Commit and rollback.
	Syntactic sugar.
	Packages and data abstraction.
	Context-sensitive pragma.
	Incremental compilation.
	Graphic programming.
	Data-flow models.
	Pipes and filters.
	Environments.
	Tool kits.
	Interactive programming.
	Symbolic debugging.
	Hierarchical folding, and other hiding.
	Specification languages.


One technique I like is 'hiding'.  A program frequently contains a long sequence
of code to do something, say initialize variables.  It's unnecessary to see this
code again every time the program is modified.  Instead, it could be replaced by
the abstraction "Initialize(x,y,z)".  A simple implementation would have the
editor pipe the correct expansion to the compiler.  The same abstraction could
be used in different contexts, with different meanings.

Some abstractions would enter a dialogue with the programmer to supply some
'hidden' parameters, or pragma for the construct.  For example, "Sort(bag)"
could ask on which field(s) the bag should be sorted; the programmer's may
simply specify the fields, or enter an expression that will determine the
field at run-time.  It should be possible to use the editor to 'cut' from
somewhere else, and 'paste' this as the response to any prompt.


Anyway, there's still work to be done on 'languages'.

					- Gilbert
27.3ORPHAN::BRETTFri Sep 14 1984 16:5934
It is undoubtedly true there is more work to be done on language DESIGN as
well as implementation.  Experience with Ada shows that getting a standard
for a complex language is EXTREMELY difficult, but very important.  Just as
UNIX is heading in as *THE* portable O/S (for the immediate future),  Ada is
heading in as *THE* language.

In neither case is this because its the best possible - its just that they
have large amounts of political and financial momemtum

						^^momentum.

The time has PASSED when toy languages will take over the world - Pascal and C
have filled the niche for such.  There will be a typical evolutionary battle
in that niche that will force changes, but there will also be a growing
anti-change sentiment.


Now, having said all that, here is what is required to take over the world!

	(1) A simple-to-implement, portable language, that is more powerful
	    in a definite FINANCIAL way than Ada.

	(2) A portable O/S written in this language that is more powerful
	    than UNIX - preferably that is capable of emulating UNIX and VMS
	    and all those other O/S's that are already around.


Here is what you are up against.   BILLIONS of dollars worth of Govt. 
contracts saying "You MUST use Ada".    BILLIONS of dollars worth of portable
tools WRITTEN in Ada.    BILLIONS of dollars worth of programmer training.


/Bevin
27.4TURTLE::GILBERTSat Sep 15 1984 19:3018
A viable new language need not be one which can "take over the world".

Consider, for example, a programming language in which it's possible to improve
productivity of programming efforts by a factor of 3 (btw: MCC is shooting for
a factor of 10).  This would give a software development company using this new
language a decided advantage over competitors who are not using it (assuming
that the programs so produced can be ported to the customer's machines).

Let's add one more whistle to this new language.  Instead of generating machine
dependent code or object files, allow it to spit out Pascal, C, Bliss, Modula,
and/or Ada source files.  With such a powerful "toy" language, it really doesn't
matter on what machine the language/compiler itself runs -- even if the machine
costs $600K, and supports ONLY ONE programmer, the cost should still be recouped
in three years.

And of course we all know the best software development machine available today.

					- Gilbert
27.5ORPHAN::BRETTSun Sep 16 1984 00:3846
Hmmm - experience with implementing Ada on a CODE GENERATOR that is much more
powerful in its expressive capabilities than Bliss or any other language you
mentioned tells me this one rule....


	Languages CAN NOT be mapped onto other languages for anything like
	real performance.  The resulting code will be TERRIBLE in the areas
	where mismatch between the two languages exist.


FOR INSTANCE, lets try to map Pascal onto Ada.   This should be trivial right?
WRONG!!!!

	(1) Pascal allows the following constructs that have no Ada equivalent.

		Tagless variants in records

		The Tag itself exists solely in a variant, for example

			record
				case ONE of
					1 : case TWO of
			...

		VAR scalar parameters - in Ada 'in out' scalar parameters are
		copied IN at the start of the routine and out at the return.

		Aliasing - a parameter can legally also be up level accessed in
		Pascal but not Ada

	(2) Pascal has the following constructs that are very difficult to
		arrange in Ada.

		Up-level goto's

		Procedure/Function parameters.



In short it is NOT simple to have you '3*better' compiler simply produce output
for other languages.  And this isn't even addressing the debugging problems and
portablility-of-data-architecture issues.


/Bevin
27.6LATOUR::AMARTINMon Sep 17 1984 00:3236
Re .4,.5:

The problem of how many target languages to support, which ones, and how
good the mapping should be depends on what you actually plan to do with
the sources for the programs you write.  If you are only selling binaries,
you are more concerned with being able to port programs onto your customers
machines by taking advantage of whatever target language is implemented well
on it.  If you sell sources, then you can try to get an edge by providing
application X in language Y, where the customer has people trained in Y.

Such a cross translator would port itself with peculiar ease.  You could have
your pick of faddish HLL's on a prospective target machine to implement
the compiler with.

Unless you restrict your domain and range of features ahead of time, adding
another generator to such a compiler would get more frustrating instead
of less so.  I wonder if you *would* end up with something that could
translate integer assignment statements into any target language, but
couldn't do I/O in any of them.

Re .4:

We all know what the best software development machine is, but we don't
agree on what it is.  I bet I thought of something different than you
did, and more importantly, I bet if I posed the question (out of context)
to a few BBOARDs and mailing lists on the ARPAnet, our customers would
say something different than either one of us thought.  I assume you don't
have the advantage over me of being an architect for a workstation project,
or some other R&D.

Re .0:

The Software Tools Review Board is going to concern itself with development
environments and implementation languages.  Ask your rep what is starting
up.  If any reps read this, grace us with your impressions of what is going on.
				/AHM
27.7ERLANG::CAMPBELLWed Oct 03 1984 12:201
Everyone knows the best software development machine is the Xerox Dorado.
27.8XENON::STANSBURYWed Oct 03 1984 13:353
The what?

Jack
27.9TURTLE::GILBERTMon Nov 05 1984 09:5815
I believe the best software development system is Digitals own VAX/VMS.

1.  A recent report in CompterWorld* rated customer satisfaction on a variety
    of metrics.  While Digital only came in third overall (barely edging out
    IBM) it was rated first in software by a whopping 13.5% over second place.

2.  (paraphrasing B.J. on this)  A few years ago, Digital embarked on the
    strategy of being Number One in software by 1985.  This year, Digital paid
    pollsters for a survey (double-blind), to see how we rate.  It should be no
    surprise that Digital was rated tops.

					- Gilbert

* August 6, 1984, page 13.  In order, the top four manufacturers were listed
as Hewlett Packard, Amdahl, Digital and IBM.