Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > A tool that suggests optimized logic for a piece ofcode/module/function

Reply
Thread Tools

A tool that suggests optimized logic for a piece ofcode/module/function

 
 
David Schwartz
Guest
Posts: n/a
 
      01-12-2010
On Jan 12, 9:12*am, scattered <(E-Mail Removed)> wrote:

> I don't see why it would be impossible. Optimizing compilers exist and
> by using similar techniques it should be possible to write a compiler
> that uses C as both the source and target language. How useful this
> would be is another question. The resulting code would need to be
> humanly readable if the tool would be of any use and the would
> probably place severe restrictions on the sorts of optimizations that
> can be done. I would be surprised if no work along these lines has
> been done.


That would be a useless tool, all it would do would be obfuscate. If
the code contains optimizations that can be made by machine, what is
the point of modifying the source code? Let the machine make the
optimizations when the code is compiled and keep the source intact.

DS
 
Reply With Quote
 
 
 
 
Andrew Poelstra
Guest
Posts: n/a
 
      01-12-2010
On 2010-01-12, David Schwartz <(E-Mail Removed)> wrote:
> On Jan 12, 9:12*am, scattered <(E-Mail Removed)> wrote:
>
>> I don't see why it would be impossible. Optimizing compilers exist and
>> by using similar techniques it should be possible to write a compiler
>> that uses C as both the source and target language. How useful this
>> would be is another question. The resulting code would need to be
>> humanly readable if the tool would be of any use and the would
>> probably place severe restrictions on the sorts of optimizations that
>> can be done. I would be surprised if no work along these lines has
>> been done.

>
> That would be a useless tool, all it would do would be obfuscate. If
> the code contains optimizations that can be made by machine, what is
> the point of modifying the source code? Let the machine make the
> optimizations when the code is compiled and keep the source intact.
>
> DS


The idea would be that it could provide suggestions, not necessarily
implement them or even come up with a concrete solution. Even something
as simple as highlighting a function as "O(n^3)" would be helpful.

Saying something like "this looks like a Bubblesort" and linking to a
database (or wiki link) of sorting algorithms would also be nice, even
if the machine didn't understand the data structures or nature of the
data well enough to help.


 
Reply With Quote
 
 
 
 
Jasen Betts
Guest
Posts: n/a
 
      01-12-2010
On 2010-01-11, karthikbalaguru <(E-Mail Removed)> wrote:
> Hi,
> There are certain editors that highlight
> the syntax/color for datatypes/variables
> or comments etc.
>
> Similarly,
> Is there a tool for C language that
> could suggest an optimized/alternate
> programming logic for the function that
> is written ?
>
> The optimized/alternate logic can be
> suggested as soon as we finish coding
> for one function or it can be suggested
> as soon as the code is compiled/parsed
> by that tool.
>
> It will be even more helpful if that tool
> also provides the cycle counts, cache
> usage, cache misses and lines of code
> also.
>
> It would be better if that tool has an
> option to enable / disable this feature
> either through compile time or some
> other configurations.
>
> Any ideas ?


you seem to be asking for a compiler that is
tightly bopund to an editor, (which seems contrary to the unix
philosophy) such compiler is likely to optimise worse than GCC.

Tweaked C code is likely to only work well on a single architecture.

optimising compilers often alter the order in which statements are
executed etc...

If you really want to optimise for a single architecture
you should probably be coding in assembler anyway.






> Thx in advans,
> Karthik Balaguru



--- news://freenews.netfront.net/ - complaints: http://www.velocityreviews.com/forums/(E-Mail Removed) ---
 
Reply With Quote
 
Stefan Ram
Guest
Posts: n/a
 
      01-13-2010
karthikbalaguru <(E-Mail Removed)> writes:
>Similarly,
>Is there a tool for C language that
>could suggest an optimized/alternate
>programming logic for the function that
>is written ?


I have not read the whole thread, so, I am sorry,
if this was already mentioned:

http://www.supercompilers.com/white_paper.shtml

 
Reply With Quote
 
Rich Webb
Guest
Posts: n/a
 
      01-13-2010
On Tue, 12 Jan 2010 13:34:11 -0800 (PST), David Schwartz
<(E-Mail Removed)> wrote:

>On Jan 12, 9:12*am, scattered <(E-Mail Removed)> wrote:
>
>> I don't see why it would be impossible. Optimizing compilers exist and
>> by using similar techniques it should be possible to write a compiler
>> that uses C as both the source and target language. How useful this
>> would be is another question. The resulting code would need to be
>> humanly readable if the tool would be of any use and the would
>> probably place severe restrictions on the sorts of optimizations that
>> can be done. I would be surprised if no work along these lines has
>> been done.

>
>That would be a useless tool, all it would do would be obfuscate. If
>the code contains optimizations that can be made by machine, what is
>the point of modifying the source code? Let the machine make the
>optimizations when the code is compiled and keep the source intact.


What he's looking for is not compiler optimizations but optimization of
the underlying algorithm. As somebody else mentioned, seeing a bubble
sort and deciding that a quick sort would be more appropriate.

--
Rich Webb Norfolk, VA
 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      01-13-2010
Rich Webb <(E-Mail Removed)> writes:
> On Tue, 12 Jan 2010 13:34:11 -0800 (PST), David Schwartz
> <(E-Mail Removed)> wrote:
>>On Jan 12, 9:12*am, scattered <(E-Mail Removed)> wrote:
>>> I don't see why it would be impossible. Optimizing compilers exist and
>>> by using similar techniques it should be possible to write a compiler
>>> that uses C as both the source and target language. How useful this
>>> would be is another question. The resulting code would need to be
>>> humanly readable if the tool would be of any use and the would
>>> probably place severe restrictions on the sorts of optimizations that
>>> can be done. I would be surprised if no work along these lines has
>>> been done.

>>
>>That would be a useless tool, all it would do would be obfuscate. If
>>the code contains optimizations that can be made by machine, what is
>>the point of modifying the source code? Let the machine make the
>>optimizations when the code is compiled and keep the source intact.

>
> What he's looking for is not compiler optimizations but optimization of
> the underlying algorithm. As somebody else mentioned, seeing a bubble
> sort and deciding that a quick sort would be more appropriate.


Of course, that particular example is not terribly useful in practice,
since it's easy enough to just not write a bubble sort in the first
place. But it's a good as an example because it's easy to understand.

--
Keith Thompson (The_Other_Keith) (E-Mail Removed) <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
 
Reply With Quote
 
Ed Prochak
Guest
Posts: n/a
 
      01-13-2010
On Jan 12, 3:19*pm, karthikbalaguru <(E-Mail Removed)>
wrote:
> On Jan 13, 12:05*am, Andy <(E-Mail Removed)> wrote:
>
> > On Jan 12, 11:12*am, scattered <(E-Mail Removed)> wrote:

>
> > > I don't see why it would be impossible. Optimizing compilers exist and
> > > by using similar techniques it should be possible to write a compiler
> > > that uses C as both the source and target language. How useful this
> > > would be is another question. The resulting code would need to be
> > > humanly readable if the tool would be of any use and the would
> > > probably place severe restrictions on the sorts of optimizations that
> > > can be done. I would be surprised if no work along these lines has
> > > been done.

>
> > The optimizations would have to be limited to that subset that can be
> > implemented at the C level.

>
> True !
>
> > That might be difficult to do, since the
> > optimization is not usually concerned with whether or not the
> > optimized version can be portrayed in C.

>
> True, but i am looking only at the
> C level optimization.
>
> > The generated C code would have to look similar (same variable names,
> > etc.) to the original to be useful.

>
> I think, in such scenarios, the tool should
> be having tremendous knowledge about
> the software/program and take care
> end to end. Maybe, the tool can generate
> report on the changes and the reason for
> the changes so the developer can use
> it for further developments or any other
> maintenance activities on that code.
>
> > And if the compiler can show you those optimizations in the form of
> > modified code, why not have it skip showing you the code and just
> > optimize it behind the scenes like it always does?

