Compiling with continuations
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pict: a programming language based on the Pi-Calculus
Proof, language, and interaction
Type-based race detection for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Monitors: an operating system structuring concept
Communications of the ACM
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
A new type system for JVM lock primitives
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Type-safe multithreading in cyclone
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Theoretical Computer Science
A Virtual Machine for a Process Calculus
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
An Object Calculus for Asynchronous Communication
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
An Efficient Compilation Framework for Languages Based on a Concurrent Process Calculus
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Advanced Topics in Types and Programming Languages
Advanced Topics in Types and Programming Languages
Chapter III: Hierarchical program structures
Structured programming
Hi-index | 0.00 |
We extend a previous work on a multithreaded typed assembly language (MIL) targeted at shared memory multiprocessors, and describe the design of a type-preserving compiler from the @p-calculus into MIL. The language enforces a policy on lock usage through a typing system that also ensures race-freedom for typable programs, while allowing for typing various important concurrency patterns. Our translation to MIL generates code that is then linked to a library supporting a generic unbounded buffer monitor, variant of Hoare's bounded buffer monitor, entirely written in MIL. Such a monitor shields client code (the @p-calculus compiler in particular) from the hazardous task of direct lock manipulation, while allowing for the representation of @p-calculus channels. The compiler produces type correct MIL programs from type correct source code, generating low-contention cooperative multithreaded programs.