Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Yuheng Long is active.

Publication


Featured researches published by Yuheng Long.


generative programming and component engineering | 2010

Implicit invocation meets safe, implicit concurrency

Yuheng Long; Sean L. Mooney; Tyler Sondag; Hridesh Rajan

Writing correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and concurrency as separate goals, where modularity often suffers. To solve these problems, we are designing a new language that we call Panini. In this paper, we focus on Paninis asynchronous, typed events which reconcile the modularity goal promoted by the implicit invocation design style with the concurrency goal of exposing potential concurrency between the execution of subjects and observers. Since modularity is improved and concurrency is implicit in Panini, programs are easier to reason about and maintain. The language incorporates a static analysis to determine potential conflicts between handlers and a dynamic analysis which uses the conflict information to determine a safe order for handler invocation. This mechanism avoids races and deadlocks entirely, yielding programs with a guaranteed deterministic semantics. To evaluate our language design and implementation we show several examples of its usage as well as an empirical study of program performance. We found that not only is developing and understanding Panini programs significantly easier compared to standard concurrent object-oriented programs, butt also performance of Panini programs is comparable to their equivalent hand-tuned versions written using Javas fork-join framework.


Proceedings of the 15th International Conference on Modularity | 2016

On ordering problems in message passing software

Yuheng Long; Mehdi Bagherzadeh; Eric Lin; Ganesha Upadhyaya; Hridesh Rajan

The need for concurrency in modern software is increasingly fulfilled by utilizing the message passing paradigm because of its modularity and scalability. In the message passing paradigm, concurrently running processes communicate by sending and receiving messages. Asynchronous messaging introduces the possibility of message ordering problems: two messages with a specific order in the program text could take effect in the opposite order in the program execution and lead to bugs that are hard to find and debug. We believe that the engineering of message passing software could be easier if more is known about the characteristics of message ordering problems in practice. In this work, we present an analysis to study and quantify the relation between ordering problems and semantics variations of their underlying message passing paradigm in over 30 applications. Some of our findings are as follows: (1) semantic variations of the message passing paradigm can cause ordering problems exhibited by applications in different programming patterns to vary greatly; (2) some semantic features such as in-order messaging are critical for reducing ordering problems; (3) modular enforcement of aliasing in terms of data isolation allows small test configurations to trigger the majority of ordering problems.


Proceedings of the 15th International Conference on Modularity | 2016

A type-and-effect system for asynchronous, typed events

Yuheng Long; Hridesh Rajan

Implicit concurrency between handlers is important for event driven systems because it helps simultaneously promote modularity and scalability. Knowing the side-effect of the handlers is critical in these systems to avoid concurrency hazards such as data races. As event systems are dynamic because statically known and unknown handlers can register at almost any time during program execution, static effect analyses must reconcile over competing goals such as precision, soundness and modularity. We recently developed asynchronous, typed events, a system that can analyze the effects of the handlers at runtime. This mechanism utilizes runtime information to enable precise effect computation and greatly improves concurrency between handlers. In this paper, we present the formal underpinnings of asynchronous, typed events, and examine the concurrency safety properties it provides. The technical innovations of our system include a novel effect system to soundly approximate the dynamism introduced by runtime handlers registration, a static analysis to precompute the effects and a dynamic analysis that uses the precomputed effects to improve concurrency. Our design simplifies modular concurrency reasoning and avoids concurrency hazards.


european conference on object-oriented programming | 2015

Intensional Effect Polymorphism.

Yuheng Long; Yu David Liu; Hridesh Rajan

Type-and-effect systems are a powerful tool for program construction and verification. We describe intensional effect polymorphism, a new foundation for effect systems that integrates static and dynamic effect checking. Our system allows the effect of polymorphic code to be intensionally inspected through a lightweight notion of dynamic typing. When coupled with parametric polymorphism, the powerful system utilizes runtime information to enable precise effect reasoning, while at the same time retains strong type safety guarantees. We build our ideas on top of an imperative core calculus with regions. The technical innovations of our design include a relational notion of effect checking, the use of bounded existential types to capture the subtle interactions between static typing and dynamic typing, and a differential alignment strategy to achieve efficiency in dynamic typing. We demonstrate the applications of intensional effect polymorphism in concurrent programming, security, graphical user interface access, and memoization.


conference on object-oriented programming systems, languages, and applications | 2010

Reconciling concurrency and modularity with Panini's asynchronous typed events

Yuheng Long; Hridesh Rajan; Sean L. Mooney

This poster presents our language design called Panini. It focuses on Paninis asynchronous, typed event which reconciles the modularity goal promoted by the implicit invocation design style with the scalability goal of exposing concurrency between the execution of subjects and observers.


Archive | 2014

Capsule-oriented Programming in the Panini Language

Hridesh Rajan; Steven M. Kautz; Eric Lin; Sean L. Mooney; Yuheng Long; Ganesha Upadhayaya


Archive | 2014

Quantification of Sequential Consistency in Actor-like Systems: An Exploratory Study

Yuheng Long; Mehdi Bagherzadeh; Eric Lin; Ganesha Upadhyaya; Hridesh Rajan


Archive | 2013

Open Effects: Programmer-guided Effects for Open World Concurrent Programs

Yuheng Long; Mehdi Bagherzadeh; Hridesh Rajan


conference on object oriented programming systems languages and applications | 2016

First-class effect reflection for effect-guided programming

Yuheng Long; Yu David Liu; Hridesh Rajan


Archive | 2014

Open Effects: A Hybrid Type-and-Effect System to Tackle Open World Assumption and its Application to Optimistic Concurrency

Yuheng Long; Mehdi Bagherzadeh; Hridesh Rajan

Collaboration


Dive into the Yuheng Long's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Eric Lin

Iowa State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge