John Plevyak

Learn More
ICC++ is a new concurrent C++ dialect which supports a single source code for sequential and parallel program versions, the construction of concurrent data abstractions, convenient expression of irregular and ne-grained concurrency, and high performance implementations. ICC++ programs are annotated with potential concurrency, facilitating both sharing(More)
While fine-grained concurrent languages can naturally capture concurrency in many irregular and dynamic problems, their flexibility has generally resulted in poor execution effciency. In such languages the computation consists of many small threads which are created dynamically and synchronized implicitly. In order to minimize the overhead of these(More)
The introduction of concurrency complicates the already diicult task of large-scale programming. Concurrent object-oriented languages provide a mechanism, encapsulation, for managing the increased complexity of large-scale concurrent programs, thereby reducing the diiculty of large scale concurrent programming. In particular, ne-grained object-oriented(More)
Programs written in high-level programming languages and in particular object-oriented languages make heavy use of references and dynamically allocated structures. As a result, precise analysis of such features is critical for producing eecient implementations. The information produced by this analysis is invaluable for compiling programs for both(More)
Concurrent object-oriented programming (COOP) languages focus the abstraction and encapsulation power of abstract data types on the problem of concurrency control. In particular, pure fine-grained concurrent object-oriented languages (as opposed to hybrid or data parallel) provides the programmer with a simple, uniform, and flexible model while exposing(More)
High performance on distributed memory machines for programming models with dynamic thread creation and multithreading requires eecient thread management and communication. Traditional mul-tithreading runtimes, consisting of few general-purpose, bundled mechanisms that assume minimal compiler and hardware support, are suitable for computations involving(More)
Control and data ow information is vital for the optimization of high level programming languages. Language features such as object-orientation and rst class functions and selectors link data ow and control ow. For example, in an object-oriented program an object's run time type is used to determine the function (method) executed at an invocation point via(More)
Concrete type information is invaluable for program optimization. The determination of concrete types is, in general, a ow sensitive global data ow problem. As a result, its solution is hampered by the very program structures for whose optimization its results are most critical: dynamic dispatch (as in object-oriented programs) and rst class functions(More)