|
1
|
- David Simmons
Sean Simmons
SmallScript LLC
|
|
2
|
- We have roughly 2.5 hours
- We will take a break from 10:15 to 10:45
- We have the 4.0.0.1620 Technology Preview
- CD Form
- PCMCIA Memory Disk Card
- And it is available from the www.smallscript.org site
|
|
3
|
- Distribute CD’s at the end of the talk
- Discuss what the SmallScript Dynamic Language System, and what it is
not.
- Talk about the AOS Platform
- Talk about the .NET Platform
|
|
4
|
- Technology Preview SDK
- Deployment Elements [Installer]
- Installed Elements and Organization
- Standard Tools
- What you can expect from us now and in the near term future
- IDE Facilities; SmallScript.AOS and VBScript.AOS Languages
- VisualStudio.NET and the AOS.NET.Enabler
- SmallScript SDK CHM File
- Language Guide
- Framework Overview
- Tutorials
- SmallScript Web Community Portal
- What is: free?; commercial?; the business focus?
|
|
5
|
- Technical Foundations
- What is an object?
- What is a class?
- What is a script?
- What is a module, DLL, assembly, etc
- What is the process to go from source to executable code?
- Interactive Script Compilation and Execution
- Classic Build Processes to Produce Deployment Binaries
|
|
6
|
- Languages and Tools Introduction
- Source forms and Management
- File Based, Repository Based
- Creating a: Application; DLL
- Interactive Scripting and Classic Smalltalk Browsing
- The Language: AML, SmallScript
- Classes, Methods, Enums, Evals
- Namespaces, Fields, Imports, Implements
- Signature, Control Flow, Keywords, Features
|
|
7
|
- Discussion and Overview of the Frameworks
- Language Infrastructure [MOP], Numerics, Collections, Specifiers, GUI
Elements, other
- .NET Frameworks
|
|
8
|
- The GUI Facilities and Browser Toolkit
- Simple Window; Menu, Toolbars, Events
- Graphics; Canvases; Media Objects
- Browser Toolkit Elements
- Goals
- Views and Models
- Extending Context Nodes; Leaf Entities; Value Presentations
|
|
9
|
- Audience Driven Exploration
- Language Features
- Framework Features
- Solution Examples
- Suitable Tasks and Best Approaches
- Cross-dialect Portability
- Microsoft’s .NET and WebServices
- SmallScript and You
|
|
10
|
- SmallScript: The Language
- Superset of classic Smalltalk with rich integration of static, dynamic
and scripting language features
- Based on a decade of commercial Smalltalk Implementation Experience
- Agents Object System [VM Option #1] Platform
- 4th Generation Dynamic Language Runtime
- First generation developed in 1991
- Focus on Simplification through Unification
- Pluggable JITTER Architecture, Unified Object Model, Flexible
Deployment Based on Mainstream Industry Standards
- Microsoft’s .NET [VM Option #2] Platform
- AOS.ON.NET Enabler
- AOS.TO.NET JIT Compiler for generating standard .NET managed code
components
|
|
11
|
- Support Mainstream Component and Application Deployment Technologies
- Shared Library Modularization
- Binary Deployment Standards
- Emerging Metadata Standards
- Rebuild Smalltalk from the ground up
- modularized
- lightweight
- scale from scripting to complex systems
- Extend the language
- to support scripting
- to support familiar imperative style and constructs
- to support optional typing
- Support Mainstream File Based Development
- Enable use with popular IDE tools and processes
- Extend the language
- to provide transparent FFI
- to provide intrinsic component facilities
- Augment the language
- to provide declarative facilities
- to provide repository facilities compatible with Binary Deployment
Standards such as COFF/ELF
- Provide a Common Dynamic Language Architecture
- Support all classic Smalltalk features
- Support all current Scripting Language Features
- Support all current Lisp/Scheme Language Features
|
|
12
|
- Lightweight, Modular, Multi-threaded Architecture
- Rich Dynamic Object Model and MOP services
- Extensible Binding Predicates
- Optional Typing for Marshalling and Multi-methods
- Class and Instance Specific Structure and Behavior
- Modules distinct from Namespaces
- Interfaces as First Class Mixin and Aggregation Entities
- Selector Namespaces to manage change and dynamic privileges
- Facilities to Manage Contextual Relativity
- Weaving & Entanglement
- Sandboxes
|
|
13
|
|
|
14
|
- Unit of Behavior
- Inheritance of Implementation
- SI via a single Superclass
- MI through Aspects
[Interfaces and Mixins]
- Methods for The Class
- Methods for Instances
- Unit of Metadata
- Mutable Repository
- Arbitrarily extensible
- Reflectively queryable
- Unit of Structure
- Constructor of Objects
- Single Inheritance of Layout of Fields
- Reference Types (Slots)
- Value Types (Bits/Structs)
- Intrinsic Aggregation and MI Composition through Interfaces
- Unit of Privilege/Scope
- Namespace
- Container of shared fields (variables)
- Scope for Message Selectors
- Inheritance of Scope
- SI via a single Superscope
- MI through Importing
|
|
15
|
- Units of packaging and deployment
- Repositories of Code and Media
- Manifests of Version and Security Data
- Implemented Using Mainstream Standards
- COFF, PE, ELF, CodeFragments
- Shared Libraries, DLL’s, EXE’s, OCX, CPL, etc
|
|
16
|
- Independent Unit Executable Source
- Easily created with basic text editing tools or automatic generation
- Easily modified with basic text editing tools
- Text Based Files and Chunks
- Well suited for providing small ad-hoc operational chunks within some
larger application or system context
- By and for Human Beings
- Is for humans to communicate structure and commands to software systems
- Not for software to talk to other software
- Substitutable for compiled binary executable software formats
- Acceptable performance for repeated execution and stream based call
chaining
- Well suited for use in stdio streaming and text processing through
program piping
|
|
17
|
- [stdout cr << ‘Hello World’]
|
|
18
|
|
|
19
|
- Interactive Script Compilation and Execution
- Classic Build Processes to Produce Deployment Binaries
|
|
20
|
- AML is XML with flexible syntax
- AOS Object Model Declarations
- SmallScript is AML+Smalltalk
- Principally when we talk about SmallScript we actually mean the body of
an AML method token.
- See Example…
|
|
21
|
- Language Infrastructure [MOP], Numerics, Collections, Specifiers, GUI
Elements, other
- .NET Frameworks
|
|
22
|
- Simple Window; Menu, Toolbars, Events
- Graphics; Canvases; Media Objects
- Browser Toolkit Elements
- Goals
- Views and Models
- Extending Context Nodes; Leaf Entities; Value Presentations
|
|
23
|
- Thread Safety
- Around Behavior
|
|
24
|
|
|
25
|
|
|
26
|
- Numerics
- Multiple Arguments…
- Type Composition Algebra
- Binding Predicates
- Parameterized Types
|
|
27
|
|