The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: David Arnold <davida@pobox.com>
To: tuhs@tuhs.org
Subject: Re: [TUHS] History of m6?
Date: Wed, 13 Nov 2019 21:55:06 +1100	[thread overview]
Message-ID: <906345E8-A336-4E32-92FE-289FC3087998@pobox.com> (raw)
In-Reply-To: <201911130738.xAD7ceUS014587@freefriends.org>

[-- Attachment #1: Type: text/plain, Size: 3538 bytes --]

I found some related notes in the history of (GNU) M4:

    https://www.gnu.org/software/m4/manual/m4-1.4.17/html_node/History.html <https://www.gnu.org/software/m4/manual/m4-1.4.17/html_node/History.html>

I’ve no idea how accurate they are.



d



> On 13 Nov 2019, at 18:38, arnold@skeeve.com wrote:
> 
> Thanks Doug!
> 
> So Unix m6 was a port of the Fortran version, it sounds like.
> 
> Q1. When and why was it dropped from Unix? When and why did m4
> enter the picture?
> 
> Q2. What's the history of Fortran on Unix?  Clearly there was a
> lot of Fortran going on in 1127 (cf. BWK's book, ratfor,
> software tools ...)  Who wrote the first Unix fortran compiler?
> 
> Much thanks,
> 
> Arnold
> 
> Doug McIlroy <doug@cs.dartmouth.edu> wrote:
> 
>> 
>> M6 originated as a porting tool for the Fortran source code
>> for Stan Brown's Altran language for algebraic computation. M6
>> itself was originally written in highly portable Fortran.
>> 
>> Arnold asked, "How widespread was the use of macro processors
>> in high level languages?  They were big for assembler, and
>> PL/1 had a macro language, but I don't know of any other
>> contemporary languages that had them."
>> 
>> Understanding "contemporary" to mean pre-C, I agree. Cpp,
>> a particularly trivial macroprocessor, has been heavily used
>> ever since--even for other languages, e.g. Haskell.
>> 
>> The rumor that Bob Morris invented macros is off the
>> mark. Macros were in regular use by the time he joined Bell
>> Labs. He did conceive an interesting "form-letter generator",
>> called "form", and an accompanying editor "fed". A sort of
>> cross between macros and Vannevar Bush's hypothetical memex
>> repository, these were among the earliest Unix programs and
>> appeared in the manual from v1 through v6.
>> 
>> Off-topic warning: pre-Unix stories follow.
>> 
>> Contrary to an assertion on cat-v.org, I did not invent macros
>> either.  In 1959 Doug Eastwood and I, at the suggestion of
>> George Mealy, created the macro facility for SAP (SHARE assmbly
>> program) for the IBM 704. However, the idea was in the air at
>> the time. In particular, we knew that GE already had macros,
>> though we knew no details about their syntax or semantics.
>> 
>> There were various attempts in the 1960s to build languages by
>> macro extension. The approach turned out to entail considerable
>> social cost: communication barriers arise when everyone
>> can easily create his own dialect. A case in point: I once
>> had a bright young mathematician summer employee who wrote
>> wonderfully concise code by heaping up macro definitions. The
>> result was inscrutable.
>> 
>> Macros caught on in a big way in the ESS labs at Indian Hill.
>> With a macro-defined switching language, code builds were
>> slow. One manager there boasted that his lab made more
>> thoroughgoing use of computers than other departments and
>> cited enormous consumption of machine time as evidence.
>> 
>> Steve Johnson recalls corrrectly that there was a set of macros
>> that turned the assembler into a Lisp compiler. I wrote it
>> and used it for a theorem-proving project spurred by Martin
>> Davis. (The project was blown away when Robinson published
>> the resolution princple.) The compiler did some cute local
>> optimization, taking account of facts such as Bob Morris's
>> astute observation that the 704 instruction TNZ (transfer on
>> nonzero) sets the accumulator to zero.
>> 
>> Doug


[-- Attachment #2: Type: text/html, Size: 5037 bytes --]

  reply	other threads:[~2019-11-13 11:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-12 15:15 Doug McIlroy
2019-11-13  7:38 ` arnold
2019-11-13 10:55   ` David Arnold [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-11-11 21:10 Arnold Robbins
2019-11-11 22:18 ` Dennis Boone
2019-11-12 16:01   ` Leah Neukirchen
2019-11-11 22:31 ` Theodore Y. Ts'o
2019-11-11 22:58   ` Dave Horsfall
2019-11-12  0:07     ` Nemo Nusquam
2019-11-12  0:39       ` Dave Horsfall
2019-11-12  0:30   ` Clem cole
2019-11-16 16:27     ` SPC
2019-11-17  5:30       ` Dave Horsfall
2019-11-17  5:50         ` Larry McVoy
2019-11-17 18:12           ` Bakul Shah
2019-11-17 18:23             ` Michael Kjörling
2019-11-17 18:56               ` Bakul Shah
2019-11-17 22:46             ` Barry Stanly
2019-11-12  0:42   ` Dennis Boone
2019-11-11 22:37 ` Michael Kjörling
2019-11-12  1:09 ` Steve Johnson
2019-11-12 15:07   ` Clem Cole
2019-11-13  9:16     ` Thomas Paulsen
2019-11-13 12:20       ` Lars Brinkhoff
2019-11-13 12:50         ` Mike Markowski
2019-11-13 13:02           ` Lars Brinkhoff
2019-11-13 16:56         ` Paul Winalski
2019-11-13 19:19           ` Lars Brinkhoff
2019-11-13 19:21             ` Jon Steinhart
2019-11-14  9:26         ` Thomas Paulsen
2019-11-14 10:53           ` Lars Brinkhoff
2019-11-13 21:26       ` Dave Horsfall
2019-11-13 22:53       ` Jaap Akkerhuis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=906345E8-A336-4E32-92FE-289FC3087998@pobox.com \
    --to=davida@pobox.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).