sC++ Home Page
This page describes various aspects of sC++ and can be used as a starting point to write programs in this language. The details of the language are described in the online documentation, and in a reference book written in French.
- Introduction to sC++
- The sC++ book (English version.ps / with its index ) -- (Version française)
- Synthesis paper: (IEEE Computer)
- Problems that cannot be solved with passive (= usual) objects
- Reasons why you may need sC++
- Online Documentation
- Example Sources
- An example of systematic development
- Student's exercises
- Developpers and contact persons
- Distribution (also distributed by Redhat) (mirror site)
Introduction to sC++
The Computer Networking Laboratory studies how to use concurrency mainly as a structuring means. For that purpose a version of C++, named sC++, has been developed. This language enhances C++ with a very few new keywords defining active objects and synchronization primitives in a way that preserves the whole philosophy of object oriented programming. A compiler for sC++, based on the GNU C++ compiler has been developed. The compiled code is linked with a real-time library in order to produce a multithreaded code, running within a UNIX process. An environment for Windows'95 is in preparation. The laboratory has developed several applications with this language and obtained very readable and maintenable codes. In particular the following applications and libraries can be demonstrated:
- Active objects for MOTIF windows and buttons, TCP sockets, microphone, video monitor.
- A CORBA library, with a naming service
- Various protocol stacks
- A monitoring environment that can be used to debug multithreaded applications
- A environment for specifying, implementing and debuging a distributed application.
This approach is very useful for event driven applications and compares very favourably with other event driven environments, like NextStep. It has support for "random walk" analysis. The language is very easy to learn for those who know C++.
More information about the language can be obtained in the next section ("Online Documentation").
(French version, English version)
sC++, Programmation pseudo-parallèle orientée objet, PPUR, 1998, Lausanne.
Commande du livre --Trames des exercices --Corrigés du livre --ERRATA
The following documentation for sC++ is available: (The same documentation is provided in the last distribution)
- Description of the sC++ language.
- Description of the distributed libraries.
- Aide au développement en ligne.
We have written a number of papers about sC++ which can be obtained from our laboratory page.
You find here the source files for the example programs included in the official distribution. To compile an example either go to the example directory for the concerned library and type 'make NAME' where NAME is the source file name without the trailing .scxx. The example sources for the different libraries can be found here:
Developpers and contact persons
The sC++ language has been developped at the Computer Network Laboratory at the Swiss Federal Institute of Technology, Lausanne, Switzerand. We are continously developping new libraries and tools to support the sC++ language.
The following persons has participated in the development of the sC++ language and accompanying libraries:
- Abel Divin while working at the Computer Network Laboratory
- Jarle Hulaas while working at the Compiler Design Laboratory
- Jan Madsen, Computer Network Laboratory
- Paul-Louis Meylan, Computer Network Laboratory
- Walter Pineda, Computer Network Laboratory
The following persons are maintaining the different parts of the distribution:
- The sC++ compiler: Jan Madsen
- The sC++ kernel: Jan Madsen
- The CppUtils library: Jan Madsen, Walter Pineda
- The Socket library: Jan Madsen
- The GUI library: Walter Pineda
- The Collection library: Paul-Louis Meylan
- The Geometry library: Paul-Louis Meylan
- The Graph library: Paul-Louis Meylan
- The Matrix library: Paul-Louis Meylan
If you discover a problem or have any question about any part of the distribution feel free to mail one of the maintainers.
The sC++ distribution can be obtained at our ftp site .
To directly download the latest sC++ distribution click on one of the links below:
- Sources package: sCxx1.2.1.tar.gz.
- Sources package in format .tar.gz: sCxx1.2.1.tar.gz.
- Sources package in format .tar.gz: sCxx-1.0.tar.gz.
- Sources package in format rpm: sCxx-1.0-3.src.rpm.
- Compiled sCxx: sCxx-1.0-3.i386.rpm.
- Compiled Graphical User Interface GUI: sCxx-gui-1.0-3.i386.rpm.
- Compiled Examples: sCxx-examples-1.0-3.i386.rpm.