Technical Program
Educators' Symposium
Doctoral Symposium
Student Research

Student Volunteers
Special Events
Housing Information
Registration Information

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, David.Simmons@SmallScript.com
Sean Simmons
SmallScript Corp, LLC, Sean.Simmons@SmallScript.com

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.