|
Ejscript is an enhanced implementation of the Javascript language intended for use in embedded applications and devices -- outside browsers. It is an interpreted, object oriented scripting language that supports classes, objects, interfaces, exceptions, namespaces, iterators, statements, expressions and a powerful suite of data types.
Ejscript is based on the standardized version of Javascript known as ECMAScript Edition 3 (ECMA-262-3) and the emerging ECMAScript Edition 4 (ES4) standard, but it is an enhanced implementation of the language. It is currently at version 0.9.2 and is still pre-release and some features are not fully implemented. See the project announcement on the official mailing list. Ejscript, is free and open source software.
ECMAScript 4 is an emerging standard. Implementation status for various implementations can be tracked in a Google Spreadsheet. Preliminary specifications are at the ECMAScript Web Site.
Ejscript Features Ejscript is full implementation of the emerging ECMAScript 4 standard and has the following features:
Product Components *Ejscript Optimizing Compiler (ec) *Ejscript Shell Interpreter (ejs) *Ejscript Module Manager (ejsmod) *Ejscript Virtual Machine (ejsvm) *Symbolic assembler listing generator *Eclipse based debugger (not yet released) *Full Documentation *Samples *Source code
Language Features *Complete ECMAScript 4.X implementation *Classes, Objects, Interfaces *Optional type annotation *Namespaces, iterators *Strict and standard mode *Compilation unit control via modules *Enhanced compatibility mode to fix common JavaScript issues
Embeddable and Configurable *Configure program to tailor builds from source code *Build configuration settings available to script programs *Conditional compilation for scripts *Support for ROM based programs and XIP
Virtual Machine *High performance Virtual Machine supporting direct threading *Generational garbage collector *Slab based object allocation for very fast object creation *Very compact, high level byte code designed for data intensive applications
Development Tools *HTML documentation generation *Symbolic assembler listings *Command shell interpreter *Stand-alone optimizing compiler *Eclipse based IDE and debugger (Not yet released)
Modularity *Compiler generates module files with automatic module dependency handling *Ability to load script and binary modules at run-time
System Library *Core types: Array, Boolean, ByteArray, Date, Error, Function, Iterator, Namespace, Null, Number, Object, String, Type and Void *XML (supporting E4X) *HTTP and SSL *Sockets *Streams, BinaryStream, StringStream, TextStream *Events and Listeners *Timers *File System, File I/O *Streams, BinaryStream, TextStream, StringStream *Logging *Timers *Application context *System context and information *Garbage Collector control *Database (SQLite). Supports ORM mapping to JavaScript objects. *Embedded Server Pages. MVC web framework
Standards *ECMA 262 *ECMA 357 *ECMAScript 4.X *HTTP/1.1
Performance *Code size ~200K
|
|
|