Virtual-C IDE versions

Virtual-C IDE is a platform for learning and teaching the C programming language
2.3
2.2
1.7
Aug 1, 2016
Review
1.6
Nov 8, 2015
1.5
Aug 6, 2015
Review
1.4
Apr 26, 2015
1.3
Oct 2, 2014
1.1
Mar 5, 2014

What's new

v1.7 [Aug 1, 2016]
The current VIDE version does not support:
- changing the contents of a variable in the debugger
- run to a specific line during debugging (a breakpoint has to be set)
- breakpoint menu, disable/enable breakpoints, setting breakpoints during
execution
- export to native code
Known Bugs of the IDE:
- Breaking during an I/O-Operation will typically send an EOF, so it is not
possible to proper continue the application (Solution: set break point in
the line after the I/O operation and enter - in case of stdin - proper
text in console)
- Breakpoints in empty lines are possible, but step-over already executes
the next valid statement
- editing a file outside the IDE will not be noticed (re-open is required
for the update)
Features - not bugs:
- Unless you modify a file, the debugger will launch the latest build
(even if you opened a new C-file). Force the compiler with CTRL F7 to
compile the new file (this features allows you to open (show) different
files in the editor while debugging through one file).
- Modifying a file during debugging will lead to an immediate re-compilation
of the file, when pressing F5 (run), F10 (step over) or F11 (step into).
This feature allows to quickly demonstrate the effects of code changes
without re-building and re-starting the debugger. It's useful to set a
breakpoint in the modified line, so F5 will directly jump to that line.
- The virtual machine uses dynamic loading, thus the linker will not complain
on a missing main()-function, but the loader will. As well, the parameters
of the main()-function are checked by the loader and not by the linker.
- Closing the IDE during debugging will stop debugging instead of closing the
IDE
- it will read in C90 mode some K&R style function definitions.
The Version of the integrated SimpleC Compiler is 0.9.4 (beta). The compiler is
compliant to the ISO C90 standard except:
- the handling of multibyte characters: The compiler does not support
wide character (wchar_t) - all strings are stored as arrays of char.
- the localization <locale.h> is not supported, the only locale is "C".
- many functions in <time.h> are not yet supported.
- some known bugs of the compiler - see below.
- unreadable (historical) C statements like [1]a = 0; will provide a
syntax error.
Notes:
- "char* s=NULL;" does compile in C90 mode without including <stddef.h>, but
the value of s is not (void*)0x00 (it holds actually the contents of an
implicited declared int-variable called NULL).
Known bugs of the included SimpleC-Compiler version:
- Absurd statements like a b; will not create code. The same behavior occurs
with an (partly absurd) statement like a b ; (b is not incremented).
The compiler issues the warning "absurd statement - ignored".
- nesting condition operations provide a syntax error
- bit-OR in if-Condition can not be mixed with boolean conditions
- initializing using the address operator and an constant offset
creates an error in global scope
- nesting designators in initializations create missing member error
- missing C11/C99 features:
VLA (whenever available, than as option - I think every on needs to
learn the use of malloc & free)
_Complex, <complex.h> (never say never, but probably won't ever come)
<tgmath.h> and many functions in <math.h>
Threads & Atomic: _ThreadLocal and _Atomic not yet supported
The Version of the standard library is SlibC ("simple libC") version 1.4.
The headers are stored in SimpleC/inc. All headers are prefixed with an
underscore like _stdio.h, so they can't be mixed with other headers installed.
The ISO-C90 library is fully supported except the localization <locale.h>,
<time.h>, setjmp/longjmp and some limits regarding file handling
("r "/"w "/"a " modes are not supported. The pow function is adapted
from the fdlibm project (c) 2004 Sun Microsystems, see the NetLib Repository:
http://www.netlib.org/fdlibm/e_pow.c
Limits of the virtual machine (MOP-VM):
The VM is optimized for speed, so currently buffer over- and underruns
are not detected on stack. The intial stack size is calculated as three
times the maximum stack usage of an included function or a minimum of
32K. The stack is not dynamically extended.
The amount of available heap memory is not large (16MB). Note, that the
Memory visualization tries to draw each element on stack, data and heap.
So using many memory objects will slow down the user interface!
I/O operations cannot be interrupted; thus break will cancel any read
or write.
Any thread synchronization might be interrupted by stepwise debugging or
setting breakpoints.

Alternative downloads

Wing IDE 101
Wing IDE 101
Free
rating

A Python IDE specially designed for teaching purposes.

RVW Virtual Brick
RVW Virtual Brick
rating

A tool designed to help educators teach through simulation.

PROGRAMINO IDE for Arduino
PROGRAMINO IDE for Arduino
rating

Professional development environment.

Momentics IDE for BlackBerry
Momentics IDE for BlackBerry
Free
rating

You can use it for building your BlackBerry 10 OS-based systems.

ROBOTC Virtual Worlds - VEX
ROBOTC Virtual Worlds
rating

Robot Virtual Worlds is a high-end simulation environment.