Presentation proposal:
Type of talk (tutorial, long, short, or lightning):
Short (25 min)
But I think I could also easily fill 40 minutes ("Long")
if you'd let me... :-)
Category:
Module guts and usage of any particular module
Title:
"Bit::Vector - more than the name suggests"
A 200-300 word abstract:
(See below)
One or two sentences on you and your affiliation:
I am programming in Perl since 1995,
and also submitted my first modules
(Set::IntegerFast, Date::DateCalc) to CPAN
in that year. I work for a 700 people software
company which specializes in tailor-made individual
software for all sorts of large companies and public
entities (see www.sdm.de for more details).
My web site and download page with my Perl modules
is at http://sb.fluomedia.org/download/.
More details about me can be found under the URL
http://sb.fluomedia.org/whoami/.
Whether you will have course notes or other materials
(if you are proposing a tutorial):
No, just slides. I suppose separate handouts wouldn't
be a good idea given the great number of participants.
Are you planning to make a brochure of all talks or
to put the talks online before or after the event?
(Please tell me if you want the slides ahead of time)
Any special presentation needs:
A computer or laptop and a beamer would be great,
an overhead projector would do.
The computer should preferably have Perl installed,
and my modules if possible.
Please tell me if I can user PowerPoint (PerlPoint
doesn't seem to be out of alpha state, is it?)
Abstract:
------------------------------------------------------------
"Bit::Vector - more than the name suggests"
The Bit::Vector module implements bit vectors of
arbitrary size.
Not very sexy, you may think.
But actually bit vectors are the base of most, if
not all, computations performed by a computer!
The numbers and strings and other types of data
a computer processes are all represented internally
as vectors of bits.
You usually call them bytes, ints, longs, floats,
etcetera.
But computers cannot have registers in their central
processing units with an unlimited number of bits. They
have to have a fixed width.
Can you still remember the days of 4 bit processors
(example: TI-59), then came the 8 bit processors
(6502, Z80, for instance), then 16 bit processors,
32 bit processors - and right now, we are entering
the realm of 64 bit processors? There you are.
Now what the Bit::Vector module does is to provide you
with registers of unlimited (but fixed) size. And you
can also grow and shrink your registers at will.
It does so by using your computer's registers, whatever
size these are, and your CPU's built-in operations for
processing them, for maximum efficiency.
Moreover, the module provides methods (and overloaded
operators, for maximum ease of use) for various common
applications, i.e., things you frequently do with
registers in a computer, and some more.
There are methods for performing arithmetic operations
(addition, subtraction, multiplication, division, modulo,
greatest common divisor, exponentiation), logic operations
(shift left, shift right, bitwise and, or, xor etc.),
methods for accessing individual or chunks of bits,
methods for inserting, deleting, copying and reversing
bits, search functions, matrix functions, functions
for dealing with sets - almost anything you usually
do with registers in a computer (but no floating point
arithmetic - yet?), except with unlimited precision!
The talk will try to show various applications for this
module.
------------------------------------------------------------