Patterns Resources and Directories
Patterns Groups and Conferences
RAPPeL is a pattern language that provides direction and rationale for guiding analysts, developers and project managers in determining and defining requirements for business applications (e.g. information management systems, decision support systems, work-flow management, scheduling, etc.) to be developed in an OO environment.
NEPN is a free information service provided by Diio Software for programmers everywhere. We publish a newsletter monthly, which is available right here on our homepage. or thtough our E-Mailing List. The purpose of this Homepage and newsletter is to provide programmers with a FREE source of programming techniques and info on new products and langauges. The main focus of NEPN thus far has been C++ Programming, but we are always taking articles from people like YOU for our newsletter.
PERCEPS is a Perl script designed to parse C++ header files and automatically generate documentation in a variety of formats based on the class definitions and comment information found in those files. This allows you to comment your code and generate useful documentation at the same time with no extra effort. PERCEPS can be useful as a documentation tool for C++ class libraries or as a simple but effective collaboration tool for other projects.
OSE is a collection of programming tools and libraries targeted mainly at C++ programmers. The environment has been developed with the aim of improving programmer productivity through making the goal of reuse achievable, and by reducing the time developers need to devote to managing the infrastructure supporting the day to day tasks of programming. There are three major components in OSE. These are a C++ class library, a build environment and a set of documentation extraction tools. The C++ class library includes support for error handling, error message logging, error recovery, program debugging, memory management, resource management, generic collections, text manipulation, date and time arithmetic, operating system interfacing and event driven systems.
Roughly, signatures are type abstractions or interfaces of classes. They are related to ML's signatures, categories in Axiom, definition modules in Modula-2, interface modules in Modula-3, and types in POOL-I. The main language constructs added to C++ to provide this feature are signatures and signature pointers.
Java Resources and Directories
Besiex Software's FrIJDE ("frigid") Free Integrated Java Development Environment Project
Electric Communities is developing secure, scalable Internet-based social systems and virtual communities.
Jeeves is JavaSoft's Java-Powered Internet Server and framework for an extensible family of Java-based network services. Jeeves defines the Java Servlet APIs for the quick and easy creation, installation, administration and security of Java-based network servers.
Juice is a new technology for distributing executable target across the World Wide Web. In this respect, it is similar to Java from Sun Microsystems. However, as we will try to explain in the following, Juice differs from Java in several important aspects that allows it to outperform Java in many "downloadable Applets" applications. The advantages of Juice become even more pronounced when the "Applets" are large. Java, on the other hand, has an advantage in the area for which it was originally invented: embedded applications in consumer electronics and household appliances. Juice is intended to be a complement to Java, giving users a choice: Java or Juice.
Kream is an attempt to reimplement all of the Java class libraries except for the AWT. Eventually, the combination of Kaffe, AWT, and Kream will give a complete Jave execution environment which is freely distributable.
The Simple Abstract Windowing Toolkit (SAWT) by Claude Lecommandeur is an attempt to implement the java.awt.peer interface. SAWT places as few language functions in java.awt.peer as possible and reimplements the rest of them in Java code. The result is a fairly portable basis for the AWT.
SubArctic is a new Java(tm)-based user interface toolkit under development by Scott Hudson and Ian Smith at the Graphics, Visualization, and Usability Center at Georgia Institute of Technology. SubArctic is not yet another AWT widget set. It is a complete, full functioned, industrial strength toolkit designed to be used for all your user interface needs. SubArctic is based on 10 years of toolkit research and is designed to offer the advanced interface techniques needed to go beyond static interfaces and simple collections of widgets. SubArctic is highly extensible and supports a number of sophisticated effects not available in other toolkits (and provides the basic infrastructure to build much more).
TclJava is a proof of concept for connecting Java and Tcl. The dynamicism of Tcl with the speed and portability of Java make a convincing case for combining these two internet ready languages. Security, already strong in Java, is augmented by Tcl's "padded cell" security model, allowing for safe scripting as well as safe applets.
Smalltalk Resources and Directories
Smalltalk Training, Tuorials and Publications
Object-Oriented Publications and Tutorials
The ADAPTIVE Communication Environment is an object-oriented toolkit that implements strategic and tactical design patterns to simplify the development of concurrent, event-driven communication software. ACE provides a rich set of reusable C++ wrappers, class categories, and frameworks that perform common communication software tasks across a range of operating system platforms. The communication software tasks provided by ACE include event demultiplexing and event handler dispatching, service initialization, interprocess communication, shared memory management, message routing, dynamic (re)configuration of distributed services, multi-threading, and concurrency control.
Arjuna is an object-oriented programming system that provides a set of tools for the construction of fault-tolerant distributed applications.
The goal of the research is to facilitate software production for applications in advanced scientific computing. In particular, the focus is on methods for solving time-dependent PDE problems, for example in fluid dynamics. Current research issues are (a) object-oriented software tools in this area (implementations in Fortran and C++), and (b) methods for automatic parallelization of computational methods in this area. The aim is to design software tools that make it possible to write codes on a high level of abstraction. One important issue in this context is to decouple various program components (grid, grid function, numerical method, mathematical problem), for easier program composition, modification and maintenance. Another key issue is portability between various computer architectures. In particular, an essential subgoal is to make it easier to program parallel computers.
This home page is designed to introduce the ongoing Software Engineering Research project within the CASE Center, called DIAMONDS. This research is aimed at the discovery and construction of software development methods and corresponding software tools (programs) that improve the quality and productivity of object-oriented (OO) software engineering. DIAMONDS is targeted to support computation on heterogeneous distributed systems.
The Forest project is investigating the use of persistent programming systems for the construction of software development environments. We believe that the persistence and tool integration mechanisms of traditional operating systems are a major limiting factor in the development of powerful, multi-user software development environments. Our intent is to replace the use of file systems and ad hoc persistence mechanisms with typed, persistent objects that are defined and manipulated in a standard object-oriented programming language.
ITHACA is an Esprit Technology Integration Project whose aim is to develop an integrated application development and support environment based on the object-oriented programming approach.
The goal of the Concert project is to develop portable, efficient implementations of concurrent object-oriented languages. Our approach incorporates aggressive whole program compilation, interprocedural optimization, and an efficient runtime system which works in concert with the compiler optimizations. The Concert System is an embodiment of these techniques, providing efficient implementations of object-oriented programs on a variety of platforms.
Vortex is an optimizing compiler infrastructure for object-oriented and other high-level languages. It targets both pure object-oriented languages like Cecil and hybrid object-oriented languages like C++, Modula-3, and Java. Vortex currently incorporates high-level optimizations such as static class analysis, class hierachy analysis, profile-guided receiver class prediction, profile-guided selective procedure specialization, intraprocedural message splitting, automatic inlining, and static closure analyses. It also includes a collection of standard intraprocedural analyses such as common subexpression elimination and dead assignment elimination. The Vortex compiler is written entirely in Cecil.
The UCB O-O Systems and Compilers research group investigates compiler optimizations for object-oriented languages, related implementation aspects (such as dispatch mechanisms or garbage collection), and studies of the instruction-level behavior of object-oriented programs.
The Object Systems Group is a research group at the Centre Universitaire d'Informatique of the University of Geneva under the direction of Prof. Dennis Tsichritzis. Current research directions of the OSG include theoretical and practical aspects of object-oriented programming languages, multimedia and electronic publishing.
Renaissance is a project to investigate the applicability of object-oriented techniques to the construction of large scale distributed systems. For a complete overview of the system see our overview paper.
Just like trees and plants, applications need strong roots to grow and flower. ROOT is a comprehensive object oriented framework that provides a solid foundation on which large scale data analysis applications can be built.
Sina is a concurrent object-oriented programming language, and it is the first language to adopt the Composition Filters Object Model (CFOM). The CFOM is an extension to the object-oriented model and can express a number of concepts in a reusable and extensible way. The Sina language has been developed by the TRESE project as an expressive vehicle for the Composition Filters Object Model. The TRESE project (part of the SETI Group at the Computer Science Department of the University of Twente, The Netherlands) performs activities related to research on compositional object technology.
The Spring Project at Sun Microsystems is investigating new technologies for constructing operating systems and for simplifying distributed programming. As part of this work, we have constructed the Spring distributed operating system. Spring is a highly modular, object-oriented operating system, which is focused around a uniform interface definition language. Spring is intrinsically distributed, with all system interfaces being accessible both locally and remotely.
The TRESE project aims at performing activities related to research on compositional object technology. This research includes the development of object-oriented frameworks, models, methodologies and supporting tools for creating and maintaining adaptable software.
The United Functions and Objects project has developed a programming language which unites functional and Object Oriented Programming techniques. A large subset of UFO is a pure, higher-order functional language incorporating the OO notions of classes, inheritance, and dynamic binding. Another important aspect is the provision of multi-dimensional functional arrays, with integrated loop structures and monolithic operators, which generalise those of SISAL. However, unlike SISAL, UFO is not a pure functional language. It has stateful objects, which allow programs to be written in a concurrent object-oriented style where appropriate. Safeguards are provided, both in the semantics of operations on stateful objects and in the type system, to minimise the problems associated with introducing state.
The Mjølner BETA System is a software development environment and tools set for use with the BETA programming language.
wOrlds is focused on the development of a next generation computer-supported collaborative work (CSCW) framework. Previous CSCW systems have tended to suffer from several problems - they tend to look at small problems in isolation and provide overly-rigid systems for collaboration support. To a large degree we believe these problems arise from an inadequate theoretical orientation to the issues that arise with collaboration support.