[TUHS] Line Numbers Before SysIII nl? BSD num?
Tomasz Rola
rtomek at ceti.pl
Thu Jul 28 10:30:14 AEST 2022
On Sun, Jul 24, 2022 at 09:02:53PM +0200, Tomasz Rola wrote:
> On Sat, Jul 23, 2022 at 08:00:10AM -0400, Dan Cross wrote:
> > On Sat, Jul 23, 2022 at 7:20 AM John Cowan <cowan at ccil.org> wrote:
> [...]
> > > An obvious approach, which would leave no real traces in documentation, would be:
> > >
> > > $ awk '{print NR, $0}'
[...]
> > > $ awk '{printf("%6d\t%s\n", NR, $0)}'
[...]
> > Yes, but awk wasn't widely available until 7th edition. I imagine work
> > on it began before `num` in 2BSD, but few outside of Bell Labs would
> > have seen it prior to 1978 or so.
[...]
> $ cat c.lisp | sed -e '{=;}' | sed -e 'N;s/\n/ /'
Ok, so maybe this is no longer very interesting subject, but I
recalled there was once a language named SNOBOL.
Wikipedia says, sed was written around 1974 [1] and about SNOBOL it
says, the language was being taught [2] in the late 1960s and early 1970s
in universities, so I guess it was quite popular. I wonder if it was
ported to Unix early enough to help before sed became available?
Anyway, I have got Phil Budne's implementation [3] and after usual
drill (configure, make, make install, stow) I could do this:
$ snobol4 -b -L ./numlines02.sno < numlines02.sno
1 lnum = 0
2 loop lnum = lnum + 1
3 output = lnum " " input :s(loop)
4 end
The first version did not work so well:
$ snobol4 -b -L ./numlines01.sno < numlines01.sno | head -8
1 lnum = 0
2 LOOP line = INPUT
3 * Here: detect EOF (how?) and jump to : END
4 lnum = lnum + 1
5 OUTPUT = lnum " " line : S(LOOP)
6 END
7 END
8 END
As I already have understood, even after reaching end of input, the
INPUT statement keeps returning last line read, counter keeps
increasing and last line is being written out for infinity. I have not
read any serious docs on SNOBOL yet, so I have no idea how to make the
'01' version work, but this is of rather small importance to the list.
However, since [2] claims SNOBOL was written in Bell Labs, just like
AWK and sed, so perhaps they could be using SNOBOL?
[1] https://en.wikipedia.org/wiki/Sed
[2] https://en.wikipedia.org/wiki/SNOBOL
[3] http://www.regressive.org/snobol4/
--
Regards,
Tomasz Rola
--
** A C programmer asked whether computer had Buddha's nature. **
** As the answer, master did "rm -rif" on the programmer's home **
** directory. And then the C programmer became enlightened... **
** **
** Tomasz Rola mailto:tomasz_rola at bigfoot.com **
More information about the TUHS
mailing list