Alchemy Links

NOTE: This page is my personal collection of Alchemy-related links.
Visit the Alchemy Home Page for information about Alchemy itself.


Local Stuff

The Knit Home Page
Flest Logs (Viewlog, Internal)
Also available via a file URL.
Flux Project Documentation and Notes (Internal)
Flux Project WikiWikiWeb Server (Internal)
Flux Project Mailing List Archives (Internal)
Alastair Reid's C plus Units Home Page


People


Papers

Jonathan Aldrich. Challenge Problems for Separation of Concerns. Presented at the OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, Minnesota, October 2000. Position paper.
(PDF @ Twente; PDF @ local access only)

Rajeev Alur and Radu Grosu. Modular Refinement of Hierarchic Reactive Machines. In Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '00), pages 390-402, Boston, Massachusetts, January 2000.
(PS @ UPenn; PDF @ ACM; gzip'ed PS @ local access only)

Thomas Ball and Sriram K. Rajamani. Checking Temporal Properties of Software with Boolean Programs. Presented at the Workshop on Advances in Verification, Chicago, Illinois, July 2000.
(PS @ Microsoft; PDF @ Microsoft; gzip'ed PS @ local access only)

Don Batory and Bart J. Geraci. Composition Validation and Subjectivity in GenVoca Generators. IEEE Transactions on Software Engineering, pages 67-82, February 1997.
(Abstract @ Texas; PDF @ ; PDF @ local access only)

Roberto Brega and Gabrio Rivera. Dynamic Memory Management with Garbage Collection for Embedded Applications. In Proceedings of the First Workshop on Industrial Experiences with Systems Software (WIESS 2000), San Diego, California, October 2000. Extended abstract. To appear.
(PDF @ local access only)

Michael Burrows, Martín Abadi, and Roger Needham. A Logic of Authentication. ACM Transactions on Computer Systems, 8(1):18-36, Febraury 1990.
(Abstract @ ACM; PDF @ ACM; PDF @ local access only)

Yvonne Coady, Gregor Kiczales, and Michael Feeley. Exploring an Aspect-Oriented Approach to Operating System Code. Presented at the OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, Minnesota, October 2000. Position paper.
(PS @ UBC; PDF @ Twente; PDF @ local access only)

Jeffrey S. Foster, Manuel Fähndrich, and Alexander Aiken. A Theory of Type Qualifiers. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), Atlanta, Georgia, May 1999.
(gzip'ed PS @ Berkeley; gzip'ed PS @ local access only)

Mark P. Jones. Using Parameterized Signatures to Express Modular Structure. In Proceedings of the 23th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '96), pages 68-78, St. Petersburg, Florida, January 1996.
(PDF @ ACM; Abstract @ OGI; PS @ OGI; gzip'ed DVI @ OGI; gzip'ed PS @ local access only)

Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science. Springer, June 1997.
(Abstract @ Xerox PARC; PDF @ Xerox PARC; PDF @ local access only)

Eddie Kohler, Benjie Chen, M. Frans Kaashoek, Robert Morris, and Massimiliano Poletto. Programming Language Techniques for Modular Router Configurations. Technical Report MIT-LCS-TR-812, MIT Laboratory for Computer Science, August 2000.
(Abstract @ MIT; PDF @ MIT; gzip'ed PS @ MIT; PDF @ local access only)

Albert Lai, Gail C. Murphy, and Robert J. Walker. Separating Concerns with Hyper/J: An Experience Report. In Workshop Proceedings: Multi-Dimensional Separation of Concerns in Software Engineering, pages 79-91, Limerick, Ireland; June 2000. Held at the 22nd International Conference on Software Engineering. Position paper.
(Abstract @ UBC; PDF @ UBC; gzip'ed PS @ UBC; PDF @ local access only)

Karl Lieberherr, David Lorenz, and Mira Mezini. Programming with Aspectual Components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, March 1999.
(PS @ Northeastern; gzip'ed PS @ local access only)

Robert Morris, Eddie Kohler, John Jannotti, and M. Frans Kaashoek. The Click Modular Router. In Proceedings of the Seventeenth ACM Symposium on Operating Systems Principles (SOSP '99), Kiawah Island, South Carolina, December 1999.
(Abstract @ MIT; PDF @ MIT; gzip'ed PS @ MIT; PDF @ local access only; gzip'ed PS @ local access only)

Martin Odersky, Martin Sulzmann, and Martin Wehr. Type Inference with Constrained Types. Theory and Practice of Object Systems, 5(1), 1999.
(PS @ Melbourne; gzip'ed PS @ local access only)

Harold Ossher and Peri Tarr. Multi-Dimensional Separation of Concerns in Hyperspace. IBM Research Report 21452, April 1999.
(PS @ IBM; gzip'ed PS @ local access only)

João Costa Seco and Luís Caires. A Basic Model of Typed Components. In Proceedings of the Fourteenth European Conference on Object-Oriented Programming (ECOOP 2000), Sophia Antipolis, France, June 2000.
(gzip'ed PS @ Universidade Nova de Lisboa; gzip'ed PS @ local access only)

John A. Stankovic. VEST: A Toolset for Constructing and Analyzing Component Based Operating Systems for Embedded and Real-Time Systems. University of Virginia Technical Report CS-2000-19, July 2000.
(PDF @ Virginia; PDF @ local access only)

Peri Tarr, Harold Ossher, William Harrison, and Stanley M. Sutton. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In Proceedings of the 1999 International Conference on Software Engineering (ICSE '99), Los Angeles, California, May 1999.
(PDF @ ACM)

Sanjiva Weerawarana, Francisco Curbera, Matthew J. Duftler, David A. Epstein, and Joseph Kesselman. Bean Markup Language: A Composition Language for JavaBeans Components. In Proceedings of the Sixth USENIX Conference on Object-Oriented Technologies and Systems (COOTS '01), San Antonio, Texas, January-February 2001.
(Abstract @ USENIX; PDF @ USENIX; PS @ USENIX; PDF @ local access only)

Papers About Handling Security in Programming Languages


Conferences

Open to Submissions

Title Location Dates Submit
DOA 2003: 5th International Symposium on Distributed Objects and Applications Sicily, Italy Nov 3-7, 2003 Jun 15, 2003

Closed to Submissions (Deadline Has Passed)

Title Location Dates Submit
PLDI '03: ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (at FCRC '03) San Diego, CA Jun 9-11, 2003 Nov 15, 2002
USENIX '03: 2003 USENIX Annual Technical Conference San Antonio, TX Jun 9-14, 2003 Nov 25, 2002
LCTES '03: Languages, Compilers, and Tools for Embedded Systems (at FCRC '03) San Diego, CA Jun 11-13, 2003 Feb 1, 2003
Middleware 2003: ACM/IFIP/USENIX International Middleware Conference Rio de Janeiro, Brazil Jun 16-20, 2003 Dec 22, 2002
Middleware 2003 Workshop: Model-Driven Approaches to Middleware Applications Development Rio de Janeiro, Brazil Jun 17, 2003 Feb 28, 2003
Middleware 2003 Workshop: 2nd Workshop on Reflective and Adaptive Middleware Rio de Janeiro, Brazil Jun 17, 2003 Feb 20, 2003
QoSCBSE 2003: Workshop on Quality of Service in Component-Based Software Engineering (at Ada-Europe 2003) Toulouse, France Jun 20, 2003 Feb 21, 2003
DoPS '03: Workshop on Development of Product Software (at CaiSE '03) Velden, Austria Jun 20-21, 2003 Mar 15, 2003
ESEC/FSE 2003: Joint 9th European Software Engineering Conference (ESEC) and 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-11) Helsinki, Finland Sep 1-5, 2003 Mar 14, 2003
EDOC 2003: 7th International IEEE Enterprise Distributed Object Computing Conference Brisbane, Australia Sep 16-19, 2003 Mar 3, 2003
GPCE '03: 2nd International Conference on Generative Programming and Component Engineering (at NetObjectDays '03) Erfurt, Germany Sep 22-25, 2003 Apr 6, 2003
ICSM 2003: IEEE International Conference on Software Maintenance Amsterdam, The Netherlands Sep 22-26, 2003 Mar 1, 2003
SOSP '03: 19th ACM Symposium on Operating Systems Principles Bolton Landing, NY Oct 19-22, 2003 Mar 24, 2003

Past Conferences

Title Location Dates Submit
ICDCS 2003: 23rd International Conference on Distributed Computing Systems Providence, RI May 19-22, 2003 Sep 13, 2002
HotOS-IX: 9th Workshop on Hot Topics in Operating Systems Lihue, HI May 18-21, 2003 Jan 10, 2003
ISORC 2003: 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing Hokkaido, Japan May 14-16, 2003 Nov 1, 2002
ICSE '03: 25th International Conference on Software Engineering Portland, OR May 3-10, 2003 Sep 9, 2002
TACoS 2003: International Workshop on Test and Analysis of Component Based Systems (at ETAPS 2003) Warsaw, Poland Apr 13, 2003 Jan 6, 2003
COCV 2003: 2nd International Workshop on Compiler Optimization Meets Compiler Verification (at ETAPS 2003) Warsaw, Poland Apr 12, 2003 Nov 25, 2002
TACAS 2003: 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (at ETAPS 2003) Warsaw, Poland Apr 7-11, 2003 Oct 18, 2002
CC 2003: 12th International Conference on Compiler Construction (at ETAPS 2003) Warsaw, Poland Apr 7-9, 2003 Oct 18, 2002
SC 2003: Software Composition (at ETAPS 2003) Warsaw, Poland Apr 6, 2003 Dec 20, 2002
LDTA 2003: 3rd Workshop on Language Descriptions, Tools and Applications (at ETAPS 2003) Warsaw, Poland Apr 6, 2003 Dec 1, 2002
USE 2003: 2nd International Workshop on Unanticipated Software Evolution (at ETAPS 2003) Warsaw, Poland Apr 5-6, 2003 Oct 13, 2002
CSMR 2003: 7th European Conference on Software Maintenance and Reengineering Benevento, Italy Mar 26-28, 2003 Oct 10, 2002
AOSD 2003 Workshop: Software Engineering Properties of Languages for Aspect Technologies Boston, MA Mar 18, 2003 Jan 31, 2003
AOSD 2003 Workshop: Commercialization of AOSD Technology Boston, MA Mar 18, 2003 Feb 10, 2003
AOSD 2003 Workshop: Aspect-Oriented Modeling with UML Boston, MA Mar 18, 2003 Feb 7, 2003
AOSD 2003 Workshop: Foundations of Aspect-Oriented Languages Boston, MA Mar 17, 2003 Jan 27, 2003
AOSD 2003 Workshop: Early Aspects Boston, MA Mar 17, 2003 Jan 27, 2003
AOSD 2003 Workshop: 2nd AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software Boston, MA Mar 17, 2003 Jan 27, 2003
AOSD 2003: 2nd International Conference on Aspect-Oriented Software Development Boston, MA Mar 17-21, 2003 Oct 11, 2002
3rd Workshop on Aspect-Oriented Software Development (AOSD) of the SIG Object-Oriented Software Development, German Informatics Association Essen, Germany Mar 4-5, 2003 Nov 15, 2002
SVM 2003: Workshop on Software Variability Management Groningen, The Netherlands Feb 13-14, 2003 Jan 11, 2003
BDAOP 2003: Joint Belgian and Dutch AOP Workshop 2003 Twente, The Netherlands Jan 23, 2003 Oct 25, 2002
TLDI '03: ACM SIGPLAN Workshop on Types in Language Design and Implementation (co-located with POPL '03) New Orleans, LA Jan 18, 2003 Sep 27, 2002
POPL '03: 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages New Orleans, LA Jan 15-17, 2003 Jul 19, 2002
WORDS 2003: 8th IEEE Computer Society's International Workshop on Object-Oriented Real-Time Dependable Systems Guadalajara, Mexico Jan 13-15, 2003 Aug 15, 2002
PADL '03: 5th International Symposium on Practical Aspects of Declarative Languages (at POPL 2003) New Orleans, LA Jan 13-14, 2003 Jul 31, 2002
OSDI '02: 5th Symposium on Operating Systems Design and Implementation Boston, MA Dec 9-11, 2002 May 17, 2002
WIESS '02: 2nd Workshop on Industrial Experiences with Systems Software (at OSDI '02) Boston, MA Dec 8, 2002 Jul 15, 2002
RTSS 2002: 23rd IEEE International Real-Time Systems Symposium Austin, TX Dec 3-5, 2002 May 7, 2002
SIGSOFT 2002/FSE-10: 10th International Symposium on the Foundations of Software Engineering Charleston, SC Nov 20-22, 2002 Mar 15, 2002
WOSS '02: ACM SIGSOFT Workshop on Self-Healing Systems (at FSE-10) Charleston, SC Nov 18-19, 2002 Jun 15, 2002
PASTE '02: ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (at SIGSOFT 2002/FSE-10) Charleston, SC Nov 18-19, 2002 Jun 15, 2002
FORTE 2002: Formal Techniques for Networked and Distributed Systems Houston, TX Nov 11-14, 2002 ?
FMCO 2002: 1st International Symposium on Formal Methods for Components and Objects Leiden, The Netherlands Nov 5-8, 2002 ?
OOPSLA 2002 Workshop: Patterns in Distributed Real-Time and Embedded Systems Seattle, WA Nov 5, 2002 Sep 30, 2002
OOPSLA 2002 Workshop: Generative Techniques in the Context of Model Driven Architecture Seattle, WA Nov 5, 2002 Sep 19, 2002
OOPSLA 2002: 17th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Seattle, WA Nov 4-8, 2002 Mar 22, 2002
OOPSLA 2002 Workshop: Patterns for Software Architecture Seattle, WA Nov 4, 2002 ?, 2002
OOPSLA 2002 Workshop: Top 10 Issues of an Open Software Model for Embedded Systems Seattle, WA Nov 4, 2002 ?, 2002
OOPSLA 2002 Workshop: Tools for Aspect-Oriented Software Development Seattle, WA Nov 4, 2002 Sep 19, 2002
WCRE 2002 Workshop: Software Architecture Reconstruction Richmond, VA Nov 1, 2002 Sep 13, 2002
DOA '02: 4th International Symposium on Distributed Objects and Applications Irvine, CA Oct 28-Nov 1, 2002 May 31, 2002
DS-RT 2002: 6th IEEE International Workshop on Distributed Simulation and Real Time Applications (co-located with MASCOTS 2002) Fort Worth, TX Oct 11-13, 2002 May 25, 2002
CASES 2002: International Conference on Compilers, Architectures and Synthesis for Embedded Systems (co-located with EMSOFT '02) Grenoble, France Oct 8-11, 2002 Jun 22, 2002
ICGT 2002: 1st International Conference on Graph Transformation Barcelona, Spain Oct 7-12, 2002 Apr 1, 2002
EMSOFT '02: Embedded Software Conference Grenoble, France Oct 7-9, 2002 Apr 29, 2002
GCSE/SAIG '02: ACM SIGPLAN/SIGSOFT Conference on Generators and Components (at PLI 2002) Pittsburgh, PA Oct 6-8, 2002 Mar 21, 2002
PPDP 2002: 4th International Conference on the Principles and Practice of Declarative Programming (at PLI 2002) Pittsburgh, PA Oct 6-8, 2002 Mar 21, 2002
RULE '02: 3rd ACM SIGPLAN Workshop on Rule-Based Programming (at PLI 2002) Pittsburgh, PA Oct 5, 2002 Jun 10, 2002
ICFP 2002: International Conference on Functional Programming (at PLI 2002) Pittsburgh, PA Oct 4-6, 2002 Mar 21, 2002
ICSM 2002: IEEE International Conference on Software Maintenance Montreal, Quebec Oct 3-6, 2002 Mar 18, 2002
ACM SIGPLAN 2002 Haskell Workshop (at PLI 2002) Pittsburgh, PA Oct 3, 2002 May 24, 2002
WESS '02: 8th IEEE Workshop on Empirical Studies of Software Maintenance (at ICSM 2002) Montreal, Quebec Oct 2, 2002 May 10, 2002
SCAM 2002: 2nd International Workshop on Source Code Analysis and Manipulation (at ICSM 2002) Montreal, Quebec Oct 1, 2002 Apr 12, 2002
2nd International Workshop on Aspect-Oriented Modeling with UML (at UML 2002) Dresden, Germany Sep 30, 2002 Aug 15, 2002
WISME 2002: Workshop in Software Model Engineering (at UML 2002) Dresden, Germany Sep 30, 2002 Jul 7, 2002
ASE 2002 Workshop: 1st International Workshop on Traceability in Emerging Forms of Software Engineering Edinburgh, UK Sep 28, 2002 Jul 19, 2002
ASE 2002 Workshop: Declarative Meta Programming to Support Software Development Edinburgh, UK Sep 23, 2002 Jul 24, 2002
ASE 2002 Workshop: Declarative Metaprogramming to Support Software Development Edinburgh, UK Sep 23, 2002 Jul 19, 2002
ASE 2002: 17th IEEE International Conference Automated Software Engineering Edinburgh, UK Sep 23-27, 2002 May 6, 2002
EW 2002: 10th ACM SIGOPS European Workshop Saint-Emilion, France Sep 22-25, 2002 Mar 15, 2002
SAS '02: 9th International Static Analysis Symposium Madrid, Spain Sep 17-20, 2002 May 10, 2002
Joint VIVIAN-ROBOCOP Workshop: Software Infrastructures for Component-Based Applications on Consumer Devices (in conjunction with EDOC 2002) Lausanne, Switzerland Sep 16, 2002 Jun 24, 2002
FLOPS 2002: 6th International Symposium on Functional and Logic Programming Aizu, Japan Sep 15-17, 2002 Mar 17, 2002
ASIA-PEPM '02: ACM SIGPLAN ASIAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (at FLOPS 2002) Aizu, Japan Sep 12-14, 2002 Mar 17, 2002
REPL '02: International Workshop on Requirements Engineering for Product Lines (in conjunction with RE '02) Essen, Germany Sep 10, 2002 May 10, 2002
FTRTFT '02: 7th International Symposium on Formal Techniques in Real-Time and Fault Tolerant Systems Oldenburg, Germany Sep 9-12, 2002 Mar 11, 2002
PLoP 2002: 9th Conference on Pattern Languages of Programs Monticello, IL Sep 8-12, 2002 May 10, 2002
CP 2002: 8th International Conference on Principles and Practice of Constraint Programming Ithaca, NY Sep 7-13, 2002 May 3, 2002
WISCA 3 Workshop: Mining and Reengineering of Legacy Assets for use in a New System or Product Line Montreal, Quebec Aug 29, 2002 Jun 7, 2002
WISCA 3: 3rd Working IEEE/IFIP Conference on Software Architecture Monteal, Quebec Aug 25-31, 2002 Jan 18, 2002
FOCLASA 2002: 1st International Workshop on Foundations of Coordination Languages and Software Architectures (at CONCUR 2002) Brno, Czech Republic Aug 24, 2002 May 25, 2002
MTCS 2002: 3rd Workshop on Models for Time-Critical Systems (co-located with CONCUR 2002) Brno, Czech Republic Aug 24, 2002 Apr 29, 2002
SPLC2 Workshop: Managing the Architectural Evolution of Product Families San Diego, CA Aug 20, 2002 Jun 19, 2002
SPLC2 Workshop: Mining and Reengineering of Legacy Assets for use in a Product Line San Diego, CA Aug 19, 2002 Jul 12, 2002
SPLC2: 2nd Software Product Line Conference San Diego, CA Aug 19-22, 2002 Jan 15, 2002
JVM '02: 2nd Java Virtual Machine Research and Technology Symposium San Fransisco, CA Aug 1-2, 2002 Feb 4, 2002
ICLP 2002: International Conference on Logic Programming Copenhagen, Denmark Jul 29-Aug 1, 2002 Feb 17, 2002
CLPSE 2002: 3rd International Workshop on (Constraint) Logic Programming and Software Engineering (at ICLP 2002) Copenhagen, Denmark Jul 28, 2002 May 31, 2002
CAV '02: 14th International Conference on Computer Aided Verification Copenhagen, Denmark Jul 27-31, 2002 Jan 15, 2002
RTA '02: 13th International Conference on Rewriting Techniques and Applications Copenhagen, Denmark Jul 22-24, 2002 Jan 15, 2002
WRS 2002: 2nd International Workshop on Reduction Strategies in Rewriting and Programming (at RTA '02) Copenhagen, Denmark Jul 21, 2002 Apr 15, 2002
2nd Workshop on The ACE ORB (TAO) Arlington, VA Jul 19, 2002 Jun 14, 2002
Realtime 2002: OMG's 3rd Annual Workshop on Real-Time and Embedded Distributed Object Computing Arlington, VA Jul 15-18, 2002 ?
FM-TOOLS 2002: 5th Workshop on Tools for System Design and Verification Günzburg, Germany Jul 15-17, 2002 May 20, 2002
TIP '02: Workshop on Types in Programming (colocated with MPC 2002) Dagstuhl, Germany Jul 9, 2002 Apr 27, 2002
WCGP '02: IFIP WG2.1 Working Conference on Generic Programming (colocated with MPC 2002) Dagstuhl, Germany Jul 8-13, 2002 Mar 2, 2002
AOPDCS '02: 2nd International Workshop on Aspect Oriented Programming for Distributed Computing Systems (at ICDCS '02) Vienna, Austria Jul 2-5, 2002 Dec 21, 2001
ISMM 2002: The 2002 International Symposium on Memory Management (collocated with PLDI '02) Berlin, Germany Jun 20-21, 2002 Feb 8, 2002
CD '02: 1st International IFIP/ACM Working Conference on Component Deployment (colocated with PLDI '02) Berlin, Germany Jun 20-21, 2002 Dec 15, 2001
LCTES/SCOPES '02: ACM SIGPLAN Joint Symposium: Languages, Compilers, and Tools for Embedded Systems; and Software and Compilers for Embedded Systems (colocated with PLDI '02) Berlin, Germany Jun 19-21, 2002 Feb 1, 2002
ECRTS '02: 14th Euromicro Conference on Real-Time Systems Vienna, Austria Jun 19-21, 2002 Dec 3, 2001
WCET 2002: 2nd International Workshop on Worst-Case Execution Time Analysis (at ECRTS '02) Vienna, Austria Jun 18, 2002 Apr 22, 2002
PLDI '02: ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation Berlin, Germany Jun 17-19, 2002 Nov 16, 2001
WCL 2002: 2nd International Workshop on Composition Languages (at ECOOP 2002) Málaga, Spain Jun 11, 2002 Apr 8, 2002
USE 2002: 1st International Workshop on Unanticipated Software Evolution (at ECOOP 2002) Málaga, Spain Jun 11, 2002 Apr 8, 2002
ECOOP-OOOSWS 2002: 5th ECOOP Workshop on Object-Orientation and Operating Systems (at ECOOP 2002) Málaga, Spain Jun 11, 2002 Apr 8, 2002
ECOOP 2002 Workshop: Workshop on Resource Management for Safe Languages Málaga, Spain Jun 11, 2002 Apr 8, 2002
USENIX '02: 2002 USENIX Annual Technical Conference Monterey, CA Jun 10-15, 2002 Nov 19, 2001
ECOOP 2002: 16th European Conference on Object-Oriented Programming Málaga, Spain Jun 10-14, 2002 Nov 26, 2001
WCOP 2002: 7th International Workshop on Component-Oriented Programming (at ECOOP 2002) Málaga, Spain Jun 10, 2002 Apr 19, 2002
FTfJP 2002: Workshop on Formal Techniques for Java-Like Programs (at ECOOP 2002) Málaga, Spain Jun 10, 2002 Apr 8, 2002
ECOOP 2002 Workshop: Model-Based Software Reuse Málaga, Spain Jun 10, 2002 Apr 15, 2002
ECOOP 2002 Workshop: Workshop on Generative Programming Málaga, Spain Jun 10, 2002 Apr 8, 2002
ICSE 2002 Workshop: Workshop on Architecting Dependable Systems Orlando, FL May 25, 2002 Mar 1, 2002
ICSE 2002 Workshop: 3rd International Workshop on Software Product Lines: Economics, Architectures, and Implications Orlando, FL May 21, 2002 Mar 1, 2002
SEM 2002: 3rd International Workshop on Software Engineering and Middleware (co-located with ICSE 2002) Orlando, FL May 20-21, 2002 Feb 22, 2002
CBSE 5: 5th ICSE Workshop on Component-Based Software Engineering: Benchmarks for Predictable Assembly (at ICSE 2002) Orlando, FL May 19-20, 2002 Mar 4, 2002
IWPSE 2002: International Workshop on Principles of Software Evolution (at ICSE 2002) Orlando, FL May 19-20, 2002 Mar 1, 2002
ICSE 2002 Workshop: Methods and Techniques for Software Architecture Review and Assessment Orlando, FL May 19, 2002 Mar 15, 2002
ICSE '02: 24th International Conference on Software Engineering Orlando, FL May 19-25, 2002 Sep 25, 2001
ISORC 2002: 5th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing Crystal City, VA Apr 29-May 1, 2002 Nov 27, 2001
AOSD 2002 Workshop: Aspect Oriented Design --- Identifying, Separating, and Verifying Concerns in the Design Enschede, The Netherlands Apr 23, 2002 Mar 1, 2002
AOSD 2002 Workshop: 1st AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software Enschede, The Netherlands Apr 23, 2002 Mar 1, 2002
AOSD 2002 Workshop: Foundations of Aspect-Oriented Languages Enschede, The Netherlands Apr 22, 2002 Mar 1, 2002
AOSD 2002 Workshop: Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Enschede, The Netherlands Apr 22, 2002 Feb 28, 2002
AOSD 2002: 1st International Conference on Aspect-Oriented Software Development Enschede, The Netherlands Apr 22-26, 2002 Oct 15, 2001
ICSR7 Workshop: Workshop on Component-Based Software Development Processes Austin, TX Apr 15-19, 2002 Feb 14, 2002
ICSR7 Workshop: Workshop on Generative Programming Austin, TX Apr 15, 2002 Feb 28, 2002
ICSR7: 7th International Conference on Software Reuse Austin, TX Apr 15-19, 2002 Oct 23, 2001
SFEDL 2002: Workshop on Semantic Foundations of Engineering Design Languages (at ETAPS '02) Grenoble, France Apr 14, 2002 ?
COCV '02: International Workshop on Compiler Optimization Meets Compiler Verification (at ETAPS '02) Grenoble, France Apr 13, 2002 Dec 9, 2001
SPIN 2002: 9th International SPIN Workshop on Model Checking of Software (at ETAPS '02) Grenoble, France Apr 11-13, 2002 Dec 21, 2001
TACAS 2002: 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (at ETAPS '02) Grenoble, France Apr 8-11, 2002 Oct 19, 2002
FMOODS '02: IFIP TC6/WG6.1 5th International Conference on Formal Methods for Open Object-Based Distributed Systems Enschede, The Netherlands Mar 20-22, 2002 Sep 19, 2001
2nd German Workshop on Aspect-Oriented Software Development Bonn, Germany Feb 21-22, 2002 Dec 10, 2001
PADL '02: 4th International Symposium on Practical Aspects of Declarative Languages (at POPL '02) Portland, OR Jan 19-20, 2002 Aug 20, 2001
POPL '02: 29th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Portland, OR Jan 16-18, 2002 Jul 23, 2001
PEPM '02: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation Portland, OR Jan 14-15, 2002 Oct 8, 2001
WORDS 2002: 7th IEEE Computer Society's International Workshop on Object-Oriented Real-Time Dependable Systems San Diego, CA Jan 7-9, 2002 Sep 4, 2001
SDP: Workshop on New Visions for Software Design and Productivity: Research and Applications Nashville, TN Dec 13-14, 2001 Oct 31, 2001
RTSS '01: 22nd IEEE Real-Time Systems Symposium London, UK Dec 3-6, 2001 May 1, 2001
RTSS '01 Workshop: Real-Time Embedded Systems London, UK Dec 3, 2001 Aug 15, 2001
CoSolv: Workshop on Cooperative Solvers in Constraint Programming (at CP 2001) Paphos, Cyprus Dec 1, 2001 Sep 13, 2001
UICS '01: 1st International Workshop on User-Interaction in Constraint Satisfaction (at CP 2001) Paphos, Cyprus Dec 1, 2001 Aug 30, 2001
CP 2001: 7th International Conference on Principles and Practice of Constraint Programming Paphos, Cyprus Nov 26-Dec 1, 2001 May 14, 2001
CASES 2001: International Conference on Compilers, Architectures and Synthesis for Embedded Systems Atlanta, GA Nov 16-17, 2001 Aug 10, 2001
SCAM 2001: 1st International Workshop on Source Code Analysis and Manipulation (at ICSM 2001) Florence, Italy Nov 10, 2001 Apr 10, 2001
ICSM 2001: IEEE International Conference on Software Maintenance Florence, Italy Nov 6-10, 2001 Jan 29, 2001
SRDS 2001 Workshop: Reliability in Embedded Systems New Orleans, LA Oct 28, 2001 Aug 31, 2001
SOSP '01: 18th ACM Symposium on Operating Systems Principles Lake Louise, Alberta Oct 21-24, 2001 Mar 26, 2001
The Software Engineering Institute (SEI) Symposium 2001 Washington, DC Oct 15-18, 2001 ?
OOPSLA 2001 Workshop: Beyond Design: Patterns (mis)used Tampa Bay, FL Oct 15, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: Software Archeology: Understanding Large Systems Tampa Bay, FL Oct 15, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: Generative Programming Tampa Bay, FL Oct 15, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: Representing Software Architectures Tampa Bay, FL Oct 15, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: First OOPSLA Workshop on Language Mechanisms for Programming Software Components Tampa Bay, FL Oct 15, 2001 Jul 30, 2001
OOPSLA 2001 Workshop: Towards Patterns and Pattern Languages for OO Distributed Real-Time and Embedded Systems Tampa Bay, FL Oct 14, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: Specification and Verification of Component-Based Systems Tampa Bay, FL Oct 14, 2001 Aug 17, 2001
OOPSLA 2001 Workshop: Advanced Separation of Concerns Tampa Bay, FL Oct 14, 2001 Aug 3, 2001
OOPSLA 2001: 16th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Tampa Bay, FL Oct 14-18, 2001 Mar 23, 2001
EMSOFT 2001: 1st International Workshop on Embedded Software Tahoe City, CA Oct 8-10, 2001 ?
M3W '01: International Workshop on Multimedia Middleware (in conjuction with ACM Multimedia 2001) Ottawa, Ontario Oct 5, 2001 May 25, 2001
DOA '01: 3rd International Symposium on Distributed Objects and Applications Rome, Italy Sep 17-20, 2001 Apr 1, 2001
WCL 2001: Workshop on Composition Languages (at ESEC/FSE 2001) Vienna, Austria Sep 11, 2001 Jun 3, 2001
ESEC/FSE 2001: Joint 8th European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-9) Vienna, Austria Sep 10-14, 2001 ?
GCSE 2001: 3rd International Conference on Generative and Component-Based Software Engineering (at Net.ObjectDays 2001) Erfurt, Germany Sep 10-13, 2001 May 14, 2001
Babel '01: 1st Workshop on Multi-Language Infrastructure and Interoperability (at PLI 2001) Firenze, Italy Sep 8, 2001 Jun 1, 2001
SAIG '01: Semantics, Applications and Implementation of Program Generation (at PLI 2001) Firenze, Italy Sep 6, 2001 Jun 1, 2001
PPDP 2001: 3rd International Conference on Principles and Practice of Declarative Programming (at PLI 2001) Firenze, Italy Sep 5-7, 2001 Mar 23, 2001
ECBSE '01: EUROMICRO Workshop on Component-Based Software Engineering (at EUROMICRO '01) Warsaw, Poland Sep 4-6, 2001 Mar 2, 2001
TPHOLs 2001: 14th International Conference on Theorem Proving in Higher Order Logics Edinburgh, Scotland Sep 3-6, 2001 Feb 23, 2001
ICFP 2001: International Conference on Functional Programming (associated with PLI 2001) Florence, Italy Sep 3-5, 2001 Mar 15, 2001
Haskell Workshop (at PLI 2001) Firenze, Italy Sep 2, 2001 Jun 1, 2001
1st Workshop on The ACE ORB (TAO) St. Louis, MO Aug 5-6, 2001 Jul 6, 2001
Workshop on Software Model Checking Paris, France Jul 23, 2001 May 15, 2001
SAS '01: 8th International Static Analysis Symposium Paris, France Jul 16-18, 2001 Feb 15, 2001
USENIX '01: 2001 USENIX Annual Technical Conference Boston, MA Jun 25-30, 2001 Dec 1, 2000
LCTES '01: ACM SIGPLAN 2001 Workshop on Languages, Compilers, and Tools for Embedded Systems (at PLDI '01) Snowbird, UT Jun 22-23, 2001 Feb 25, 2001
PLDI '01: ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation Snowbird, UT Jun 20-22, 2001 Nov 16, 2000
ECOOP-OOOSWS '01: 4th ECOOP Workshop on Object-Orientation and Operating Systems (at ECOOP 2001) Budapest, Hungary Jun 19, 2001 Apr 17, 2001
Workshop on Generative Programming (at ECOOP 2001) Budapest, Hungary Jun 19, 2001 Apr 17, 2001
WCOP 2001: Workshop on Component-Oriented Programming (at ECOOP 2001) Budapest, Hungary Jun 19, 2001 Apr 16, 2001
ECOOP 2001: 15th European Conference on Object-Oriented Programming Budapest, Hungary Jun 18-22, 2001 Nov 27, 2000
PASTE '01: ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (at PLDI '01) Snowbird, UT Jun 18-19, 2001 Feb 28, 2001
Workshop on Feature Interaction in Composed Systems (at ECOOP 2001) Budapest, Hungary Jun 18, 2001 Apr 23, 2001
Workshop on Formal Techniques for Java Programs (at ECOOP 2001) Budapest, Hungary Jun 18, 2001 Apr 23, 2001
OM '01: ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (at PLDI '01) Snowbird, UT Jun 18, 2001 Feb 18, 2001
Workshop on Advanced Separation of Concerns (at ECOOP 2001) Budapest, Hungary Jun 17-18, 2001 Apr 26, 2001
LICS 2001: 16th Annual IEEE Symposium on Logic in Computer Science Boston, MA Jun 16-19, 2001 Jan 8, 2001
Realtime 2001: OMG's 2nd Workshop on Real-Time and Embedded Distributed Object Computing Herndon, VA Jun 4-7, 2001 ?
RTAS 2001: 7th IEEE Real-Time Technology and Applications Symposium Taipei, Taiwan May 30-Jun 1, 2001 Dec 11, 2000
PADO-II: 2nd Symposium on Programs as Data Objects Aarhus, Denmark May 21-23, 2001 Dec 1, 2000
HotOS-VIII: 8th Workshop on Hot Topics in Operating Systems Schloss Elmau, Germany May 20-22, 2001 Jan 15, 2001
WASC '01 Workshop on Advanced Separation of Concerns in Software Engineering (at ICSE 2001) Toronto, Ontario May 15, 2001 Mar 15, 2001
SCM 10: 10th International Workshop on Software Configuration Management (at ICSE 2001) Toronto, Ontario May 14-15, 2001 Feb 22, 2001
CBSE 4: 4th ICSE Workshop on Component-Based Software Engineering: Component Certification and System Prediction (at ICSE 2001) Toronto, Ontario May 14-15, 2001 Mar 1, 2001
Workshop on Generative Techniques for Product Lines (at ICSE 2001) Toronto, Ontario May 14, 2001 Mar 15, 2001
WAPATV '01: 2nd International Workshop on Automated Program Analysis, Testing, and Verification (at ICSE 2001) Toronto, Ontario May 13, 2001 Mar 15, 2001
Workshop on Software Product Lines: Economics, Architectures, and Implications (at ICSE 2001) Toronto, Ontario May 13, 2001 Feb 25, 2001
ICSE 2001: 23rd International Conference on Software Engineering Toronto, Ontario May 12-19, 2001 Aug 28, 2000
LDTA 2001: Workshop on Language Descriptions, Tools, and Applications (at ETAPS 2001) Genova, Italy Apr 7, 2001 Dec 18, 2000
PADL '01: 3rd International Workshop on Practical Aspects of Declarative Languages (at SAC '01) Las Vegas, NV Mar 11-12, 2001 Oct 20, 2000
FLOPS 2001: 5th International Symposium on Functional and Logic Programming Tokyo, Japan Mar 7-9, 2001 ?
POPL '01: 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages London, UK Jan 17-19, 2001 Jul 17, 2000
RTSS 2000: 21st IEEE Real-Time Systems Symposium Orlando, FL Nov 27-30, 2000 May 8, 2000
RTOS 2000: Workshop on Real Time Operating Systems and Applications and 2nd Real Time Linux Workshop (at RTSS 2000) Orlando, FL Nov 27-28, 2000 Aug 25, 2000
CASES 2000: International Conference on Compilers, Architectures and Synthesis for Embedded Systems San Jose, CA Nov 17-19, 2000 Aug 14, 2000
OSDI 2000: 4th Symposium on Operating Systems Design and Implementation San Diego, CA Oct 23-25, 2000 Apr 25, 2000
WIESS 2000: 1st Workshop on Industrial Experiences with Systems Software (at OSDI 2000) San Diego, CA Oct 22, 2000 May 15, 2000
OOPSLA 2000 Workshop on Advanced Separation of Concerns Minneapolis, MN Oct 16, 2000 Sep 1, 2000
OOPSLA 2000: 15th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications Minneapolis, MN Oct 15-19, 2000 Apr 3, 2000
GCSE 2000: 2nd International Symposium on Generative and Component-Based Software Engineering (at Net.ObjectDays 2000) Erfurt, Germany Oct 9-12, 2000 Jun 15, 2000
TRICS: Techniques for Implementing Constraint Programming Systems (at CP 2000) Singapore Sep 22, 2000 Jun 15, 2000
TIC 2000: Third ACM SIGPLAN Workshop on Types in Compilation (at PLI 2000) Montreal, Quebec Sep 21, 2000 Jun 5, 2000
PPDP 2000: ACM SIGPLAN 2nd International Conference on Principles and Practice of Declarative Programming (at PLI 2000) Montreal, Quebec Sep 20-22, 2000 Mar 15, 2000
SAIG: Semantics, Applications and Implementation of Program Generation (Workshop at ICFP 2000) Montreal, Quebec Sep 20, 2000 Jun 5, 2000
RULE 2000: 1st International Workshop on Rule-Based Programming Montreal, Quebec Sep 19, 2000 Jul 7, 2000
CP 2000: 6th International Conference on Principles and Practice of Constraint Programming Singapore Sep 18-22, 2000 Mar 26, 2000
ICFP 2000: International Conference on Functional Programming (associated with PLI 2000) Montreal, Quebec Sep 18-20, 2000 Mar 15, 2000
EW 2000: 9th ACM SIGOPS European Workshop Kolding, Denmark Sep 17-20, 2000 Mar 27, 2000
Scheme 2000: Workshop on Scheme and Functional Programming (at PLI 2000) Montreal, Quebec Sep 17, 2000 Jun 15, 2000
Haskell Workshop (at PLI 2000) Montreal, Quebec Sep 17, 2000 Jun 1, 2000
FMOODS 2000: IFIP TC6/WG6.1 4th International Conference on Formal Methods for Open Object-Based Distributed Systems Stanford, CA Sep 6-8, 2000 Mar 15, 2000
SPIN 2000: 7th International SPIN Workshop on Model Checking of Software Stanford, CA Aug 30-Sep 1, 2000 May 17, 2000
SPLC1: 1st Software Product Line Conference Denver, CO Aug 28-31, 2000 ?
LICS 2000: 15th Annual IEEE Symposium on Logic in Computer Science Santa Barbara, CA Jun 26-29, 2000 Jan 7, 2000
PLDI 2000: ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation Vancouver, BC Jun 18-21, 2000 Nov 12, 1999
ECOOP 2000: 14th European Conference on Object-Oriented Programming Sophia Antipolis, France Jun 12-16, 2000 Nov 12, 1999
ECOOP-OOOSWS 2000: 3rd ECOOP Workshop on Object-Orientation and Operating Systems Sophia Antipolis, France Jun 12-13, 2000 Mar 31, 2000
ADC 2000: Workshop on Aspects and Dimensions of Concerns (at ECOOP 2000) Cannes/Sophia Antipolis, France Jun 11-12, 2000 Apr 1, 2000
MSDOC 2000: 2nd Workshop on Multi-Dimensional Separation of Concerns in Software Engineering (at ICSE 2000) Limerick, Ireland Jun 6, 2000 ?
CASES '99: 2nd International Workshop on Compiler and Architecture Support for Embedded Systems Washington, DC Oct 1-3, 1999 Jul 15, 1999
GCSE '99: 1st International Symposium on Generative and Component-Based Software Engineering Erfurt, Germany Sep 28-30, 1999 Jun 7, 1999

