Wednesday – 16:00-16:45
Convention Ctr - Exhibit Hall 4A
Friday – 13:00-13:45
Convention Ctr - Exhibit Hall 4A

10 – SmallScript Dynamic and Scripting Language System

David Simmons
SmallScript Corp, LLC

Sean Simmons
SmallScript Corp, LLC

The SmallScript Language System [www.smallscript.org] represents state of the art design and implementation of dynamic (and scripting) language virtual machines, corresponding runtime frameworks, and their underlying language models. Its current implementation is the outgrowth of a decade of continuous work in this field by its architects.

The original design work, done in 1991, focused on cross-language and OS integration using repository based fast interactive development tools incorporating a significantly extended superset of classic Smalltalk (including distributed computation based on agents).

Today its modularized system supports multiple dynamic (and scripting) languages with infrastructure designed to address many challenging issues -- just-in-time integration; robust versioned deployment; component and application delivery; small-modularized footprints; fast-adaptive compilation; sandbox-security; agile-design and refactoring; declarative semantics on an imperative layer; reflection and introspection for AOP, dynamic meta-object protocols; extensible predicate query binding; transparent cross-language interop with mainstream languages and popular technology standards.

This demonstration will explore the Agents Object System [AOS] Runtime architecture, the SmallScript language [a superset of classic Smalltalk], and present the implementation of cross-jitting compiler for producing standard Microsoft .NET assemblies from a variety of languages [Smalltalk, VBScript, ?] that compile to the AOS Runtime Object Model.

Specific examples will include creation of COM components, shared-libraries, executables, .NET assemblies, and cross-language subclasses.

Perhaps most significant will be a demonstration of an entirely new, fundamental language feature concept selector-namespaces and related sandboxing capability. It enables dynamic modularization of behavior within shared-classes to eliminate fragile-base classes issues and just-in-time integration conflicts that can arise from independent parties adding conflicting behavior or other named entities to shared system or framework classes.