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.
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 www.Smallscript.org
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.
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.
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.
Smallscript, S#, AOS, Agile Object System, Agents Object System are registered trademarks of Smallscript Corp. All other product or service names mentioned herein are the trademarks of their respective owners. Note that content provided on this site is for informative purposes only and is subject to change without notice.