Conference-Related Materials


Journals: Special Issues

Open to Submissions

Title Publication Date Submit Date

Closed to Submissions (Deadline Has Passed)

Title Publication Date Submit Date
Science of Computer Programming: Special Issue on Program Transformation End of 2003 Apr 1, 2003
Science of Computer Programming: Special Issue on Software Variability Management Dec 2003 Mar 30, 2003
IEE Proceedings-Software: Special Issue on Unanticipated Software Evolution ? Feb 2003
IEEE Network Magazine: Special Issue on Middleware Technologies for Future Communication Networks Sep 2003 Jan 2003
Elsevier Journal of Systems and Software: Special Issue on Automated Component-Based Software Engineering Late 2003 Oct 15, 2002
Journal of Functional Programming: Special Issue on Haskell ? Feb 1, 2001
Journal of Functional Programming: Special Issue on Semantics, Applications, and Implementation of Program Generation ? Mar 4, 2001
The Computer Journal: Special Section on Aspect-Oriented Programming and Separation of Crosscutting Concerns Autumn 2002 Jan 15, 2002


Research Projects

The DARPA/ITO Program Composition for Embedded Systems (PCES) Program

From the Web page: Program Composition for Embedded Systems (PCES) is developing new technology for programming embedded systems with greatly reduced programming effort and reduced brittleness of the resulting code. Programs for real-time embedded weapons systems are highly tailored to assure cross-cutting properties such as synchronization of concurrent operations; processor fault isolation; sensor input and actuator output timing constraints; safe and efficient cache, register, and memory management. This project is developing technology for programming these cross-cutting aspects or properties and for introducing them into the core codes that implements functional requirements of the system. The goal is a set of reusable software for aspect suites, supported by software analysis and composition tools that enable reasoning about the complex interactions and tradeoffs among cross-cutting aspects and enable safe code manipulation. A spectrum of automation will be developed in order to address dynamic composition for distributed and mobile code, as well as resident on-board code.

