The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Marpa::R3 is Copyright (C) 2017, Jeffrey Kegler.
#
# This module is free software; you can redistribute it and/or modify it
# under the same terms as Perl 5.10.1. For more details, see the full text
# of the licenses in the directory LICENSES.
#
# This program is distributed in the hope that it will be
# useful, but it is provided "as is" and without any express
# or implied warranties. For details, see the full text of
# of the licenses in the directory LICENSES.

=head1 NAME

Marpa::R3::Acknowledgements - Marpa acknowledgements

=head1 Acknowledgements

Marpa is
directly derived from two other parsers.
The first was discovered by
John Aycock and
R.  Nigel Horspool
and is described in their
L<Aycock and Horspool 2002|Marpa::R3::Advanced::Bibliography/"Aycock and Horspool 2002">.
The second was discovered by Joop Leo and is described in
L<Leo 1991|Marpa::R3::Advanced::Bibliography/"Leo 1991">.
Aycock, Horspool, and Leo, in turn, based their
algorithms on the
L<algorithm discovered by Jay Earley|Marpa::R3::Advanced::Bibliography/"Earley 1970">.
I combined the Aycock-Horspool algorithm with the Leo algorithm,
and added significant changes of my own.

I'm grateful to Randal Schwartz for his support over the years that
I've been working on Marpa.
My chats with
Larry Wall have been few and brief,
but his openness to new ideas has been
a major encouragement
and his insight into the relationship between
"natural language" and computer language
has been a major influence.
More recently,
Allison Randal and Patrick Michaud have been generous with their
very valuable time.
They might have preferred that I volunteered as a Parrot cage-cleaner,
but if so, they were too polite to say.

Many at perlmonks.org answered questions for me.
I used answers from
chromatic, Corion, dragonchild,
jdporter, samtregar and Juerd,
among others,
in writing this module.
I'm just as grateful to those whose answers I didn't use.
My inquiries were made while I was thinking out the code and
it wasn't always 100% clear what I was after.
If the butt is moved after the round,
it shouldn't count against the archer.

In writing the Pure Perl version of Marpa, I benefited from studying
the work of Francois Desarmenien (C<Parse::Yapp>),
Damian Conway (C<Parse::RecDescent>) and
Graham Barr (C<Scalar::Util>).
Adam Kennedy patiently instructed me
in module writing,
both on the finer points and
on issues about which I really should have known better.

I am very grateful to a handful of early contributors,
whose contributions were made when I desperately needed help.
I am especially grateful to Ron Savage,
who has been a very aggressive early adopter
of all Marpa's versions.
Ruslan Zakirov generously
started, and agreed to moderate,
the "Marpa parser" mailing list.
Peter Stuifzand invented the "Stuifzand interface",
which was the original inspiration for the SLIF.

Ron, Peter and Ruslan Z. have since gone on to contribute
in ways too numerous to mention,
and others have joined in.
Jean-Damien Durand's numerous contributions include
the Windows port of Marpa.
Ruslan Shvedov helped with ASF's
and my documentation.
Andrew Rodland's TAP parser, with one Marpa grammar layered on
another, was another major inspiration
for the SLIF.

Finally, my thanks to all those who participated on
the "Marpa parser" mailing list.
It is hard to describe how important
informed and constructive feedback
is to a lone laborer on
a complex and large project like Marpa,
and I greatly appreciate all the
contributors to the list.

=head1 COPYRIGHT AND LICENSE

=for Marpa::R3::Display
ignore: 1

  Marpa::R3 is Copyright (C) 2017, Jeffrey Kegler.

  This module is free software; you can redistribute it and/or modify it
  under the same terms as Perl 5.10.1. For more details, see the full text
  of the licenses in the directory LICENSES.

  This program is distributed in the hope that it will be
  useful, but without any warranty; without even the implied
  warranty of merchantability or fitness for a particular purpose.

=for Marpa::R3::Display::End

=cut

# vim: expandtab shiftwidth=4: