The topic of this article may not meet Wikipedia's
general notability guideline. (April 2018) |
Paradigm | Multi-paradigm: procedural, object-oriented, generic |
---|---|
Designed by | Jérôme Jacovella-St-Louis |
First appeared | 2004 |
Stable release | Ecere SDK 0.44.15
/ 4 August 2016 |
Typing discipline | Static, nominative, partially inferred |
Implementation language | eC |
OS | Cross-platform |
License | BSD-3 |
Filename extensions | .ec, .eh |
Website |
ec-lang |
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.
A "Hello, World!" program in eC:
class HelloApp : Application
{
void Main()
{
PrintLn("Hello, World!");
}
}
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 { };
The topic of this article may not meet Wikipedia's
general notability guideline. (April 2018) |
Paradigm | Multi-paradigm: procedural, object-oriented, generic |
---|---|
Designed by | Jérôme Jacovella-St-Louis |
First appeared | 2004 |
Stable release | Ecere SDK 0.44.15
/ 4 August 2016 |
Typing discipline | Static, nominative, partially inferred |
Implementation language | eC |
OS | Cross-platform |
License | BSD-3 |
Filename extensions | .ec, .eh |
Website |
ec-lang |
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.
A "Hello, World!" program in eC:
class HelloApp : Application
{
void Main()
{
PrintLn("Hello, World!");
}
}
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 { };