|
Abstract:
TPacLang is a language originally designed for high-speed real-time processing of data such as internet packets, to be implemented on multi-core architectures such as Intel's IXP2x00 "Network Processing" architectures.
An important design decision is to allow programmers to express code naturally in the problem domain without compromising the compiler's ability to compile effectively to diverse architectures.
We concentrate on two aspects:
- PacLang's linear type system which enforces thread-safety and memory-leak safety at run-time and which also allows late design-decisions about whether to use call-by-value or call-by-reference; and
- transformations (driven by an "architecture mapping script") which enable source PacLang programs to express natural problem-oriented concurrency, but which can adjust the concurrency to match the processing and memory design of varying target architectures.
[Joint work with Richard Sharp and Rob Ennals at Intel Research]
|