Fastest Programming Language for A Slow Algorithm

Hi..

I'm currently working on a thesis about Morphological Analysis thru Decision Trees. Lately, we found out that the time of processing a single transaction will take less than 5 minutes.. I just need suggestions on which programming language will be suitable for our project. I've been thinking about VC++ and VB6 but our professor told us that VB6 is quite unstable. We thought of programming in DOS but we are required to develop a Windows app.

Any suggestions are greatly appreciated =)
justin_316_srAsked:
Who is Participating?
 
bcladdCommented:
I would second sunnycoder's suggestion of using C/C++ (though I tend to favor C++ on principle because you get the STL and and can use those data structures quickly and easily unless they prove slow). What are you implementing your program in now? That is, what program is taking 5 minutes per transaction?

Another question is are you comfortable with your algorithm being as optimized as possible? That is, does it avoid unnecessary work (sorting a sequence more than once when it hasn't changed or using an O(n^2) sort, for example)? Just checking because the best speedups always come at the algorithm level.

-bcl
0
 
sunnycoderCommented:
Hi justin_316_sr,

Lesser the abstraction, higher the speed ...

Assembly will be the fastest but it is too hard to think of implementing a complex algorithm using assembly ...

I would recommend C++ or C ... In either case, you can descend into assembly to write tight code whenever required .... Code will be far more manageable and fast that way.

Wether to use C or C++ depends on you. What are you confortable with and what sort of program are you looking for? Will OOP be an advantage with that program or is it more of a procedural thing ?

Sunnycoder
0
 
TimYatesCommented:
java is quite quick now too, so long as you code it right ;-)
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
justin_316_srAuthor Commented:
actually.. we're in the process of researching algorithms related to our topic.. we are not in the implementation stage yet..

basically our program will take a word and chop the rootword from the affixes.. but before doing that it must learn from a list of words given its output. i believe that we cannot alter the algorithm since the main purpose of our study is basically the implementation of this new approach in morphology. We must stick to the algo and try to make it fit to the transaction.

But ill consult our thesis adviser about speeding up the algorithm..

Thanks A lot... =)
0
 
sridharj_apCommented:
hi,

Is the algorithm too lengthy? What I mean is that if the algorithm were implemented, how many lines of code would it be?

The point I am trying to say is: Implement in all three - Assembly, VC++ and Java (use code optimizer tools along with plain compilation). Run the program atleast 20 times and compute average for each language. Decide which is the fastest. You may also want to balance performance and maintainability. The three languages are mentioned on an increasing scale of maintainability.

Regards
Sridhar

P.S: I would personally suggest VC++ - it can build a rich GUI while harnessing the power of C/C++.
0
 
lamdorCommented:
Hi,

 I feel Java will be better for these kinds of application. You have many libraries to implement these kinds of Image Manipulation / Traslation.

 If you really want to go for more programming and want to very hign speed then C++ is the another option.

 P.S : I personally go though Java if this is the case.

With Regards,
Lamdor.
0
 
justin_316_srAuthor Commented:
i need the speed of VC++ but i think i will stick with Java since i saw an open source library for machine learning which our thesis group will need. (WEKA, MLJ) By the way
0
 
TimYatesCommented:
...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.