See the PCES Program Page at Strategic Analysis, Inc. (User ID and password required.) As of this writing (March 2001), this Web site is out of date.

See the list of project briefings from the PCES Program PI Meeting, Jul 31-Aug 1, 2000, Colorado Springs, CO.

2K: A Component-Based Network-Centric Operating System for the Next Millenium
From the Web page: 2K is an open source, distributed adaptable operating system being built by the Systems Software Research Group and by the Multimedia Operating Systems and Networking Group in the University of Illinois at Urbana-Champaign.... [The] research seeks to modify resource management in operating systems to accommodate frequent change. By identifying key technologies and approaches to support frequent update, by emphasizing user- and application-orientation, and by focusing on application and resource aware, network-centric architectures, this project shifts the emphasis of operating system design from more traditional resource management to the management of dynamically changing distributed resources within rapidly changing user environments.
ABLE: Architecture Based Languages and Environments
From the Web page: Carnegie Mellon University's ABLE project is concerned with exploring the formal basis for Software Architecture, developing the concept of Architectural Style, and building tools that practicing software architects might find useful. Our tool development effort has focused on the Aesop system, a toolkit for rapidly producing software architecture design and analysis environments that are customized to support specific architectural styles. The formal work revolves around the Wright language.
Acme
From the Web page: Acme is a simple, generic software architecture description language (ADL) that can be used as a common interchange format for architecture design tools and/or as a foundation for developing new architectural design and analysis tools.... [S]ince the project's inception the Acme language and its supporting toolkit have grown into a solid foundation upon which new software architecture design and analysis tools can be built without the need to rebuild standard infrastructure. Currently, the Acme Language and the Acme Tool Developer's Library (AcmeLib) provide a generic, extensible infrastructure for describing, representing, generating, and analyzing software architecture descriptions.
AIRES: Aspects in Real-time Embedded Systems (BBN)
From the Web page: While aspect-oriented programming (AOP) has emerged as promising technology for easing software development and promoting software reuse and maintainability, it is still limited in its support for many focused application areas, such as real-time embedded systems (RES). [...] This project aims to advance the state of the art in AOP by investigating and developing the specific parts of AOP technology that address the above limitations. We are developing Aspect Suites for Embedded Systems [...]. Our team combines the Demeter group at Northeastern University, leading researchers in functional aspect language research, and the QuO group at BBN, who have been developing systemic aspect languages for years under DARPA's Quorum program.
Application Specific Operating Systems (ASOS)
From the Web page: Application specific operating systems (ASOS) have been around for quite some time, but at a fairly high level of granularity, e.g., in microkernel architectures you can tailor your OS needs by running various OS functions as user level processes. However, we are developing application specific operating system components at a very fine level of granularity. This would enable the construction of microkernels themselves as well as more specialized system software for information products including embedded systems and real-time systems.
Aspect-Oriented Programming at Xerox PARC
From the Web page: Aspect-oriented programming (AOP) is a new programming methodology that enables the modularization of crosscutting concerns. Experience has shown that using standard procedural or object-oriented programming languages it can be difficult to modularize design concerns such as: error-checking strategies; design patterns; synchronization policies; resource sharing; distribution concerns; and performance optimizations. The reason is that these kinds of concerns inherently tend to affect multiple modules --- synchronization is often between modules, similarly error-checking policy has to employ system-wide polices. Because of the way they cross module boundaries we say they crosscut the program structure.
Bandera
From the Web page: The goal of the Bandera project is to integrate existing programming language processing techniques with newly developed techniques to provide automated support for the extraction of safe, compact, finite-state models that are suitable for verification from Java source code. While our ultimate goal is fully automated model extraction for a broad class of software systems, our approach takes as a given that guidance from a software analyst may be requied. The Bandera toolset is designed to be an open architecture in which a variety of analysis and transformation components may be incorporated.
The Click Modular Router Project
From the Click SOSP '99 paper: Click is a new software architecture for building flexible and configurable routers. A Click router is assembled from packet processing modules called elements. Individual elements implement simple router functions like packet classification, queueing, scheduling, and interfacing with network devices. Complete configurations are built by connecting elements into a graph; packets flow along the graph's edges.
Composable Software Systems
From the Web page: We focus on three research areas: software architecture, formal methods, and tractable software analysis. We develop new models, theories, methods, languages, and tools for classifying, specifying, analyzing, and designing software systems beyond the component level. This support could lead to substantial reduction in maintenance costs, improvement in software resuse, and increase in quality of software.
Demeter: Adaptive Programming
From the Web page: The Demeter Method addresses the issues of changing requirements in open, evolving systems through adaptive programming. The Method allows you to achieve more by working less: you can make your programs simultaneously shorter (i.e., you have to work less) and at the same time you get several benefits: better adaptability and even adaptiveness, better understandability, better maintainability. This apparent paradox is achieved by writing your object-oriented programs as collaborating views which are loosely glued together. The adaptiveness stems from a simple, but innovative glue, which allows the programming of entire families of open implementations. An implementation is said to be open, if clients can still significantly influence the implementation.
Ensemble
From the Web page: For a distributed systems researcher, Ensemble is a highly modular and reconfigurable toolkit. The high-level protocols provided to applications are really stacks of tiny protocol ``layers.'' These protocol layers each implement several simple properties: they are composed to provide sets of high-level properties, such as total ordering, security, virtual synchrony, and so on. Individual layers can be modified or rebuilt to experiment with new properties or change the performance characteristics of the system. This makes Ensemble a very flexible platform on which to do research.
Hyperspaces: Multi-Dimensional Separation of Concerns
From the Web page: We use the term multi-dimensional separation of concerns (MDSOC) to refer to flexible and incremental separation, modularization, and integration of software artifacts based on any number of concerns. It overcomes limitations of existing mechanisms by permitting clean separation of multiple, potentially overlapping and interacting concerns simultaneously, with support for on-demand remodularization to encapsulate new concerns at any time. [...] Hyperspaces are our approach to achieving MDSOC. Hyperspaces also provide a powerful composition mechanism that facilitiates non-invasive integration, adaptation, and ``plug-and-play.''
The L4Ka Project
From the Web page: The L4Ka research project aims at substantiating and establishing a new methodology for system construction that helps to manage ever-increasing OS complexity and minimizes legacy dependence. Our vision is a microkernel technology that can be and is used advantageously for constructing any general or customized operating system including pervasive systems, deep-computing systems, and huge servers. The technology should help to manage ever-increasing OS complexity, enable stepwise innovations in OS technology while preserving legacy compatibility, and lead to a widely-accepted foundation of system architecture.
Lackwit: Type-Based Analysis of C Programs
From the Web page: I [Robert O'Callahan] am investigating the use of sophisticated type systems and type inference to statically deduce properties of C programs. Such methods can be highly efficient, and elegantly handle features such as pointers and function pointers --- features that traditional analyses for imperative programs find difficult.
MMLite
The Product-Line Architecture Research Group
The authors of the ``GenVoca'' model of software components. From the Web pages: Today's software design methodologies are aimed at one-of-a-kind applications: designs are expressed in terms of objects and classes, and software is coded manually. Future software development will be very different and will center around product-line architectures (i.e., designs for families of related applications), refinements (an abstraction of today's components), and software plug-and-play (a codeless form of programming). Programmers will assemble different applications of a product-line merely by composing (i.e., snapping together) prewritten ``plug-and-play'' components. The components themselves may be composed dynamically at application run-time or statically at application compile-time. The essense of our research is taking the idea of components that export and import standardized interfaces (i.e., ``legos'') to its logical conclusion.
The Product Line Practice (PLP) Initiative
At the CMU Software Engineering Institute (SEI). From the Web page: The Product Line Practice (PLP) Initiative is designed to guide organizations away from traditional one-at-a-time system development and towards the systematic large-scale reuse paradigm epitomized by product lines.
PROSPER
From the Web page: The PROSPER project will research and develop the technology needed to deliver the benefits of mechanised formal specification and verification to system designers in industry. Examples of the next generation of CAD and CASE tools will be produced, incorporating user-friendly access to formal techniques. An open proof architecture created to underpin these tools will provide the basis for other innovative design tools in the future.
SLAM
From the Web page: The SLAM project at Microsoft Research investigates the relationships between Software (Specifications), Languages, Analysis, and Model checking. Our goal is to be able to check that software products satisfy certain critical behavioral properties, and aid the developer in redesigning to satisfy these properties. The SLAM project is an effort of the Software Productivity Tools Research group.
The Stanford Rapide Project
From the Web page: The Rapide Language effort focuses on developing a new technology for building large-scale, distributed multi-language systems. This technology is based upon a new generation of computer languages, called Executable Architecture Definition Languages (EADLs), and an innovative toolset supporting the use of EADLs in evolutionary development and rigorous analysis of large-scale systems. Rapide is designed to support component-based development of large, multi-language systems by utilizing architecture definitions as the development framework.
Vault: A Programming Language for Reliable Systems
From the Web page: Programming language researchers have come up with many great ideas since the birth of the C programming language, over thirty years ago. Despite these advances, C still remains one of the most popular languages for software development. To put many of these advances into the hands of C programmers, we're creating the Vault programming language. Besides C's syntax, Vault inherits C's focus on imperative programming, its bit-level control over data layout, and its simple run-time system (no garbage collector). In addition, Vault provides the following improvements over C: [...] Vault enforces programmer specified rules through a mechanism based on tracking resource keys. [...] Vault supports large projects through its sophisticated module system.
The Vitruvius Project
From the Web page: The goal of the Vitruvius project is to elucidate the architectural level of abstraction so that the collective experience of successful architects can be captured, organized, and made available to ordinary practioners.... The Vitruvius project has been working on an ADL called UniCon. With better description abilities in hand, the next steps are: to understand and categorize the parts out of which people build systems and the styles in which the parts are combined; to capture when and why designers make their decisions, through a notion called credentials; and to classify and improve the compositional difficulties that arise at the architectural level of abstraction, as when building systems from heterogeneous collections of parts.


