The following module was proposed for inclusion in the Module List:
modid: Encode::Mapper
DSLIP: bdpOp
description: Intuitive, yet efficient mappings for Encode
userid: SMRZ (Otakar Smrž)
chapterid: 11 (String_Lang_Text_Proc)
communities:
comp.lang.perl.moderated
similar:
rationale:
The module finds direct application in Encode::Arabic and
Encode::Korean [submitting soon], providing an object-oriented
programming interface to convert data consistently, follow the
engine's computation, dump the engine using Data::Dumper etc.
It is designed to make easy what Encode::Encoding proposes, i.e.
define 'encode' and 'decode' methods to be used for data
conversions. It requires Encode in some of its methods.
The module's core is an algoritm which, from the rules given by the
user, builds a finite-state transducer, i.e. an engine performing
greedy search in the input stream and producing output data and side
effects relevant to the results of the search. Transducers may be
linked one with another, thus forming multi-level devices suitable
for nontrivial encoding/decoding tasks.
The compilation algorithm, and the search algorithm itself, were
inspired by Aho-Corasick and Boyer-Moore algorithms, and by the
studies of finite automata with the restart operation. The engine is
implemented in the classical sense, using hashes for the transition
function for instance. We expect to improve this to Perl code
evaluation, if the speed-up is significant.
It is to explore the way Perl's regular expressions would cope with
the task, i.e. verify our initial doubts which prevented us from
trying. Since Encode::Mapper's functionality is much richer than
pure search, simulating it completely might be resource-expensive
and non-elegant. Therefore, experiment reports are welcome.
enteredby: SMRZ (Otakar Smrž)
enteredon: Mon Aug 4 14:21:21 2003 GMT
The resulting entry would be:
Encode::
::Mapper bdpOp Intuitive, yet efficient mappings for Encode SMRZ
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=a9300000_2130f266e135ad42&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=a9300000_2130f266e135ad42&SUBMIT_pause99_add_mod_insertit=1