Welcome to CM3-IDE! This is a informal introduction to CM3-IDE. To learn about CM3-IDE thoroughly, you can read the CM3-IDE User Guide. What follows is an overview of CM3-IDE to get started if you don't have time to read the user guide.
Navigating CM3-IDE. If you have ever used a web browser, you should have an easy time navigating CM3-IDE. Think of CM3-IDE as your personal web server, running on your own machine, and serving your browser with pages corresponding to your programs. You browse CM3-IDE's contents with your favorite web browser. As far as your web browser is concerned, all CM3-IDE elements are ordinary web pages.
However, CM3-IDE is much more than an ordinary web server. CM3-IDE
is active--it doesn't just serve you real files or run CGI
scripts. Instead, CM3-IDE generates most of its pages dynamically from
your sources. CM3-IDE embeds a full development
environment into a custom web server. For example, here are a
reference to all the packages on your system
(/package), a reference to the
built-in string type (/type/TEXT), or a reference to
the simple I/O interface
(/interface/IO). As you may have noticed,
everything in CM3-IDE has an associated URL.
Team Development with CM3-IDE. To manage large projects with
CM3-IDE you divide your code into packages. Packages can be
built independently; you or others in your group can use the code from
one package to build another. CM3-IDE has a team-oriented model for
development. Each one of the developers in your team has a private repository (/proj); all the
developers share a public repository of packages
(/public), which is available for
everyone to browse. CM3-IDE accelerates your team development tasks
by:
State-of-the-art Programming with CM3-IDE. Using CM3-IDE's advanced features such as garbage collection, distributed objects, exceptions, portable operating system interfaces, you can build robust programs and maintain old programs quickly and reliably. There are many interfaces available as part of the CM3 distribution for every development need (well, almost!) Some of the most important programming interfaces are summarized in CM3-IDE Interface Index.
Non-nonsense Development Environment. CM3-IDE covers all the
needs of developers who would like to build robust applications,
whether they are distributed or local. In the past ten years,
CM3-IDE's core has been used specifically for this purpose. Those who
are not interested in using fancy development GUIs can use
CM3-IDE's builder (cm3) as a
stand-alone compiler from the command-line shell. Using
cm3 is very easy; its command arguments and makefile
format is the same across all Unix and Windows platforms.
All the on-line help, reference, tutorial, and documents you need is at your fingertips. You can you can easily link in local and network web information into your projects, as well.
The best way to learn about CM3-IDE is to work through examples while reading the CM3-IDE User Manual. If you are reading this page, you are probably anxious to get some real work done, so the rest of this page attempts to describe the basics of operating CM3-IDE quickly.
For a new user who is in a hurry, the rest of this document includes basic information on basic CM3-IDE functions.
| S Y S T E M |
Packages shows you the available packages, including public and private packages. Click
on any package name to visit the package.
|
Configuration takes you to
CM3-IDE's configuration page. You can customize CM3-IDE's
behavior using this screen.
|
Libraries displays a list of available libraries. You may import libraries into other packages. To visit a library, click on its name in the library listings.
|
Programs shows you a list of available
programs. You may execute any program by clicking on its name.
|
|
| L A N G U A G E |
Interfaces lists all the available
interfaces in your system. A typical CM3 installation may include
more than a thousand interfaces. To read an overview of the interfaces,
consult CM3-IDE Interface Index. |
Modules lists all the
module implementations available in your CM3-IDE system. Modules contain
executable sources of programs and libraries. You may only access
a module through its interface.
|
Generic Interfaces
are parameterized interfaces. Generics can be used to constructs
generic data types and algorithms. |
Generic Modules
are implementations of generic interfaces. |
|
Types
includes a full cross-reference of the types used in all built
programs on your system. Object types
may be viewed as part of the type hierarchy. You can also navigate
to the interfaces and modules where the type was defined.
|
||
| H E L P |
Getting StartedYou are here! |
User Guide takes you to the
user guide for CM3-IDE and CM3-IDE's builder, cm3.
|
Tutorial
includes two tutorials, one on the Modula-3 programming language and
another on Trestle, the multi-platform user interface toolkit. |
Reference is a link to the
reference information about CM3-IDE and Modula-3. |
|
Examples outlines more than twenty
hands-on examples. Once you click on any of the examples, they turn
into your own private package, so you can build them. See also
Hello World. |
Technical Notes
includes more technical information about CM3-IDE and Modula-3. |
Navigating using these icons has the benefit that your browser will not erase your history, as it would if you used its "back" and "forward" buttons. You can then use your browser's history (usually under the "Go" menu) to go back to where you started from.
CM3-IDE |
public |
libm3 |
src |
rw |
Common |
IO
CM3-IDE
takes you to the start page.
public
takes you to /public, the public repository of shipped packages.
libm3
takes you to /public/libm3, the standard libraries.
src
takes you to /public/libm3/src, the source directory of thelibm3package.
rw
takes you to /public/libm3/src/rw,rwsubdirectory of the sources forlibm3, which contains the sources for standard reader and writer streams.Common
takes you to /public/libm3/src/rw/Commonthe subdirectory containing platform-independent sources of therwportion oflibm3.IO
takes you to, /public/libm3/src/rw/Common/IO.i3theIOinterface./interface/IOis a short-cut to the IO interface.
Try typing in any of the expressions below in the type-in field. Press return to find the interfaces specified in the type-in.
/interface/IO to find the IO interface.
/program/ to see all the available programs.
/library to see the list of all libraries.
/public to visit the public packages.
/proj to visit your private packages.
/help to visit the User Guide.
/reference to visit the CM3 Language Reference.
/interface/I* to find all interfaces that
start with the letter "I".
Examples section of your CM3-IDE
environment.
Or you can navigate to the
Packages listing page, and click on the button.
CM3-IDE User
Guide: The user guide includes a thorough, 180-page
description of CM3-IDE.
CM3-IDE Interface Index: If
you would like to read an overview of the standard Modula-3 libraries,
visit the Interface Index.
CM3 Operations Guide: Critical Mass Modula-3
(cm3) is a state-of-the-art compiler specifically
designed for the creation of robust and distributed programs; cm3
is the core of CM3-IDE's building facilities. You can
find more information about cm3 by reading
the CM3 Operations Guide.
Books and Articles: More
than 50 books and articles are listed in a
comprehensive, annotated bibliography. There
is also a
concise bibliography.
CM3-IDE Examples:
More than twenty ready-to-build, documented programs
demonstrate the use of everything from portable operating system
interfaces, to CM3 network objects, to the web-server toolkit. If
you have learned the basics of the CM3-IDE environment and would like
to get some hands-on experience with it, review the CM3-IDE Examples.
Modula-3 Tutorial:
If you know the basics of CM3-IDE, but you would like to learn more
about Modula-3, or like to build Modula-3 programs from outside of the
CM3-IDE environment, read the Modula-3 Tutorial.
Trestle By Example:
Trestle is a portable windowing system. GUI applications
written using Trestle work transparently on top of Unix X Window
System (X11) and Microsoft Windows (Win32). If you would like to learn
more about Trestle and the available collection of Widgets, start by
Trestle by Example.
Much of CM3-IDE's behavior can be customized. You know by now that you can embed CM3-IDE web links, forms, etc., in your programs or HTML documents on your system. (This is how we created this page; you can easily make your own introductory pages for newcomers in your development group!)
Many of the CM3-IDE settings can be changed from CM3-IDE Configuration form. On-line help about your options is available from the configuration page.