Ejscript

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
 
< Prev   Next >