I am a C programmer but i do not like C, i use it just cause i have no other language.
i use
- SierraC for 68000 (it is C89, very old but prettier than gcc-m68k)
- AnalogDevices VisualDSP++ C for Blackfin
- SGI MIPS PRO C/C++ for IRIX
- Cosmic C for 683xx and 68hc11 (it runs on XP and it has Misra checker plugin)
- SONY PSX Gcc
- MIPS.SDE C, for MIPS32
- KEIL ucVision C/C++ for Arm
- MPLAB C for dsPIC
- gcc for powerpc, super hitachi, x86
i have modula2/3 (based on gcc) ables to crosscompile for
- host=x86, target=PowerPC
- host=x86, target=arm (nintendo GBA)
- host=x86, target=avr8
i have freePascal ables to crosscompile for
- host=x86, target=PowerPC
- host=x86, target=arm (nintendo GBA)
i have green hills ADA
- host=x86/linux, target=PowerPC
- host=sparc/sunOS, target=PowerPC
i have gnat-ADA able to compile for
- host={x86, PowerPC, Arm}
ADA for 68hc11/Avr8 has no sense and gnat is broken for the most
so that's all, no other compilers languages, just C/C++!
may be i can use eLUA as interpreter, it is working on Discovery ARM board, for example, or python on chip, which is working on the same board, but they are interpreters not compilers!
Yep, you're setting 'a' equal to two, then using it as a Boolean. What's hard about that?
that is terrible at all, no sense to admit a "LET" (a=...) inside a conditional statement, it is just a reason to put a bug inside your code if you miss a char "=" !
A LET MUST stay OUTSIDE and end with ";", and a conditional statement MUST be eval-boolean-expression, so it MUST refuse everything does not result as a boolean {True, False}
The only way you'd be prone to leaving out 'break' is if you don't understand that they are labels.
It may be you forget it, it happens when you copy & past, or when you are tired and you miss a piece of code: a pretty compiler should warning or point attention to it! A break is also dangerous cause it may be used to escape a block, while (eval) { blabla; break; } and this cause people to abuse of it producing ugly code.