60 likes | 84 Views
Code generation from software blueprints. class Binary : public Expr { … const Expr* getLeft(); const Expr* getRight(); … }; … class Choice : public Binary{ … virtual void Accept( ExprVisitor& ); … };. 2. Expr. Binary. Unary. …. Choice. Reliable Software.
E N D
Code generation from software blueprints class Binary : public Expr { … const Expr* getLeft(); const Expr* getRight(); … }; … class Choice : public Binary{ … virtual void Accept( ExprVisitor& ); … }; 2 Expr Binary Unary … Choice
Reliable Software • Specification of temporal properties • Test oracles • Automated generation of software components • Modeling and analysis of concurrent and real-time systems
FAULT-TOLERANCE • Unified Framework for Fault-Tolerance • Separate concerns of designing functionality and fault-tolerance. • Two components (detectors and correctors) that are necessary and sufficient to add fault-tolerance. • Framework using detectors and correctors to help in the design, testing, verification and automation of fault-tolerance. • Current Projects in the areas of distributed programs, network protocols, ad-hoc networks, sensor networks, middleware design, security.
Processor Chip Host Processor L2 Cache L1 Cache Memory Processor Memory Chip L1 Cache DRAM Compiler Research at MSU • An Optimizing Compiler for Explicitly Parallel Programs and Relaxed Memory Consistency Models. • Developing a (Java) compiler which presents to programmers a sequentially consistent view of the underlying architecture and guarantees correctness in classical compiler optimizations for concurrent programs. • Compilers for Processors in Memory (PIM) Architectures. • Developing compiler techniques for a multiprocessor computer system that consists of multiple commodity host microprocessors and multiple PIM chips.
Pavilion and RAPIDware Projects • Protocols and software frameworks for heterogeneous mobile computing • Experimental work on wireless testbed • Example subprojects: • VGuide:synchronous collaborative virtual reality tool — you see what I see. • Pocket Pavilion:extend collaborative web browsing to wireless handheld PCs • Proxy-based adaptive forward error correction for streaming compressed audio/video across wireless networks • Use of mobile agent techniques to support adaptive middleware