Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jay McCarthy

dblp:52/10167 · DBLP profile ↗
← Back
9ranked-venue papers
0as first author
1since 2021 · last 2021
0000-0002-2061-7396ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 1 since 2021Artificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Program verification · 67% Concurrent programming · 33%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%

Topics — the 4 heaviest of 4, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › message passing
asynchronous message passing
0.212013
Proving MCAPI executions are correct using SMT · ASE 2013
Program verification › concurrent program verification
message-passing program verification
0.212013
Proving MCAPI executions are correct using SMT · ASE 2013
Program verification
SMT-based verification
0.212013
Proving MCAPI executions are correct using SMT · ASE 2013
Parallel and multicore computing
MPI
0.212013
Proving MCAPI executions are correct using SMT · ASE 2013

Methods — techniques the papers use, named apart from their topics

satisfiability modulo theories · 0.3match-pair encoding · 0.3
YearPublicationVenuePosition
2021 Newly-single and loving it: improving higher-order must-alias analysis with heap fragments
abstract
Theories of higher-order must-alias analysis, often under the guise of environment analysis, provide deep behavioral insight. But these theories---in particular those that are most insightful otherwise---can reason about recursion only in limited cases. This weakness is not inherent to the theories but to the frameworks in which they're defined: machine models which thread the heap through evaluation. Since these frameworks allocate each abstract resource in the heap, the constituent theories of environment analysis conflate co-live resources identified in the abstract, such as recursively-created bindings. We present heap fragments as a general technique to allow these theories to reason about recursion in a general and robust way. We instantiate abstract counting in a heap-fragment framework and compare its performance to a precursor entire-heap framework. We also sketch an approach to realizing binding invariants, a more powerful environment analysis, in the heap-fragment framework.
Kimball Germane, Jay McCarthy
Proc. ACM Program. Lang.2
2019 Demand Control-Flow Analysis
Kimball Germane, Jay McCarthy, Michael D. Adams 0001, Matthew Might
VMCAI2
2018 Special issue on Trends in Functional Programming 2013/14
abstract
This special issue represents a selection of the best papers of TFP'13 and TFP'14, in substantially revised versions.The authors of the three best papers in each instance were invited to submit revised versions of their research, reflecting new developments since the TFP version of the paper.In each case, at least 30% of the material in the journal paper is new.The Symposium on Trends in Functional Programming (TFP) is dedicated to promoting new research directions related to the field of functional programming and to investigate the relationships of functional programming with other branches of computer science.It is designed to be a platform for novel and upcoming research, offering a lively environment for presenting the latest research results.A formal post-symposium refereeing process then selects a high-quality set of articles from those presented at the symposium and submitted for formal publication.The journal versions of the best papers from these proceedings then offer an opportunity for the authors to take a longer term view of their research effort s and to present new results since the original presentation at TFP.This special issue covers two instances of the TFP symposium.TFP 2013 was held in Provo, Utah in the United States of America in May 2013, hosted by Brigham Young University.For TFP 2013, 24 papers were submitted to the formal refereeing process and 10 of these were accepted by the programme committee.TFP 2014 was the main event of a series of events around functional programming, was held in Soesterberg, the Netherlands in May 2014.In total, 22 papers were submitted to the formal refereeing process and eight papers were accepted.TFP traditionally pays special attention to research students, acknowledging that students are almost by definition part of new subject trends.These papers also receive an extra round of feedback by the programme committee before they are submitted to the standard review process for formal publication.In this way, students can improve their papers before they compete within a full formal refereeing process.This is often a useful stepping stone in the process of academic publications, although in this specific special issue no student papers are presented.Details on TFP can be found on this webpage: http: //www.tifp.org/ .The paper by Joachim Breitner, Call Arity, discusses an analysis to improve run-time performance of functional programs, by eta-expanding functions based on how they are used.Introducing the notion of co-call graphs, it improves on existing analyses, enabling fusion for foldl-like functions.It has been implemented in the de facto standard Haskell compiler GHC, and part of the default setting since version 7.10.1.The paper shows by means of a benchmark that the gains are large in some cases, and good overall.Debugging has always been a challenge for (lazy) functional languages.In the paper by Maarten Faddegon and Olaf Chitil, the authors apply generic programming techniques to reduce to burden on the programmer for defining how values observed, and use metaprogramming techniques to specify which parts of those values can be observed.We would like to thank the sponsors for these two TFP instances: Erlang Solutions Ltd, Well-
Jurriaan Hage, Jay McCarthy
Comput. Lang. Syst. Struct.2
2016 Deploying Exploring Computer Science Statewide
abstract
Exploring Computer Science (ECS) is a high school introductory computer science class designed to increase student interest in CS. Utah is the first state to offer ECS statewide and use it to meet a high school graduation requirement. Over the past four years, 150 teachers have been trained as Utah ECS teachers and over 10,000 Utah students have taken the class. The Utah initiative is unique because it is the first to deploy ECS in a non-urban environment and with a modified half-year curriculum that includes no additional equipment costs. This paper discusses how the Utah deployment was organized, reports its results and unique difficulties, and offers lessons for deployments with similar characteristics: statewide, rural, and limited resources.
Helen H. Hu, Cecily Heiner, Jay McCarthy
SIGCSE3
2015 Running Probabilistic Programs Backwards
Neil Toronto, Jay McCarthy, David Van Horn
ESOP2
2013 Proving MCAPI executions are correct using SMT
abstract
Asynchronous message passing is an important paradigm in writing applications for embedded heterogeneous multicore systems. The Multicore Association (MCA), an industry consortium promoting multicore technology, is working to standardize message passing into a single API, MCAPI, for bare metal implementation and portability across platforms. Correctness in such an API is difficult to reason about manually, and testing against reference solutions is equally difficult as reference solutions implement an unknown set of allowed behaviors, and programmers have no way to directly control API internals to expose or reproduce errors. This paper provides a way to encode an MCAPI execution as a Satisfiability Modulo Theories (SMT) problem, which if satisfiable, yields a feasible execution schedule on the same trace, such that it resolves non-determinism in the MCAPI runtime in a way that it now fails user provided assertions. The paper proves the problem is NP-complete. The encoding is useful for test, debug, and verification of MCAPI program execution. The novelty in the encoding is the direct use of match pairs (potential send and receive couplings). Match-pair encoding for MCAPI executions, when compared to other encoding strategies, is simpler to reason about, results in significantly fewer terms in the SMT problem, and captures feasible behaviors that are ignored in previously published techniques. Further, to our knowledge, this is the first SMT encoding that is able to run in infinite-buffer semantics, meaning the runtime has unlimited internal buffering as opposed to no internal buffering. Results demonstrate that the SMT encoding, restricted to zero-buffer semantics, uses fewer clauses when compared to another zero-buffer technique, and it runs faster and uses less memory. As a result the encoding scales well for programs with high levels of non-determinism in how sends and receives may potentially match.
Eric Mercer, Jay McCarthy
ASE3
2012 Modeling Asynchronous Message Passing for C Programs
Everett Morse, Nick Vrvilo, Eric Mercer, Jay McCarthy
VMCAI4
2011 Temporal higher-order contracts
abstract
Behavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). This paper extends prior higher-order contract systems to also express and enforce temporal properties, which are common in software systems with imperative state, but which are mostly left implicit or are at best informally specified. The paper presents both a programmatic contract API as well as a temporal contract language, and reports on experience and performance results from implementing these contracts in Racket.
Tim Disney, Cormac Flanagan, Jay McCarthy
ICFP3
2003 Controller design via adaptive critic and model reference methods
abstract
Dynamic programming (DP) is a principled way to design optimal controllers for certain classes of nonlinear systems; unfortunately, DP is computationally very expensive. The reinforcement learning methods known as adaptive critics (AC) provide computationally feasible means for performing approximate dynamic programming (ADP). The term 'adaptive' in AC refers to the critic improved estimations of the value function used by DP. To apply DP, the user must craft a Utility function that embodies all the problem-specific design specifications/criteria. Model reference adaptive control methods have been successfully used in the control community to effect on-line redesign of a controller in response to variations in plant parameters, with the idea that the resulting closed loop system dynamics will mimic those of a reference model. The work (1) uses a reference model in ADP as the key information input to the Utility function, and (2) uses ADP off-line to design the desired controller Future work will extend this to on-line application. This method is demonstrated for a hypersonic shaped airplane called LoFLYTE/spl reg/; its handling characteristics are natively a little "hotter" than a pilot would desire. A control augmentation subsystem is designed using ADP to make the plane "feel like" a better behaved one, as specified by a reference model. The number of inputs to the successfully designed controller are among the largest seen in the literature to date.
George G. Lendaris, Roberto A. Santiago, Jay McCarthy
IJCNN3