>
> Maybe, it would be better if it
> can do it before user rather than
> behind the scenes so that the user
> is aware of the kind of optimzations
> that are being done and could be
> taken care. It is also needed so that
> the developer will be able to take care
> of further developments on the same
> program/software and also for the
> maintenance activities on that
> program/software.
>
> Thx in advans,
> Karthik Balaguru


There is such a tool. It is called a code review.
 
Reply With Quote
 
Paul Keinanen
Guest
Posts: n/a
 
      01-13-2010
On Tue, 12 Jan 2010 11:12:18 -0800 (PST), karthikbalaguru
<(E-Mail Removed)> wrote:

>On Jan 12, 11:03*pm, Walter Banks <(E-Mail Removed)> wrote:


>> The issue is the larger one of function rewriting where
>> the problem is larger and less work has been done
>> looking for solutions.
>>

>
>It is strange that no much research or
>work is done in this area ? Strange !!
>
>I think, this is one of the most required
>tool for efficient software development
>in any kind of platform.


If the problem on average is badly trained programmers, the obvious
solution should be improving the training of programmers.

A tool that points out suboptimal constructs etc. might be useful in
the training phase, but what is the point of using it in actual
program production ?

 
Reply With Quote
 
Chris McDonald
Guest
Posts: n/a
 
      01-13-2010
Paul Keinanen <(E-Mail Removed)> writes:

>If the problem on average is badly trained programmers, the obvious
>solution should be improving the training of programmers.


>A tool that points out suboptimal constructs etc. might be useful in
>the training phase, but what is the point of using it in actual
>program production ?


If sufficiently sophisticated it could be used as a regression tester
for code submitted to a revision system.

This presumes, however, that it's better to have "optimal" source code
than to have readble/expressive source code.

--
Chris.
 
Reply With Quote
 
Phil Carmody
Guest
Posts: n/a
 
      01-13-2010
Rich Webb <(E-Mail Removed)> writes:
> On Tue, 12 Jan 2010 13:34:11 -0800 (PST), David Schwartz
> <(E-Mail Removed)> wrote:
>
>>On Jan 12, 9:12*am, scattered <(E-Mail Removed)> wrote:
>>
>>> I don't see why it would be impossible. Optimizing compilers exist and
>>> by using similar techniques it should be possible to write a compiler
>>> that uses C as both the source and target language. How useful this
>>> would be is another question. The resulting code would need to be
>>> humanly readable if the tool would be of any use and the would
>>> probably place severe restrictions on the sorts of optimizations that
>>> can be done. I would be surprised if no work along these lines has
>>> been done.

>>
>>That would be a useless tool, all it would do would be obfuscate. If
>>the code contains optimizations that can be made by machine, what is
>>the point of modifying the source code? Let the machine make the
>>optimizations when the code is compiled and keep the source intact.

>
> What he's looking for is not compiler optimizations but optimization of
> the underlying algorithm. As somebody else mentioned, seeing a bubble
> sort and deciding that a quick sort would be more appropriate.


Unless it was only ever a handful of items, in which case an
insertion sort might be more appropriate. Know your N (most
important when N might be large, of course, but also when it's
small). However, anything which brings about the nuking of
bubblesort in any context is an improvement.

Phil
--
Any true emperor never needs to wear clothes. -- Devany on r.a.s.f1
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
problem in running a basic code in python 3.3.0 that includes HTML file Satabdi Mukherjee Python 1 04-04-2013 07:48 PM
Download a file piece by piece Patrick Plattes Ruby 2 11-30-2006 07:48 PM
Toshiba suggests end of DVD war is near. Allan DVD Video 1 06-02-2005 01:31 PM
"Google Suggests" and the AJAX .NET Wrapper? Phin ASP .Net 2 06-02-2005 07:43 AM



Advertisments