Agile Object System Framework

Smallscript Corporation’s Agile Object System (AOS) Framework is a rich multi-paradigm common dynamic language runtime and scripting language architecture. It has intrinsic support for the S# language which is a superset/dialect of classic Smalltalk-98. See the Informal Language Comparison Chart.

The S# (ssharp) language implementation (pronounced s-sharp) is a complete modular redesign of the Smalltalk language, offering transparent cross-language integration and component based deployment. Capable of supporting both repository and industry standard file-based source code management, it offers a rich array of streamlined features which enhance the Smalltalk language with features familiar to users of languages such as C, C++, Java, JavaScript, Microsoft Visual C# .NET, Visual Basic .NET, Python, PHP, and many popular scripting languages.

In contrast with a variety of other programming languages, its unique modular composition technology with multi-threaded C-like-performance of dynamic and scripting languages addresses many of today’s most difficult fragility and versioning challenges that developers face when working on just-in-time integration within client and server applications.

Design work and implementation of the Smallscript System began in 1999. Today, it offers modular deployment as a small-footprint, hi-performance, pre-emptive multi-threaded jit-based execution engine for dynamic and scripting languages.

Modular means creation of real composable EXE/DLL code-libraries and drag-install of components. The standard AOS Runtime system, compilers and core frameworks come as a single drag-install ~1.2MB DLL/so/shared-library and a 8KB script-runner/module-compiler EXE.

Small means components or modules typically sized in the low KB range.

Fast means execution speeds targetting the range of 2-3X of C/C++ and total startup/execute/shutdown times measured in 10’s of milliseconds.

Scripting means executing source via an integrated choice of binary, text files, html, and xml.

It is designed to meet today’s challenging requirements for building and deploying software engineering solutions as mixed language components. It enables delivery of programs and components as small as 2KB, supports namespace partitioned access to multiple co-resident versions of the same methods for a given class, and provides key features such as optional strong typing and file-based development.

It breaks new ground for developers on leading Web and Internet technology platforms such as Microsoft .NET, where it offers unique capabilities that include enabling extension of final/base classes and new patterns of reuse through concrete interface implementations. Its state-of-the-art design removes the constraints of classic Smalltalk while offering lightweight scripting and module facilities that scale up into the traditional space occupied by classic Smalltalk.

Smallscript’s solution technology is the result of more than a decade of generally unpublished commercial dynamic language research and implementation experience by its architect, David Simmons. It’s execution and object model facilities are designed around a unified architecture of state-of-the-art dynamic language techniques including selector namespaces, optional dynamic typing, multi-methods, concrete interfaces/mixins, and self-marshalling transparent foreign functions with typical FFI calling rates in the many 10’s of millions calls/sec.

This work is the 4th major generation of virtual machine and language system design by its architect, David Simmons. Smallscript’s CDLR implementation was built from ground up as a complete from scratch design utilizing Mr Simmons implementation experience and knowledge developed in this field since the 1980’s. Prior to joining Smallscript Corp, Mr Simmons, spent more than ten years as the chief architect at QKS (Quasar Knowledge Systems, Inc) where he was the principal architect and implementor of QKS Smalltalk, and the QKS SmalltalkAgents IDE product family; a body of work that included three prior design generations of multi-language VM/EE Platform Runtimes.

Mr Simmons is a well recognized virtual-machine pioneer and language architect within the Smalltalk community. His preliminary work in the field of dynamic languages and agent technology began in the mid-80’s with the development of an OO language called Message-C while at the NSF Systems Research Center at the University of Maryland. Earlier related work in the late 70’s and early 80’s included design and development of hardware and corresponding basic-like language and on-board VM interpreter for ArpaNet routers and gateways used at NBS/NIST, and work on various Real Time and Embedded Operating Systems.

S#’s execution and deployment targets include both its full-featured AOS Runtime (CDLR) and Framework reference platform, and Microsoft’s .NET Framework Platform. Click here for availability and pricing information. The S# language includes a linguistic superset of existing Smalltalk language implementations; its compilers are capable of processing currently existing classic Smalltalk-98 code across all dialects.

Operating System Targets and Execution Engine Runtimes

Smallscript’s AOS Framework language system supports native machine code execution both the AOS Runtime and as .NET IL on Microsoft’s .NET Framework Platform Execution Engines.

