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

Mehmet Emre

dblp:168/0525 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
2since 2021 · last 2023
0000-0001-8744-6459ORCID · corroborated

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

Software engineering, systems software and programming languages · 3 · 2 first-author · 2 since 2021Human-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
2 papers
Program synthesis and code generation · 37% Software maintenance and evolution · 37% Programming languages and type systems · 26%
Network and information security
2 papers
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
code translation
1.222023
Aliasing Limits on Translating C to Safe Rust · Proc. ACM Program. Lang. 2023
Translating C to safer Rust · Proc. ACM Program. Lang. 2021
Software maintenance and evolution › software reengineering › software modernization › software migration › language migration
c-to-rust translation
1.222023
Aliasing Limits on Translating C to Safe Rust · Proc. ACM Program. Lang. 2023
Translating C to safer Rust · Proc. ACM Program. Lang. 2021
Systems and software security
memory safety
0.722023
Translating C to safer Rust · Proc. ACM Program. Lang. 2021
Aliasing Limits on Translating C to Safe Rust · Proc. ACM Program. Lang. 2023

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

pointer analysis · 1.3ownership inference · 1.3empirical study · 1.0automatic unsafety removal · 1.0
YearPublicationVenuePosition
2023 Aliasing Limits on Translating C to Safe Rust
abstract
The Rust language was created to provide safe low-level systems programming. There is both industrial and academic interest in the problem of (semi-)automatically translating C code to Rust in order to exploit Rust's safety guarantees. We study the effectiveness and limitations of existing techniques for automatically translating unsafe raw pointers (in Rust programs translated from C) into safe Rust references via ownership and lifetime inference. Our novel evaluation methodology enables our study to extend beyond prior studies, and to discover new information contradicting the conclusions of prior studies. We find that existing translation methods are severely limited by a lack of precision in the Rust compiler's safety checker, causing many safe pointer manipulations to be labeled as potentially unsafe. Leveraging this information, we propose methods for improving translation, based on encoding the results of a more precise analysis in a manner that is understandable to an unmodified Rust compiler. We implement one of our proposed methods, increasing the number of pointers that can be translated to safe Rust references by 75% over the baseline (from 12% to 21% of all pointers).
Mehmet Emre, Peter Boyland, Aesha Parekh, Ryan Schroeder, Kyle Dewey, Ben Hardekopf
Proc. ACM Program. Lang.1
2021 Translating C to safer Rust
abstract
Rust is a relatively new programming language that targets efficient and safe systems-level applications. It includes a sophisticated type system that allows for provable memory- and thread-safety, and is explicitly designed to take the place of unsafe languages such as C and C++ in the coding ecosystem. There is a large existing C and C++ codebase (many of which have been affected by bugs and security vulnerabilities due to unsafety) that would benefit from being rewritten in Rust to remove an entire class of potential bugs. However, porting these applications to Rust manually is a daunting task. In this paper we investigate the problem of automatically translating C programs into safer Rust programs--that is, Rust programs that improve on the safety guarantees of the original C programs. We conduct an in-depth study into the underlying causes of unsafety in translated programs and the relative impact of fixing each cause. We also describe a novel technique for automatically removing a particular cause of unsafety and evaluate its effectiveness and impact. This paper presents the first empirical study of unsafety in translated Rust programs (as opposed to programs originally written in Rust) and also the first technique for automatically removing causes of unsafety in translated Rust programs.
Mehmet Emre, Ryan Schroeder, Kyle Dewey, Ben Hardekopf
Proc. ACM Program. Lang.1
2019 Structural and Nominal Cross-Language Clone Detection
abstract
In this paper we address the challenge of cross-language clone detection. Due to the rise of cross-language libraries and applications (e.g., apps written for both Android and iPhone), it has become common for code fragments in one language to be ported over into another language in an extension of the usual “copy and paste” coding methodology. As with single-language clones, it is important to be able to detect these cross-language clones. However there are many real-world cross-language clones that existing techniques cannot detect. We describe the first general, cross-language algorithm that combines both structural and nominal similarity to find syntactic clones, thereby enabling more complete clone detection than any existing technique. This algorithm also performs comparably to the state of the art in single-language clone detection when applied to single-language source code; thus it generalizes the state of the art in clone detection to detect both single- and cross-language clones using one technique.
Lawton Nichols, Mehmet Emre, Ben Hardekopf
FASE2
2019 Syntax-based Improvements to Plagiarism Detectors and their Evaluations
abstract
Software plagiarism cheats students out of their own education and leads to unfair grading, making software plagiarism detection an important problem. However, many popular plagiarism detection tools are inaccurate, language-specific, or closed source, limiting their applicability. In this work, we seek to address these problems via a novel approach. We adapt the optimal Smith-Waterman sequence alignment algorithm to precisely measure the similarity between programs, greatly improving detection accuracy relative to competitors. Our approach is applicable to any language describable by an ANTLR grammar, which includes most programming languages. We also provide a new type of evaluation based on random program generation and obfuscation. Finally, we make our approach freely available, allowing for customizations and transparent reasoning about detection behavior.
Lawton Nichols, Kyle Dewey, Mehmet Emre, Sitao Chen, Ben Hardekopf
ITiCSE3