Free Software

AspectJ
From the Web page: AspectJ is: a seamless aspect-oriented extension to the Java programming language; easy to learn and use; Java platform compatible; and available for free, including for use in product development. AspectJ enables the clean modularization of crosscutting concerns such as: error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multiple object protocols.
Hyper/J
From the Web page: Hyper/J supports advanced, ``multi-dimensional'' separation and integration of concerns in standard Java software. This facilitates improved modularization, adaptation, composition, integration, and even non-invasive remodularization of Java software components. (Also see the IBM Hyperspace page.)
Bean Markup Language
From the Web page: Bean Markup Language (BML) is an instance of an XML-based component configuration or wiring language customized for the JavaBean component model. The language is designed to be directly executable; i.e., processing a BML script will result in a running application configured as described in the script. The BML language has elements that can be used to describe the creation of new beans, accessing of existing beans, configuration of beans by setting/getting their properties and/or fields, binding of events from some beans to other beans as well as calling of arbitrary methods in beans.
SADL: A Structural Architecture Description Language
From the Web page: The architectural description language SADL is intended for the definition of software architecture hierarchies that are to be analyzed formally. The SADL language can be used to specify both the structure and the semantics of an architecture, but our main focus has been on the former. The interesting features in SADL include support for explicit mappings between architectures, generic architectures, architectural styles (including well-formedness constraints), and architecture refinement patterns that provide routine solutions to common design problems. SADL is programming language independent, but can be tailored to model programs in most conventional programming languages. It is currently being used on a number of projects at SRI SDL.
Wallace
From the Web page: Wallace is a generic subtyping-constraint-handling library. It deals with constraint solving and simplification, and it is parameterized by the definition of a type algebra. Its goal is to serve as a plug-in component in the design of a constraint-based type-checker, regardless of the programming language being analyzed.
The Omega Project
From the Web page: The Omega project has two major components. One component is the Omega test, a system for manipulating sets of affine constraints over integer variables.... As we have explored more difficult issues in analysis and transformation of scientific programs, we have extended the Omega test to the point where it is a complete system for simplifying and verifying Presburger formulas. (Presburger formulas contain affine constraints, the usual logical connectives, and there-exists and for-all quantifiers.)... The other component of my research is developing frameworks for analyzing and transforming programs.
Ckit
From the announcement: Ckit is a C front end written in SML that translates C source code (after preprocessing) into abstract syntax represented as a set of SML datatypes. Ckit also provides facilities for extending the C language with additional syntactic constructs, which can be useful for implementing ``C-like'' domain-specific languages as well as C dialects. Ckit is currently used as the frontend for domain-specific languages and for a variety of tools for static analysis of C code.
GCC-XML, the XML output extension to GCC
From the Web page: The purpose of the GCC-XML extension is to generate an XML description of a C++ program from GCC's internal representation. Since XML is easy to parse, other development tools will be able to work with C++ programs without the burden of a complicated C++ parser.
lzz: The Lazy C++ Programmer's Tool
From the Web page: lzz generates the files that make up a C++ component from a sequence of declarations. lzz enables you to develop with C++ at the component level. At the component level many onerous programming tasks become unnecessary.
VCG: Visualization of Compiler Graphs
From the Web page: The VCG tool reads a textual and readable specification of a graph and visualizes the graph. If not all positions of nodes are fixed, the tool layouts the graph using several heuristics as reducing the number of crossings, minimizing the size of edges, centering of nodes.
C--: A Portable Assembly Language
From Simon Peyton Jones' C-- Web page: Of late it has become very common for research compilers to emit C as their target code, relying on a C compiler to generate machine code.... The trouble is that C was designed as a programming language not as a compiler target language, and is not very suitable for the latter purpose.... Thus motivated, some colleagues and I have been working on the design of C--, a portable assembly language. C-- has to strike a balance between being high-level enough to allow the back end a fair crack of the whip, while being low level enough to give the front end the control it needs. A major goal is to provide portable support for features needed by advanced languages, such as garbage collection, exception handling, and debugging, without building in a particular garbage collector, exception semantics, or debugging model.
GPCP: the Garden Point Component Pascal compiler
From the Web page: Pascal derivative; specifically designed for programming software components; the Component Pascal compiler, gpcp, produces code for either the .NET platform or for the Java Virtual Machine (JVM).
BANE: the Berkeley Analysis Engine
From the Web page: BANE is a toolkit for constructing program analyses such as dataflow and type inference systems. Program analyses are widely used in compilers and software engineering tools for discovering or verifying specific properties of software systems, such as type safety and opportunities for program optimization. BANE is constraint-based, meaning that analyses are formulated as systems of constraints generated from the program text. Constraint resolution (i.e., solving the constraints) computes the desired information.
PROSPER
From the Web page: The PROSPER Toolkit is based on HOL98, a modern descendent of the HOL theorem prover. HOL98 is highly modular, reflecting the project's approach to proof engine construction from components, whether HOL libraries or external plugins. It also has powerful and sophisticated automatic proof procedures.
ELAN
From the Web page: The ELAN system provides an environment for specifying and prototyping deduction systems in a language based on rewrite rules controlled by strategies. It offers a natural and simple logical framework for the combination of the computation and deduction paradigms as it is backed up by the concepts of rewriting calculus and rewriting logic. It permits to support the design of theorem provers, logic programming languages, constraint solvers and decision procedures and to offer a modular framework for studying their combination.
Proof General
Proof General is an Emacs interface to proof assistants such as Coq, LEGO, Isabelle, and HOL.
The Click Modular Router
A ``router toolkit'' implemented in C++.
OpenCCM
Supports Java. From the Web page: OpenCCM stands for the Open CORBA Component Model Platform: the first public available Open Source implementation of the Object Management Group's CORBA Component Model.
emdebian: The Embedded Debian Project
From the Web page: The goal of the Embedded Debian Project is to make Debian GNU/Linux a natural choice for embedded Linux. [...] This is an independent project, and is not formally associated with Debian. We plan on working closely with Debian, with the goal of our work eventually being integrated into the mainstream.
CML2
From the Web page: CML2 is a configuration system, centered around a domain-specific minilanguage, that I [Eric Raymond] have written to replace the code that currently handles build-option selection for Linux kernels (that is, when you type `make config', `make menuconfig' or `make xconfig'). [...] If you maintain configuration files, you should read the CML2 Language and Tools Description.


