T.R | Title | User | Personal Name | Date | Lines |
---|
27.1 | | VAXUUM::DYER | | Fri Sep 14 1984 09:52 | 4 |
| 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.2 | | TURTLE::GILBERT | | Fri Sep 14 1984 15:13 | 54 |
| 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.3 | | ORPHAN::BRETT | | Fri Sep 14 1984 16:59 | 34 |
|
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.4 | | TURTLE::GILBERT | | Sat Sep 15 1984 19:30 | 18 |
| 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.5 | | ORPHAN::BRETT | | Sun Sep 16 1984 00:38 | 46 |
|
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.6 | | LATOUR::AMARTIN | | Mon Sep 17 1984 00:32 | 36 |
| 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.7 | | ERLANG::CAMPBELL | | Wed Oct 03 1984 12:20 | 1 |
| Everyone knows the best software development machine is the Xerox Dorado.
|
27.8 | | XENON::STANSBURY | | Wed Oct 03 1984 13:35 | 3 |
| The what?
Jack
|
27.9 | | TURTLE::GILBERT | | Mon Nov 05 1984 09:58 | 15 |
| 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.
|