CAREER: Designing Embedded Systems with Domain-Specific Languages

  • Edwards, Stephen (PI)

Project: Research project

Project Details

Description

Designing Embedded Systems with Domain-Specific Languages

Stephen A. Edwards

This goal of this project is to provide tools to designers of embedded

systems that will allow them to more quickly create correct systems.

It proposes to do this by providing domain-specific languages and

compilers. Such succinct, abstract languages reduce development and

testing time by providing more formal, correct-by-construction

methodologies and by enabling automatic implementation techniques.

The result will enable the development of these systems to proceed

beyond the current ad hoc C-and-assembly approach.

The project addresses three issues in the design of many embedded

systems: real-time software, software for communication, and software

for communicating across the hardware/software boundary.

These issues are addressed through the following specific investigations:

New Compilation Techniques for Synchronous Languages

Synchronous languages such as Esterel provide very predictable

real-time behavior but are challenging to compile. This project

includes developing new, more efficient compilation techniques for

large systems described in the Esterel language and its variants.

New Languages and Compilers for Communication Protocols

Network communication is becoming a crucial part of every embedded

system, but the growing complexity of the protocols and the need for

bandwidth (e.g., for video) makes this software difficult to develop.

This project includes the development of a new language for

describing such protocol software and a compiler for producing

efficient implementations.

New Languages and Compilers for Device Drivers

Writing software that communicates directly with hardware is currently

tedious and error-prone, and unfortunately even more important in

embedded systems since they tend to have application-specific

peripherals. This project aims to simplify this task by creating a

language and compiler for writing device drivers. The results of this

research will enable more diverse languages for communicating across

the hardware/software boundary.

This project is also addressing the recurring complaint that academia

does not produce students who understand both hardware and software

well enough to be effective embedded systems designers by developing

new courses along these lines. At the undergraduate level, a new

embedded systems project course is being developed that will give

students the opportunity to learn about and use some of these new

techniques. At the graduate level, a more sophisticated course is

being developed that focuses on languages for describing embedded

systems and isses with their semantics and implementation. This will

give future designers more tools for developing embedded systems and

will prepare students for research in automating embedded system

design.

The results of this project are being disseminated in three ways:

through conference and journal papers, through the release of all

developed software to the public domain, and through the education of

students in the use of the languages and compilers developed. Just as

computer-aided design tools have enabled the rapid, correct design of

fantastically complex integrated circuits, this work is enabling the

quick, correct design of tomorrow's complex embedded systems.

StatusFinished
Effective start/end date1/1/0212/31/06

Funding

  • National Science Foundation: US$292,873.00

ASJC Scopus Subject Areas

  • Computer Graphics and Computer-Aided Design
  • Computer Networks and Communications

Fingerprint

Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.