Commercial Software

BOSS: the VA Linux Build-to-Order Software Selector
(Not commercial software, but a commercial service.) From the Web page: BOSS provides online point-and-click selection of more than 700 Linux OS and Open Source components. You simply choose the software you want loaded on your system and we do the rest.
C#
Anders Hejlsberg, Microsoft Distinguished Engineer and Chief C# Language Architect said: ``[...] one of our key design goals was to make the C# language component-oriented, to add to the language itself all of the concepts that you need when you write components.'' Links to pages about C#:
Eclipse
(Free binaries to academic users.) From the Web page: Eclipse is a software system for the cost-effective development and deployment of constraint programming applications [...]. It contains several constraint solver libraries, a high-level modelling and control language, interfaces to third-party solvers, an integrated development environment, and interfaces for embedding into host environments.
eCos: Embedded Configurable Operating System
(Open source, but really, it's a product.) From the Web page: The eCos real-time operating system offers developers optimal flexibility in developing software for their embedded system.... [S]ource level configuration means that the resulting code is truly application-specific and is a best fit for the product's needs --- and can meet a range of system requirements.
Embedix
From the Web page: Lineo Embedix is a line of embedded Linux-based software solutions that add the power and connectivity of Linux to customized embedded devices. Embedix is engineered specifically for the unique speed, memory and storage requirements of embedded devices. Embedix is based on Caldera Systems OpenLinux and is currently available for PowerPC and x86 microprocessors. Lineo plans to add support for MIPS, Hitachi and ARM microprocessors during the latter part of 2000. Embedix provides the power of Linux, the flexibility of feature selection, and the hardware support that enables an OEM to create a customized kernel for multiple solutions. The modular architecture allows developers to compile selected features and configurations into the Embedix kernel and meet performance and size requirements.
NexWave Solutions
A French company doing component-based OS stuff. As of February 21, 2002, there's wasn't much substance at the company's Web site.


References and Documentation

Documents about the CORBA Component Model (CCM)
Search the OMG Technical Document List for such documents as:
UML Object Constraint Language (OCL)
From the Web page: The Object Constraint Language (OCL) is part of the UML and can be used to specify all kinds of constraints, pre- and post-conditions, guards, and so on over the objects in the different models.
Various links about Real-Time Java
LinuxDevices.com: ``the embedded Linux portal''
From the Web pages: Our goal is to provide the highest possible concentration of quality information regarding the use of Linux in embedded applications. We intend to accomplish this by enabling YOU, the real Linux experts, to share information with others in a free and open manner. We will depend on the motivation and integrity of the embedded Linux developer community to make this vision a reality.
The Memory Management Reference
From the Web page: ...a resource for everyone interested in memory management and garbage collection.
Bibliographies about garbage collection
comp.lang.c Frequently Asked Questions


Lists

The comp.compilers newsgroup archives
Cora: Computer Science Research Paper Search Engine
From the Web pages: Cora is a special-purpose search engine covering computer science research papers. It allows keyword searches over the partial text of Postscript-formatted papers it has found by spidering the Web.


Other

The Knit project pages at freshmeat
DARPA/ITO PCES Program Meetings and Workshops
DARPA BAA #00-23: Program Composition for Embedded Systems (PCES)
NSF ITR: Information Technology Research
From the Web page: ITR is a multi-agency program to push the envelope for research and development in information technology.; a description is available at http://www.ccic.gov/it2. It is an outgrowth of the President's Information Technology Advisory Committee and is supported by both the Administration and Congress (see bill HR 2086). NSF will be implementing ITR through efforts supporting fundamental research and education in information technology for the benefit of the United States.
NSF 99-167: Information Technology Research (ITR)
Generative Programming: Methods, Tools, and Applications
This is the Web site that complements the book. Source code, errata, et cetera.
The Alchemy Web Site and Virtual Library
Includes a wonderful collection of alchemical images.
alem.bic \*-'lem-bik\ n (look it up)
1: an apparatus formerly used in distillation 2: something that refines or transmutes as if by distillation

Fun. More. Less.


Eric Eide <eeide@cs.utah.edu>
Last modified: Tue May 20 16:15:01 MDT 2003