Modtalk

From Computer Science Community

Revision as of 19:41, 23 April 2011 by Jsarkela (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

This article is largely unorganized and scattered. For up-to-date relevant notes on Modtalk developments, check out the U.P. Smalltalkers meeting notes.

Smalltalk Subsystems

[edit] Notes

IDE
	Browsers
	Debuggers
	Workspace
	Compilers
	
Program
	The classes for my program.
	Object
		Undefined
		Boolean
			True
			False
	(Might not have the class Class, etc.)
	
Traditionally Smalltalk has been an Imperative model.
Now, we want to add a Declarative model of Smalltalk.

Add Declarative model of Smalltalk:
	ClassDefinition
	InstanceMethodDefinition
	ClassMethodDefinition
	GlobalVariableDefinition
	PoolDefinition
	PoolVariableDefinition
	Initializer

Modular Smalltalk

	E.g., "Give me the ANSI kernel." (Gives you Streams, etc.)

	Two kinds of modules:
		1. Package
			A package holds definition.
		2. Cluster
			A cluster specifies modules.
			(Allows you to assemble packages together.)
			
	Subsystem is a 
		(1) global namespace 
		(2) identified by a top level cluster called the Configuration Map;
		(3) has a set of imports.
	
	Program is a 
		collection of subsystems.
	
	Module specification:
		Name, type, repository, revision, includes flags
		(Any of these slots--e.g. type, repository--should be 
		able to be wildcarded.

[edit] To-Do

  • Semantic Model
    • Implement SIF parser
  • Browser Tools
    • Clean-up UI layout and remove static/magic number artifacts (should all be dynamic/relative)
    • Dirty definitions should be prefixed with an '@' in the browser lists.
    • GlobalVariable Editor (implement)
    • PoolEditor (implement)
    • ClassEditor menus for creating variables
    • Add Commit and Load (to/from Repository) to Program Browser
  • Repository
    • Complete Repository Browser
    • Implement ftp/http repository accessor
  • Compiler/Runtime
    • Get ExecutionContext working... should be able to test a program in the development image
    • COLA? Obj-C Runtime?

[edit] Jan 29 2011

[edit] Code

    • SIFScanner refactor scan*
    • SIFParser all references to compilererror have position
      • nextAnnotationForDefinition
      • nextClassDefinition
      • nextPoolDefinition
      • nextSpecification
      • nextVersionId
    • SIFParser make sure tokens are valid - throw exception if not valid
    • SIFModel asModule - check that first definition is a comment-- currently doesnt
    • SIF-Test: throw in some malformed code for tests - LOSSA MORE TESTS!
    • Repository - abs paths
    • Repository - more tests
    • fix package browswer
      • ask jon re: removing menu item

[edit] Environment

  • kamanche
    • swiki
    • mailing list
    • 'cello repo
  • openCobalt

[edit] Incremental Exercises

  • For Wednesday, June 16, 2010
    • Implement a global variable editor. It should have a field for the variable name, and a text box for the initializer. Look at Class editor for examples.
    • Add a menu to the instance varaible list to create vars.
  • Saturday, June 19, 2010
    • Added removal support for inst. vars, class inst. vars, and class vars.
    • Added "add protocol..."
    • TODO: add methods...
Personal tools
services