LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

When will CVI support a C++ compiler Natively?

>I believe NI had a third party tailor the LCC compiler for CVI, and that same company has a C99 version available.

This isn't true, Menchar. Where did you get this information?

Luis
0 Kudos
Message 11 of 48
(2,377 Views)
I'm trying to remember.    Now that I think about it, somewhere on the NI site you mention the name of the guy who did the compiler for you.  I think I googled his name and came across a company that offered tailored versions of the LCC and saw that they had a C99 version.   Or somebody on the forum mentioned a vendor that offered tailored versions of the LCC.  Or I looked at the LCC home site and saw that they have a C99 compliant version now.

In any event, it appeared to me that a C99 compliant LCC compiler was out there.

If you guys are maintaining the compiler, it might not be that hard to pick up some of the C99 features.   You've already got 64 bit int support (C99 long long) and C99 comments.    But, it's easy for me to say, I don't have to implement it 🙂

Menchar




0 Kudos
Message 12 of 48
(2,372 Views)
Q Software Systems offers a C99 compliant lcc compiler.

Menchar
0 Kudos
Message 13 of 48
(2,364 Views)
The reference by NI may just have been to the lcc authors (Fraser/Hanson) or the guy who's maintaining it now (Navia), rather than someone who tailored it for NI.

My apologies if I've slighted any NI compiler folk...


0 Kudos
Message 14 of 48
(2,360 Views)
It's no slight, Menchar. The LCC copyright notice is included in the CVI online help itself (look in Programmer Reference>>LabWindows/CVI Compiler Overview). What I'm correcting is not the fact that the CVI compiler is based on the LCC compiler. I'm just correcting the observation you made in which you said that NI hired a third-party company to customize the compiler. What actually happened back in the early 90s, was that NI purchased the LCC compiler and then adapted it to CVI's needs including adding much of the Intel code generation. And obviously, over the past 15 years, the compiler has continued to evolve and diverge from the original in which it was based.

Which leads us to the C99 issue. The reason it hasn't happened yet is not that NI is trying to spite the CVI user community Smiley Tongue. The main reason is that it's not a trivial change. Naturally, NI is very aware of this issue, and has researched and is continuing to research how best to address it. But because of how heavily the CVI team has had to customize the original compiler, it's not a simple matter of plugging in a third-party C99 compiler. I don't mean to suggest that implementing this is as big of a task as implementing the C++ compiler that started this thread. But it's definitely not nothing either. And whenever resources are limited, decisions must always be made on how to prioritize one feature over another.

Finally, rest assured that we definitely welcome your feedback, and we want to encourage you and others to continue to lobby for the features you want to see. That's how we know what features to prioritize.

Thanks!

Luis
0 Kudos
Message 15 of 48
(2,343 Views)
Thank you for all the information Luis,  I didn't think that NI had made THAT many customizations to implement all the CVI features, but if you say extending the CVI compiler to 99 would be a real chore, I'll believe you, I've written a C compiler before so I know how much work goes into it' but it's not THAT bad... I just can't imagine what all CVI has hooks into that would be so complicated.  But I digress.  Anyhow, I was wondering how NI would feel about the users on this forum setting up a petition to get ANSI C99 implemented into CVI, although it may be worth it to wait for C0x to get standardized.
 
0 Kudos
Message 16 of 48
(2,298 Views)
all those interested in an update to C99 for CVI should sign my petition on the subject in my other thread.  I'd like to request that a moderator lock this thread.

http://forums.ni.com/ni/board/message?board.id=180&message.id=31860
0 Kudos
Message 17 of 48
(2,255 Views)

I left the C++ crowd for plain and simple C after kiling myself with Win32 under Visual C++3 for 2 and a half years. I am a biologist, not a pro programer, and a lot of frustration with C++  tought me that  I can do what I need in C, and not have to struggle with mfc, arcane object inheritence, and gigabytes of verbose luggage from the past. The libraries of CVI are just marvelous, extremely valuable, simple and effective.

That is what make this product so great!

If we can get C99 support as well, I will be in C-heaven 🙂

layosh

I have to admit, secretly I miss the the new ,  ~ and the beutiful containers...

0 Kudos
Message 18 of 48
(2,183 Views)
you do of course realize that winforms are a tool of C++ and not a requisite, for the most part, anything that compiles in C should compile in C++ so long it follows the C++ standards, and it should compile to similar if not identical code, all the extensions that C++ provides are merely to further the utility and versatility of the language and it's available tools.  C++ is a much more evolved language than C, but as with any development project, pick your language for your project, not the other way around.  If something is easier/better in C#, do it in C#, if it's easier/better in ASM, do it in ASM.
0 Kudos
Message 19 of 48
(2,161 Views)
C++ is commonly considered to be difficult to use well. 
 
Java and C# are attempts to achieve the best of OO with the least pain.
 
I had asked for Java bindings to CVI as well as C99 😉
 
I know of non-programming professional scientific types who are programming in C# with Visual Studio,  I suspect they're not using the CVI libraries either.
 
It's hard to write good C programs too - we have CVI code written by non-programming professionals in my workplace that would turn your stomach.  The paradigm in C is "trust the programmer" - if the programmer can't be trusted to not do genuinely stupid things in C, he / she should not be writing in it.
 
Menchar
0 Kudos
Message 20 of 48
(2,156 Views)