Main Page

From VPRISoftware

Welcome to the VPRI Software Page

This site provides downloads of software and supporting materials in each of our areas of interest.


Contents

Teaching and learning powerful ideas

Etoys version 4.0

A portion of the work is covered by the Apache 2.0 license and remaining work is covered by The MIT License for Etoys. Please tell me that youre heading to keep this up! Its so excellent and so important. I cant wait to read extra from you. I just feel like you know so significantly and know how to make people listen to what you might have to say. This weblog is just also cool to become missed. Fantastic things, seriously. Please, PLEASE keep it up!

Copyright (c) 1996-2008 All Contributors to Squeak and Etoys

 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
 files (the "Software"), to deal in the Software without
 restriction, including without limitation the rights to use,
 copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the
 Software is furnished to do so, subject to the following
 conditions:

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.

Powerful ideas content and how to represent it

Authoring tool for Active Essays (online demo): TileScript Chalkboard


Fundamental new computing technologies

Instructions for downloading and building the FoNC 'Idst/COLA' platform are available here.

The FoNC system includes JOHN, a language for knowledge representation and goal-driven computing. The most recent version of this (likely more recent than the one in the FoNC distribution) and extensive documentation are available here.

Other prototypes and projects related to our work

Tamacola is a Scheme like self-hosting language running on Adobe Flash Player and Tamarin VM based on COLA project.

Tamacola source code: http://tinlizzie.org/~takashi/tamacola/tamacola-2010-09-21.tgz

Github repository: http://github.com/propella/tamacola

Demos

Tamarin virtual machine

Text Field Spec for LObjects is an active essay that uses rules to specify word wrap of text and a reasonably complete text editor. Download a Squeak image and changes file from http://tinlizzie.org/lesserphic2/Text%20Field%20for%20LObject.zip To run this you will need a Squeak VM and the file SqueakV3.sources. Almost any Squeak VM will work. The rules are live inside the essay, and you can modify them. The goal is to have a readable essay that is also compact and runable metacode for a complex program.

Jitblt is a modified version of the Pixman library that uses COLA to perform just-in-time compilation for real-time image compositing. It is available at http://github.com/damelang/jitblt.

OMeta/JS is a system for matching and rewriting patterns in JavaScript data structures. It is available at http://github.com/alexwarth/ometa-js. You can also use it directly from your web browser (no installation required) through the OMeta/JS Workspace Wiki.

Mico is an experimental interactive SVG viewer. It is available at http://github.com/damelang/mico.

LYSP is a tiny (maybe even pedagogical) Lisp interpreter. It serves as a test bed for a small, precise garbage collector that may be integrated into the COLA object system. It's also my 'hats off' to John McCarthy to celebrate the 50th anniversary of Lisp. It can be downloaded here.

ABCSX is a byte code assembler / dissembler for the Adobe ActionScript Virtual Machine 2. It is used as a back end of COLA/Flash compiler. It is available at http://github.com/propella/abcsx.

JOHN-COLA is an automated planner and constraint handler program written as a COLA library. Source and links to documentation are here: http://github.com/hesam/JOHN-COLA-Planner-Library.

ESSQ is an experiment in "executable specifications" for Squeak. Source and documentation links are here: http://github.com/hesam/ESSQ. A version for Java is also available.

Gezira is a 2D vector graphics renderer written in the Nile programming language. Source code is available at http://github.com/damelang/gezira

Gezira is a rendering library for anti-aliased 2D vector graphics focusing on succinctness. The Nile language and runtime were designed to express the rendering pipeline in a minimalistic way while being performant enough for interactive use. This project includes:

  • an OMeta compiler in Squeak translates the source from Nile to C or Smalltalk
  • a runtime written in C or Smalltalk allows execution
  • the C runtime is usable from Smalltalk via a Squeak VM plugin
  • one version of the C runtime uses multiple CPU cores for speed
  • Smalltalk code can easily be debugged, C code is fast

Slides from a talk given about Nile and Gezira are available here. This talk, entitled "The Nile Programming Language: Declarative Stream Processing for Media Applications," was given at the Southern California Programming Languages and Systems Workshop Spring 2011.

Source Code: Gezira is released under the MIT license by VPRI. Since this is part of ongoing research, there is no consolidated release, yet.

  • Gezira sources and bindings http://github.com/damelang/gezira
  • Nile sources and runtimes http://github.com/damelang/nile
  • OMeta translators, Smalltalk runtime, Squeak bindings http://tinlizzie.org/updates/exploratory/packages/
    • Gezira-Nile: OMeta translator from Nile to C and Smalltalk, Smalltalk runtime
    • Gezira-Kernels: Generated Smalltalk code
    • GeziraBindings-Base: Squeak code to access plugin
    • GeziraBindings-Plugin: Squeak VM module with bindings to the C runtime
    • GeziraBindings-Base.MT: branch to access multi-threaded plugin
    • GeziraBindingsMT-Plugin: multi-threaded plugin

Screencast

Maru is a symbolic expression evaluator that can compile its own implementation language. Source code is available at Maru Source and Piumarta Temporary Location for Maru and there appears to be a branch with some improvements at Maru Fork and another fork if you want to play with it on OSX Maru OSX port

Historical Documents

A repository of historical documents is being constructed at Historical Documents.

Experiment

http://tinlizzie.org/dbjr/