<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>4. The Self World</title>
    
    <link rel="stylesheet" href="_static/epub.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> 
  </head>
  <body role="document">

    <div class="document">
      <div class="documentwrapper">
          <div class="body" role="main">
            
  <div class="section" id="the-self-world">
<h1>4. The Self World</h1>
<p>The default Self world is a set of useful objects, including objects that can be used in application
programs (e.g., integers, strings, and collections), objects that support the programming environment
(e.g., the debugger), and objects that simply are used to organize the other objects. This document
describes how this world is organized, focusing primarily on those objects meant for use in
Self programs. It does not discuss the objects used to implement system facilities—for example,
there is no discussion of the objects used to implement the graphical user interface—nor does it
discuss how to use programming support objects such as the command history object; such tools
are described in The Self User’s Manual.</p>
<p>The reader is assumed to be acquainted with the Self language, the use of multiple inheritance,
the use of traits objects and prototype objects, and the organizing principles of the Self world as
discussed in <a class="reference internal" href="ref.xhtml#citations"><span class="std std-ref">[UCC91]</span></a>.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="worldorg.xhtml">4.1. World Organization</a><ul>
<li class="toctree-l2"><a class="reference internal" href="worldorg.xhtml#the-lobby">4.1.1. The Lobby</a></li>
<li class="toctree-l2"><a class="reference internal" href="worldorg.xhtml#names-and-paths">4.1.2. Names and Paths</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="roots.xhtml">4.2. The Roots of Behavior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="roots.xhtml#default-behavior">4.2.1. Default Behavior</a></li>
<li class="toctree-l2"><a class="reference internal" href="roots.xhtml#the-root-traits-traits-clonable-and-traits-oddball">4.2.2. The Root Traits: Traits Clonable and Traits Oddball</a></li>
<li class="toctree-l2"><a class="reference internal" href="roots.xhtml#mixins">4.2.3. Mixins</a></li>
<li class="toctree-l2"><a class="reference internal" href="roots.xhtml#the-identity-mixin">4.2.4. The Identity Mixin</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="blocks.xhtml">4.3. Blocks, Booleans, and Control Structures</a><ul>
<li class="toctree-l2"><a class="reference internal" href="blocks.xhtml#booleans-and-conditionals">4.3.1. Booleans and Conditionals</a></li>
<li class="toctree-l2"><a class="reference internal" href="blocks.xhtml#loops">4.3.2. Loops</a></li>
<li class="toctree-l2"><a class="reference internal" href="blocks.xhtml#block-exits">4.3.3. Block Exits</a></li>
<li class="toctree-l2"><a class="reference internal" href="blocks.xhtml#other-block-behavior">4.3.4. Other Block Behavior</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="numbers.xhtml">4.4. Numbers and Time</a><ul>
<li class="toctree-l2"><a class="reference internal" href="numbers.xhtml#random-numbers">4.4.1. Random Numbers</a></li>
<li class="toctree-l2"><a class="reference internal" href="numbers.xhtml#time">4.4.2. Time</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="collections.xhtml">4.5. Collections</a><ul>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#indexable-collections">4.5.1. Indexable Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#strings-characters-and-paragraphs">4.5.2. Strings, Characters, and Paragraphs</a></li>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#unordered-sets-and-dictionaries">4.5.3. Unordered Sets and Dictionaries</a></li>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#tree-based-sets-and-dictionaries">4.5.4. Tree-Based Sets and Dictionaries</a></li>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#lists-and-priorityqueues">4.5.5. Lists and PriorityQueues</a></li>
<li class="toctree-l2"><a class="reference internal" href="collections.xhtml#constructing-and-concatenating-collections">4.5.6. Constructing and Concatenating Collections</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pairs.xhtml">4.6. Pairs</a></li>
<li class="toctree-l1"><a class="reference internal" href="mirrors.xhtml">4.7. Mirrors</a></li>
<li class="toctree-l1"><a class="reference internal" href="messages.xhtml">4.8. Messages</a></li>
<li class="toctree-l1"><a class="reference internal" href="processes.xhtml">4.9. Processes and the Prompt</a></li>
<li class="toctree-l1"><a class="reference internal" href="foreign.xhtml">4.10. Foreign Objects</a></li>
<li class="toctree-l1"><a class="reference internal" href="unix.xhtml">4.11. I/O and Unix</a></li>
<li class="toctree-l1"><a class="reference internal" href="oddball.xhtml">4.12. Other Objects</a></li>
<li class="toctree-l1"><a class="reference internal" href="buildworld.xhtml">4.13. How to build the world</a><ul>
<li class="toctree-l2"><a class="reference internal" href="buildworld.xhtml#from-within-the-main-self-tree">4.13.1. From within the main Self tree</a></li>
<li class="toctree-l2"><a class="reference internal" href="buildworld.xhtml#from-outside-the-main-tree">4.13.2. From outside the main tree</a></li>
<li class="toctree-l2"><a class="reference internal" href="buildworld.xhtml#finishing-the-build">4.13.3. Finishing the build</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="lowlevel.xhtml">4.14. How to use the low-level interrupt facilities</a></li>
<li class="toctree-l1"><a class="reference internal" href="textdebug.xhtml">4.15. Using the textual debugger</a></li>
<li class="toctree-l1"><a class="reference internal" href="logging.xhtml">4.16. Logging</a><ul>
<li class="toctree-l2"><a class="reference internal" href="logging.xhtml#how-to-log">4.16.1. How to log</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging.xhtml#how-logging-works">4.16.2. How logging works</a></li>
</ul>
</li>
</ul>
</div>
</div>


          </div>
      </div>
      <div class="clearer"></div>
    </div>
  </body>
</html>