> Can one of you nice people get this old program (LIB CONNECT) to run on 15.53?
You can fix it by changing the lines
define learnbit(patterns);
vars input_lines output_lines correct_output trials input output;
to
define learnbit(patterns);
vars patterns input_lines output_lines correct_output trials input output;
i.e. you need to include the variable patterns in the vars declaration.
I haven't checked that this is sufficient to make it work properly, as
I'm not very familiar with what it's supposed to do, but it is
sufficient to make the learn() procedure return quickly, so it's
probably OK.
The reason is that the matcher arrow does not work with lexical
variables, and in more recent versions of Pop-11 the default for
procedure arguments is lexical unless otherwise stated. (This was a
sensible change in my opinion, but I think it was known that a few
libraries would be broken by it.) It is probably the case that a better
fix would be to use one of the more modern matching operators and make
all the variables lexical, but this may not be worth the effort.
Incidentally, to get it to run under ved, I also changed the lines
pr('How many trials');
repeat itemread() times
to
pr('How many trials');
repeat hd(readline()) times
in a couple of places. (This is also a somewhat crude fix of course!)
By the way, if you are interested in having a much more powerful NN
package, my LIB MLP (multilayer perceptron) is available from the
Birmingham ftp site as part of the popvision package - though it's
pretty much independent of the rest of popvision. This is a very
flexible library incorporating the backpropagation algorithm for
learning, and is well up to the speed and reliability needed for
research. It doesn't have rule78 built in as LIB CONNECT does, though it
would be easy enough to add a routine to do this.
For teaching, I recently produced a little library built on top of LIB
MLP which uses a neural net to see whether a sequence of letters looks
like an english word or not - it's got a graphical interface of sorts
(and in fact you can make it solve fairly arbitrary problems). It's
local at Sussex at present but I can make it available more widely if
you or anyone else is interested.
Best wishes,
David
|