Jinseong Jeon

dblp:15/4848 · DBLP profile ↗
← Back
8ranked-venue papers
6as first author
0since 2021 · last 2017
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 4 first-authorSecurity and privacy · 2Theory of computation · 2 · 2 first-authorSystems, architecture and hardware · 1 · 1 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
4 papers
Program synthesis and code generation · 65% Programming languages and type systems · 16% Program analysis · 12%
Network and information security
1 paper
Systems and software security · 77% Web and mobile security · 23%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Memory systems · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language design
0.212015
JSketch: sketching for Java · ESEC/SIGSOFT FSE 2015
Program synthesis and code generation › concurrent program synthesis
parallel program synthesis
0.212015
Adaptive Concretization for Parallel Program Synthesis · CAV (2) 2015
Program synthesis and code generation › syntax-guided synthesis
sketch-based synthesis
0.212015
JSketch: sketching for Java · ESEC/SIGSOFT FSE 2015
Compilers and program optimization › memory optimization
data layout optimization
0.112009
Abstracting access patterns of dynamic memory using regular expressions · ACM Trans. Archit. Code Optim. 2009
Program analysis › memory analysis
memory access pattern analysis
0.112009
Abstracting access patterns of dynamic memory using regular expressions · ACM Trans. Archit. Code Optim. 2009
Memory systems › cache
cache miss reduction
0.112009
Abstracting access patterns of dynamic memory using regular expressions · ACM Trans. Archit. Code Optim. 2009
Memory systems › cache
cache optimization
0.112009
Abstracting access patterns of dynamic memory using regular expressions · ACM Trans. Archit. Code Optim. 2009
Program analysis
symbolic execution
0.112016
Synthesizing framework models for symbolic execution · ICSE 2016
Web and mobile security › mobile security
android security
0.112014
Brahmastra: Driving Apps to Test the Security of Third-Party Components · USENIX Security Symposium 2014

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

design pattern instantiation · 0.2translation to sketch · 0.2counterexample-guided abstraction refinement · 0.2constraint solving · 0.2static analysis · 0.2regular expression extraction · 0.2
YearPublicationVenuePosition
2017 An empirical study of adaptive concretization for parallel program synthesis
Jinseong Jeon, Xiaokang Qiu, Armando Solar-Lezama, Jeffrey S. Foster
Formal Methods Syst. Des.1
2016 Synthesizing framework models for symbolic execution
abstract
Symbolic execution is a powerful program analysis technique, but it is difficult to apply to programs built using frameworks such as Swing and Android, because the framework code itself is hard to symbolically execute. The standard solution is to manually create a framework model that can be symbolically executed, but developing and maintaining a model is difficult and error-prone. In this paper, we present Pasket, a new system that takes a first step toward automatically generating Java framework models to support symbolic execution. Pasket's focus is on creating models by instantiating design patterns. Pasket takes as input class, method, and type information from the framework API, together with tutorial programs that exercise the framework. From these artifacts and Pasket's internal knowledge of design patterns, Pasket synthesizes a framework model whose behavior on the tutorial programs matches that of the original framework. We evaluated Pasket by synthesizing models for subsets of Swing and Android. Our results show that the models derived by Pasket are sufficient to allow us to use off-the-shelf symbolic execution tools to analyze Java programs that rely on frameworks.
Jinseong Jeon, Xiaokang Qiu, Jonathan Fetter-Degges, Jeffrey S. Foster, Armando Solar-Lezama
ICSE1
2015 Adaptive Concretization for Parallel Program Synthesis
Jinseong Jeon, Xiaokang Qiu, Armando Solar-Lezama, Jeffrey S. Foster
CAV (2)1
2015 Checking Interaction-Based Declassification Policies for Android Using Symbolic Execution
Kristopher K. Micinski, Jonathan Fetter-Degges, Jinseong Jeon, Jeffrey S. Foster, Michael R. Clarkson
ESORICS (2)3
2015 JSketch: sketching for Java
abstract
Sketch-based synthesis, epitomized by the Sketch tool, lets developers synthesize software starting from a partial program, also called a sketch or template. This paper presents JSketch, a tool that brings sketch-based synthesis to Java. JSketch's input is a partial Java program that may include holes, which are unknown constants, expression generators, which range over sets of expressions, and class generators, which are partial classes. JSketch then translates the synthesis problem into a Sketch problem; this translation is complex because Sketch is not object-oriented. Finally, JSketch synthesizes an executable Java program by interpreting the output of Sketch.
Jinseong Jeon, Xiaokang Qiu, Jeffrey S. Foster, Armando Solar-Lezama
ESEC/SIGSOFT FSE1
2014 Brahmastra: Driving Apps to Test the Security of Third-Party Components
Ravi Bhoraskar, Seungyeop Han, Jinseong Jeon, Tanzirul Azim, Shuo Chen 0001, Jaeyeon Jung, Suman Nath, Rui Wang 0010, David Wetherall
USENIX Security Symposium3
2009 Abstracting access patterns of dynamic memory using regular expressions
abstract
Unless the speed gap between CPU and memory disappears, efficient memory usage remains a decisive factor for performance. To optimize data usage of programs in the presence of the memory hierarchy, we are particularly interested in two compiler techniques: pool allocation and field layout restructuring . Since foreseeing runtime behaviors of programs at compile time is difficult, most of the previous work relied on profiling. On the contrary, our goal is to develop a fully automatic compiler that statically transforms input codes to use memory efficiently. Noticing that regular expressions , which denote repetition explicitly, are sufficient for memory access patterns, we describe how to extract memory access patterns as regular expressions in detail. Based on static patterns presented in regular expressions, we apply pool allocation to repeatedly accessed structures and exploit field layout restructuring according to field affinity relations of chosen structures. To make a scalable framework, we devise and apply new abstraction techniques, which build and interpret access patterns for the whole programs in a bottom-up fashion. We implement our analyses and transformations with the CIL compiler. To verify the effect and scalability of our scheme, we examine 17 benchmarks including 2 SPECINT 2000 benchmarks whose source lines of code are larger than 10,000. Our experiments demonstrate that the static layout transformations for dynamic memory can reduce L1D cache misses by 16% and execution times by 14% on average.
Jinseong Jeon, Keoncheol Shin, Hwansoo Han
ACM Trans. Archit. Code Optim.1
2007 Layout Transformations for Heap Objects Using Static Access Patterns
Jinseong Jeon, Keoncheol Shin, Hwansoo Han
CC1