From: Sergei Olonichev <olonichev@sc...> - 2003-03-04 07:59:56
-------- Original Message --------
Subject: Re: libAMoRE question
Date: Tue, 04 Mar 2003 09:37:31 +0200
From: Sergei Olonichev <olonichev@...>
To: Burak Emir <Burak.Emir@...>
References: <3E633418.8060606@...> <3E634AD6.2010401@...>
Burak Emir wrote:
> Dear Sergei,
> thanks for your interest in AMoRE !
> Sergei Olonichev wrote:
>> I looked at libAMoRE it seems the only open-source project that realy
>> implements FSM stuff.
>> I would like to contribute more structures and algorithms concerning
>> FSM representation and Mealy support, etc.
> That's great ! I also want to extend AMoRE, notably with transduction
> (like the Mealy automata) and with tree automata and tree transduction.
Great! It would also be nice to add so-called predicate automata
(described briefly in B.Watson).
Let's discuss what algorithms/structures are missing to work on them, I
may send you a list of suggestions.
>> But IMHO, it is hard to do that beacause libAMoRE is written in C,
>> what do you think about rewriting libAMoRE in C++? In order to
>> separate algorithms from structures.
> I have created a Java interface - you can use all the data structures
> and call all the algorithms. It is not online though, I have not found
> the time to do it. I will put it up in the next days. Do you like Java
> programming ?
Francly speaking I am not Java fun but these interface may be extremely
useful for a client software.
> Rewriting the whole thing is not an issue for the moment. AMoRE used
> to be 35000 lines of code, (it had a ncurses based terminal-user
> interface), then I reduced the part in C to 15000 or so, which is
> still a lot, but added another 10000 lines in Java. All the Java parts
> are not released yet, but will within the next days.
> One could think about C++ wrappers, though. There are Java wrappers,
> as I said, one could reuse the class and attribute names (which are a
> bit more verbose than in the C structures).
However, I think, that compiling (transformation) algorithms should be
entirely done in C or C++, because Java is slow in comparison to that
languages and consumes much memory.
This is mainly because my interest of libAMoRE is linguistic
applications where there may as huge as 1.000,000 states automata be built.
> Another project would be a unit testing suite... I have the feeling
> that despite its maturity, there are still bugs to discover...
Agree, but I suggest to make it a part of libAMoRE installation process.
For example add a directiry "test" or "data" and put there all the
testing data. Then user writes something like "make test" and the
testing is done. As for me it would be nice to write all the testing
stuff in some scripting language, I think, Ruby is perfect for that.
Have you heard about Ruby? It is easy readable, truly OO language.