Core Research AreaSoftware[Overview] [Faculty] [Projects] Software focuses on design and programming techniques, tools and languages; programming frameworks and libraries; program analysis and transformation tools. FacultyGabriel Dos Reis, Assistant Professor (computer algebra, mathematical software, formal verification, programming languages, compiler construction, generic programming) Jaakko Järvi, Associate Professor (Generic and generative programming, software libraries, programming languages, type systems, constraint systems, user interfaces) Andruid Kerne, Associate Professor (Support for information mapping in programming languages (s.im.pl), embedded systems, software.) Lawrence Rauchwerger, Professor (Compilers for parallel and distributed computing, parallel and distributed C++ libraries, adaptive runtime optimizations, architectures for parallel computing) Bjarne Stroustrup, Distinguished Professor and College of Engineering Endowed Chair in Computer Science (Distributed systems, software development tools, design, programming and programming languages, founding member of the ISO C++ standards committee)Frank Shipman, Professor (Intelligent user interfaces, hypertext, computers and education, multimedia, new media, computers and design, computer-human interaction, computer-supported cooperative work) ProjectsAlgorithms for User Interfaces. Our hypothesis is that a large part of the functionality of a user interface can be implemented as reusable generic algorithms. In this project we study a declarative approach to programming user interfaces, where a concise "property model" captures the essential properties of the data manipulated by a user interface. Various user interface features are generic algorithms parametrized by a property model. C++0x, a large international collaborative project to develop the next-generation ISO C++ standard language and standard library. OpenAxiom, an open source platform for scientific computations, with emphasis on computer algebra, and symbolic-numeric computations. S.IM.PL. The S.IM.PL (Support for Information Mapping in Programming Languages) project develops new declarative mark-up languages integrated with extensions to imperative programming languages (e.g., Java, Objective-C, ...), and communications frameworks, to assist developers traversing the divide between information and software. S.IM.PL serialization provides fine-grained control for annotating object declarations to define the semantics of serialization through meta-language embedded directly in source code. Object-Oriented Distributed Semantic Services (OODSS) builds on S.IM.PL serialization to develop an object-oriented semantic communications framework for message passing and remote method invocation. We introduce meta-metadata: integrated representations that consistently describe how metadata can be extracted from information resources found in digital repositories and on the Internet, represented internally, acted on by software tools, and presented to users. STAPL, an ISO Standard C++ based parallel computation library and run-time system. STAPL supports portable high-performance numerical computation on shared memory and cluster architectures using high-level abstractions in the spirit of the C++ standard library. STAPL is being developed in parallel with physics and biology applications. The Pivot, a general framework for static analysis of C++ programs with an emphasis on analyzing "advanced" features such as classes, class hierarchies, exceptions, and templates. In addition to traditional static analysis techniques, The Pivot will support library-specific optimization of STAPL and other high-level abstractions. |
