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

Jong-hoon (David) An

dblp:01/1080 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
0since 2021 · last 2011
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 2 first-author

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
3 papers
Programming languages and type systems · 67% Program analysis · 33%
Network and information security
1 paper
Web and mobile security · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type inference
dynamic type inference
0.112011
Dynamic inference of static types for ruby · POPL 2011
Programming languages and type systems
type inference
0.112011
Dynamic inference of static types for ruby · POPL 2011
Program analysis
static analysis
0.112009
Static Typing for Ruby on Rails · ASE 2009
Programming languages and type systems › type inference
static type inference
0.112009
Profile-guided static typing for dynamic scripting languages · OOPSLA 2009
Programming languages and type systems › type systems
static typing
0.112009
Static Typing for Ruby on Rails · ASE 2009
Program analysis › type analysis
type error detection
0.112009
Static Typing for Ruby on Rails · ASE 2009
Web and mobile security
web application security
0.012009
Static Typing for Ruby on Rails · ASE 2009

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

static type inference · 0.2program translation · 0.2type inference · 0.1runtime instrumentation · 0.1dynamic analysis · 0.1
YearPublicationVenuePosition
2011 Dynamic inference of static types for ruby
abstract
There have been several efforts to bring static type inference to object-oriented dynamic languages such as Ruby, Python, and Perl. In our experience, however, such type inference systems are extremely difficult to develop, because dynamic languages are typically complex, poorly specified, and include features, such as eval and reflection, that are hard to analyze.
Jong-hoon (David) An, Avik Chaudhuri, Jeffrey S. Foster, Michael Hicks 0001
POPL1
2009 The ruby intermediate language
abstract
Ruby is a popular, dynamic scripting language that aims to "feel natural to programmers" and give users the "freedom to choose" among many different ways of doing the same thing. While this arguably makes programming in Ruby easier, it makes it hard to build analysis and transformation tools that operate on Ruby source code. In this paper, we present the Ruby Intermediate Language (RIL), a Ruby front-end and intermediate representation that addresses these. RIL includes an extensible GLR parser for Ruby, and an automatic translation into an easy-to-analyze intermediate form. This translation eliminates redundant language constructs, unravels the often subtle ordering among side effecting operations, and makes implicit interpreter operations explicit. We also describe several additional useful features of RIL, such as a dynamic instrumentation library for profiling source code and a dataflow analysis engine. We demonstrate the usefulness of RIL by presenting a static and dynamic analysis to eliminate null pointer errors in Ruby programs. We hope that RIL's features will enable others to more easily build analysis tools for Ruby, and that our design will inspire the of similar frameworks for other dynamic languages.
Michael Furr, Jong-hoon (David) An, Jeffrey S. Foster, Michael Hicks 0001
DLS2
2009 Static Typing for Ruby on Rails
abstract
Ruby on Rails (or just "Rails") is a popular web application framework built on top of Ruby, an object-oriented scripting language. While Ruby's powerful features such as dynamic typing help make Rails development extremely lightweight, this comes at a cost. Dynamic typing in particular means that type errors in Rails applications remain latent until run time, making debugging and maintenance harder. In this paper, we describe DRails, a novel tool that brings static typing to Rails applications to detect a range of run time errors. DRails works by translating Rails programs into pure Ruby code in which Rails's numerous implicit conventions are made explicit. We then discover type errors by applying DRuby, a previously developed static type inference system, to the translated program. We ran DRails on a suite of applications and found that it was able to detect several previously unknown errors.
Jong-hoon (David) An, Avik Chaudhuri, Jeffrey S. Foster
ASE1
2009 Profile-guided static typing for dynamic scripting languages
abstract
Many popular scripting languages such as Ruby, Python, and Perl include highly dynamic language constructs, such as an eval method that evaluates a string as program text. While these constructs allow terse and expressive code, they have traditionally obstructed static analysis. In this paper we present PRuby, an extension to Diamondback Ruby (DRuby), a static type inference system for Ruby. PRuby augments DRuby with a novel dynamic analysis and transformation that allows us to precisely type uses of highly dynamic constructs. PRuby's analysis proceeds in three steps. First, we use run-time instrumentation to gather per-application profiles of dynamic feature usage. Next, we replace dynamic features with statically analyzable alternatives based on the profile. We also add instrumentation to safely handle cases when subsequent runs do not match the profile. Finally, we run DRuby's static type inference on the transformed code to enforce type safety.
Michael Furr, Jong-hoon (David) An, Jeffrey S. Foster
OOPSLA2