Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
NameSpaces
Last updated at 7:36 am UTC on 18 March 2003
Yupp. This page was created by Peter Novak and Viktor Zigo. We'are employees of the company Whitestein Technologies and at the time we are working on implementation of NameSpaces to Squeak. It's our simple initial project in this company.
Our company implemented concept of NameSpaces (called Environments in that time) in year 1992 in VisualWorks programming environment, version 3.0. We're working on the extended port of that work to Squeak. In the article Structured Symbolic Name Spaces our chief Mr. Augustin Mrazik in the April 1992 described main ideas and goals of concept of Name Spaces.

Current state (13.10.1999) of our project:
We have implemented NameSpaces using early-binding ( late-binding is no more a matter of this branch ). NameSpaces allow mutliple inheritence, shadowing, support of imports (one of our solutions of "specialization and reusing paradox"). The user interface that consists of NameSpace Workspace and NameSpace Browser has been implemented as well. Besides other features we'd like to implement a new concept of Squeak organization of classes. If someone wants to know more about this project, please contact us at pno@whitestein.com , or viz@whitestein.com ,or our chief Mr. Augustin Mrazik .


So here are papers of our project:


We'll be happy if you'll have some constructive comments to our work. Do not hesitate and mail us your notes.

Some additions by Hans-Martin Mosner (9 aug 99):

I too have worked on Namespaces. Did not have a chance to look at Peter's work, but I hope to do so this week. My approach is to have hierarchical Namespaces which subsume the class pools and shared pools. Each Namespace in my implementation has an organization, which categorizes all elements within that Namespace (classes, internal Namespaces, other static variables) and holds a comment for that Namespace.

Each Namespace has an environment. ClassPool Namespaces effectively hold the environment of their class. Class definitions include a new keyword message part 'environment:' if their environment is not Smalltalk.

Variables from Namespaces can be accessed with dot-Syntax (for example, TextConstants.Cr would be the Carriage Return character).

The browser has been extended a bit to support the new features, but it is not yet complete.

I will put that stuff on an FTP server later this week and put a link here and post it to the mailing list...

By the way, GNU Smalltalk has a NameSpace implementation also, maybe interesting to look at, although I think it's derived from the Visual Works implementation. Markus Fritsche