User-Customizable Transpilation of Scripting Languages
نویسندگان
چکیده
A transpiler converts code from one programming language to another. Many practical uses of transpilers require the user be able guide or customize program produced a given input program. This customizability is important for satisfying many application-specific goals such as ensuring performance, readability, ease exposition maintainability, compatibility with external environment analysis tools, and so on. Conventional are deterministic rule-driven systems often written without offering per Recent advances in based on neural networks offer some users, e.g. through interactive prompts, but they still difficult precisely control production desired output. Both conventional transpilation also suffer "last mile" problem: produce correct average, i.e., most parts program, not necessarily all it. We propose new approach that offers fine-grained reusability rules created by others, burdening understand global semantics source Our mostly automatic incremental, constructs translation needed transpile user's guidance piece-by-piece. Users can rely existing translate correctly while focusing their effort locally, only incorrect need customization. improves correctness end result. implement tool called DuoGlot, which translates Python Javascript programs, evaluate it popular GeeksForGeeks benchmarks. DuoGlot achieves 90% accuracy outperforms translators (both handcrafted neural-based), produces readable code. two additional benchmarks, containing more challenging longer similarly observe improved compared other transpilers.
منابع مشابه
Scripting Modeling Languages
Domain-Independent Models are mainly used for documentation purposes and are most of the time too complex to be directly executed, even by code generation. Domain-Specific Models can sometimes be executed, but their scope is too specific to be reused for other purposes. We propose to develop a mechanism that allows the creation of modeling languages that will be directly executed into software ...
متن کاملType Systems of Scripting Languages
Type systems play an important role in the design of programming languages, they prevent programs from having non-correct behavior. Typically, type systems are expressed in two ways, type-checking and type inference. The type information presented on local variables and method arguments makes the difference in choosing one technique rather than the other. Type checking is a derivation type infe...
متن کاملJava Makes Scripting Languages Irrelevant?
I n computing, we often solve a complex problem by adding another level of indirection. For example, in Unix file systems, an index node, or inode, data structure lets the operating system allocate files concurrently and sparsely while still providing an efficient random-access capability. When we want to customize large, complex systems or express fluid, rapidly changing requirements, we frequ...
متن کاملScripting User Contributed Interlinking
When building a linked-data dataset for humans and machines, a range of issues emerges. In this paper we discuss our findings regarding the implementation of riese (http://riese.joanneum.at), the RDFized and interlinked version of the Eurostat data. The contribution of our work is twofold: On the one hand we propose a new way of creating semantic links, labelled as User Contributed Interlinking...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3586034