eC (programming language)

From HandWiki

eC
ParadigmMulti-paradigm: procedural, object-oriented, generic
Designed byJérôme Jacovella-St-Louis
First appeared2004; 20 years ago (2004)
Stable release
Ecere SDK 0.44.15 / 4 August 2016; 7 years ago (2016-08-04)
Typing disciplineStatic, nominative, partially inferred
Implementation languageeC
OSCross-platform
LicenseBSD-3
Filename extensions.ec, .eh
Websiteec-lang.org
Major implementations
Ecere SDK
Influenced by
C, C++, Python

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.[1][2][3][4][5][6]

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

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.[9]

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