EC (programming language)
eC (Ecere C) is an object-oriented programming language, defined as a super-set of the C language.

eC was initially developed as part of the Ecere cross-platform software development kit (SDK) project.

The goals of the language are to provide object-oriented constructs, reflection, properties and dynamic modules on top of the C language while maintaining C compatibility and optimal native performance.

eC currently relies on GCC or Clang to perform the final steps of compilation, using C as an intermediate language. There are, however, plans to integrate directly with LLVM to skip the intermediate C files.

eC is available as part of the ecere-sdk package in Debian/Ubuntu and other derived Linux distributions. A Windows installer also bundling MinGW-w64 is available from the main website. The free and open-source SDK including the eC compiler can also be built for a number of other platforms, including OS X, FreeBSD and Android.

It is also possible to deploy eC applications to the web by compiling them to JavaScript through Emscripten, or to WebAssembly through Binaryen.

Examples

Hello world 
A "Hello, World!" program in eC:
class HelloApp : Application
{
   void Main()
   {
      PrintLn("Hello, World!");
   }
}

Graphical user interface 
A "Hello, World!" program programmed with a GUI:
import "ecere"

class HelloForm : Window
{
   caption = "My First eC Application";
   borderStyle = sizable;
   clientSize = { 304, 162 };
   hasClose = true;

   Label label
   {
      this, position = { 10, 10 }, font = { "Arial", 30 },
      caption = "Hello, World!!"
   };
};

HelloForm hello { };

References

External links 
 
 Ecere SDK
 GitHub Repository hosting the compiler and run-time library source code
 Debian Package
 3D chess web app written in eC (requires WebGL)
 100 Languages Quine Relay featuring eC
 Ecere Project on Launchpad
 Ecere Tao of Programming (eC Programmer's Guide)
 Try it online REPL

Articles with example code
C programming language family
Class-based programming languages
Cross-platform free software
High-level programming languages
Object-oriented programming languages
Procedural programming languages
Programming languages created in 2004
Statically typed programming languages
Systems programming languages