Compiled code [S#.NET compiler(s)] is deployed in the form of pure IL code modules/assemblies for the Microsoft’s .NET Framework Runtime.

Compiled code [S#.AOS compiler(s)] is deployed in the form of standard PE files (DLL’s, OCX, EXEs, etc) for the AOS Runtime’s Execution Engine.

The AOS Framework Runtime engine binaries are currently available for the Microsoft Win32 operating systems [see Downloads section]. Additional ports are being considered for Linux x86 and MacOSX PPC.

See below for information on the AOS Framework Object Model and related compilers for generating and deploying programs for the Microsoft.NET Framework Runtime.

Deployment on Microsoft’s .NET Framework Platform

Working in direct collaboration with Microsoft since 1999, the S# compiler architecture was extended to support the generation of native Microsoft.NET Framework IL modules and assemblies. Key features of the Agents Object System’s [AOS] dynamic language platform facilities were also extracted and ported to Microsoft’s .NET Framework to add an extended range of dynamic and scripting language services to Microsoft’s .NET Framework Runtime.

As an Official Visual Studio Integration Partner, Smallscript Corp has been working directly with Microsoft to develop a suite of its own commercial extensions and tools that are designed to add new browsing features and enhance the developer process of the already rich facilities available within Standard VisualStudio.NET product offering from Microsoft.

“Microsoft is delighted to see the Smallscript language brought to the Microsoft .NET platform”, said David Lazar, group product manager for the Developer and Platform Evangelism Division at Microsoft Corp. “This represents another great addition to the list of languages supported by the .NET Framework and brings the full power of Visual Studio .NET to Smallscript developers.”

“Smallscript provides a valuable development environment on the .NET Framework”, said John Montgomery, group product manager for the Microsoft.NET Framework at Microsoft Corp. “Microsoft is excited to be working with Smallscript Corp. to offer developers of Smalltalk and other languages a productive, reliable, easy-to-use platform for building and deploying cross-language applications and Web services.”

“The Microsoft .NET Framework is a milestone of industry innovation for enabling high performance cross language interoperability and integrity”, said David Simmons, Chief Technology Officer at Smallscript Microsoft Corp. “By Microsoft providing a core VM Runtime architecture that is language neutral with rich services for code security and validation, Microsoft has made a great contribution in the evolution of software tools and integration technology.”

The Smallscript System compilers and tools for .NET create genuine Microsoft.NET IL assemblies of components and applications using any of the Agents Object System’s [AOS] supported languages.

Agile Object System Platform v4 [AOS Runtime, Frameworks, Toolsets]

The S# language derives its rich object model from the AOS Platform Architecture on which it is designed to execute. That architecture was designed from its inception to support multiple languages and distributed system agent services.

It incorporates the collective experience, of its architect (Mr Simmons), acquired over the last two decades spent developing virtual machines. This 4th major from scratch design, delivers rich dynamic and scripting language infrastructure and hi-performance adaptive jit facilities. The first generation was designed and implemented in 1991 by Mr Simmons and derived from earlier work in developing the Message-C language and its runtime/language backplanes in the 1980’s, as well as work in the late 70’s and early 80’s on the design and development of hardware and corresponding basic-like language and on-board VM interpreter for ArpaNet routers and gateways used at U.S. Government’s NBS/NIST and work on various Real Time and Embedded Operating Systems.

While it is simplest to view S# as a single language, it is in fact only one language layer designed to integrate symbiotically within the multi-language architecture of Smallscript. The primary script structuring and object model language (AML) is the declarative meta-language of the Agents Object System [AOS CDLR]. Its declarative form is transparently mapped onto the dynamic MOP services of the execution engine to support specifying code structure and object model entities. It offers a flexible set of syntax ranging from pure XML to various more human friendly forms.

The secondary layered languages, such as S#, are generally used for writing the method bodies and describe programmatic expressions for evaluation. The language infrastructure allows any or all object model operations to be written in some other language by switching to some other alternate AOS compatible compiler;AML provides directives to switch compilers for processing directly embedded or include-referenced code.

The Smalltalk implementation, S#, within the Smallscript family provides numerous semantic and syntactic extensions to enable transparent inter-operability with other classic languages, the AOS object model, and human programming experiences. Additional secondary languages that are supported are: C++, C, Assembly. Other languages under consideration include: VBScript, PHP, Python, Basic, JScript, and Scheme.

Availability and Pricing Information

The public technology preview SDK seed of S#.AOS for AOS Framework Platform v4 has been available, with regular updates, since November 1st, 2001.

The AOS Common Dynamic Language Runtime Platform, its core frameworks, and its standard S#.AOS compiler have no fee associated with their end-user licensing (i.e., the base AOS Framework system is available from the website at no cost/fee).

The public technology preview SDK seed of S#.NET for the Microsoft.NET Framework Platform is being prepared for release now.

Click here for additional S#.NET Tech Preview release information

The (ssharp/s-sharp) S#.NET compiler and corresponding AOS CDLR Enabler for Microsoft’s .NET Framework Runtime is designed as an add-on for Visual Studio.NET. Pricing and availability have not been announced at this time.

Please check the newsgroup [comp.lang.smallscript.advocacy] or contact [] for additional release information.

Smallscript Corporation

Smallscript Corporation is a dynamic language technology and scripting solutions provider that produces a family of integrated dynamic language components. The core language system architecture is based on the 4th major redesign effort of what is termed, the Agents Object System (AOS) Platform (a virtual machine and common dynamic language runtime technology). Established in 1999, they develop hi-performance, state-of-the-art dynamic (scripting) language solutions including frameworks of related components offering transparent cross language inter-operability and “S#”, a lightweight componentized modular superset of the Smalltalk language.

Liam Watkins

Leave a Reply

Your email address will not be published.