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:26:15 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=b9300000_90d43a3be98d8760&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=b9300000_90d43a3be98d8760&SUBMIT_pause99_add_mod_insertit=1