EC (programming language)

Last updated

eC
Paradigm Multi-paradigm: procedural, object-oriented, generic
Designed by Jérôme Jacovella-St-Louis
First appeared2004;16 years ago (2004)
Stable release
Ecere SDK 0.44.15 / 4 August 2016;3 years ago (2016-08-04)
Typing discipline Static, nominative, partially inferred
Implementation languageeC
OS Cross-platform
License BSD-3
Filename extensions .ec, .eh
Website ec-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.

Contents

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:

classHelloApp:Application{voidMain(){PrintLn("Hello, World!");}}

Graphical user interface

A "Hello, World!" program programmed with a GUI:

import"ecere"classHelloForm:Window{caption="My First eC Application";borderStyle=sizable;clientSize={304,162};hasClose=true;Labellabel{this,position={10,10},font={"Arial",30},caption="Hello, World!!"};};HelloFormhello{};

Related Research Articles

Java (programming language) Object-oriented programming language

Java is a general-purpose programming language that is class-based, object-oriented, and designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but it has fewer low-level facilities than either of them. As of 2019, Java was one of the most popular programming languages in use according to GitHub, particularly for client-server web applications, with a reported 9 million developers.

Linux distribution Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that is based upon the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

In computing, cross-platform software is computer software that is implemented on multiple computing platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

A software development kit (SDK) is a collection of software development tools in one installable package. They ease creation of applications by having compiler, debugger and perhaps a software framework. They are normally specific to a hardware platform and operating system combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits.

APT (software) Free software package management system

Advanced Package Tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian, Ubuntu, and related Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.

Eclipse (software) Java software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.

Ubuntu Linux distribution based on Debian

Ubuntu is a free and open-source Linux distribution based on Debian. Ubuntu is officially released in three editions: Desktop, Server, and Core for the internet of things devices and robots. All the editions can run on the computer alone, or in a virtual machine. Ubuntu is a popular operating system for cloud computing, with support for OpenStack.

Linux Family of free and open-source software operating systems based on the Linux kernel

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution.

iOS SDK software development kit by Apple Inc.

The iOS SDK is a software development kit developed by Apple Inc. The kit allows for the development of mobile apps on Apple's iOS operating system.

GLBasic

GLBasic is a commercial BASIC programming language that can compile to various platforms including Windows, Linux, Mac OS X, and some handheld devices. The language is designed to be simple and intuitive.

FlashDevelop text editor

FlashDevelop is an integrated development environment (IDE) for development of Adobe Flash websites, web applications, desktop applications and video games. The resulting applications run in Adobe Flash Player or Adobe AIR, on Microsoft Windows, Mac OS X, Android or iOS. The primary purpose of FlashDevelop is enabling developers to edit, compile, debug and publish a Flash ActionScript project. It supports ActionScript 2.0, ActionScript 3.0, Haxe and other upcoming languages. It has code completion, syntax highlighting, snippets and other features similar to Microsoft Visual Studio.

Symbian Discontinued mobile operating system

Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. Symbian was originally developed as a closed-source OS for PDAs in 1998 by the Symbian Ltd. consortium. Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARM processors, although an unreleased x86 port existed. Symbian was used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of 2010—at a time when smartphones were in limited use—when it was overtaken by iOS and Android. It was notably not as popular in North America.

Dart is a client-optimized programming language for apps on multiple platforms. It is developed by Google and is used to build mobile, desktop, server, and web applications.

Kivy (framework)

Kivy is a free and open source Python library for developing mobile apps and other multitouch application software with a natural user interface (NUI). It is distributed under the terms of the MIT License, and can run on Android, iOS, GNU/Linux, OS X, and Windows.

installCore is an installation and content distribution platform, including a software development kit (SDK) for Windows and Mac OS X. The program allows those using it for distribution to include monetization by advertisements, charging for installation, etc.; some of the products using the platform have been rated potentially unwanted program (PUP) or potentially unwanted application (PUA), by anti-malware product vendors. The platform was primarily designed for efficient web based deployment of various type of application software. As of August 2012 installCore was managing 100 million installations every month, offering services for paid, unpaid and free software. installCore is a product of ironSource which is headquartered in Tel Aviv with offices in San Francisco, CA in the United States and Beijing, China,

References

  1. "eC - Overview" . Retrieved 7 January 2016.
  2. "Category:EC" . Retrieved 7 January 2016.
  3. "新型的编程语言:eC" . Retrieved 7 January 2016.
  4. "About OOC - Similar Projects" . Retrieved 7 January 2016.
  5. "devmaster - The Ecere SDK and eC go Open Source". pp. 12–25. Retrieved 7 January 2016.
  6. "Software Developer's Journal Extra 2012/02 - Cross-Platform Development with the Ecere SDK" (PDF). Retrieved 7 January 2016.
  7. "Ubuntu Manpage: ecc - eC Compiler" . Retrieved 7 January 2016.
  8. "GSOC 2015 Ideas - eC Compiler" . Retrieved 7 January 2016.
  9. "eC - Installation" . Retrieved 7 January 2016.