3,165 Hits in 6.5 sec

Type Inference for Static Compilation of JavaScript (Extended Version) [article]

Satish Chandra, Colin S. Gordon, Jean-Baptiste Jeannin, Cole Schlesinger, Manu Sridharan, Frank Tip, Youngil Choi
2016 arXiv   pre-print
The invariants enforced by the types enable an ahead-of-time compiler to carry out optimizations typically beyond the reach of static compilers for dynamic languages.  ...  We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods.  ...  Acknowledgements We thank the anonymous reviewers for their detailed feedback, which significantly improved the presentation of the paper.  ... 
arXiv:1608.07261v3 fatcat:sdfx6u2frvbdxlcukmqttq2ldi

Trace Typing: An Approach for Evaluating Retrofitted Type Systems (Extended Version) [article]

Esben Andreasen, Colin S. Gordon, Satish Chandra, Manu Sridharan, Frank Tip, Koushik Sen
2016 arXiv   pre-print
The trace typing approach involves gathering traces of program executions, inferring types for instances of variables and expressions occurring in a trace, and merging types according to merge strategies  ...  We also used trace typing to validate and guide the design of a new retrofitted type system that enforces fixed object layout for JavaScript objects.  ...  We have also used trace typing to guide the design of a type system to support aheadof-time compilation of JavaScript extending previous work [8] .  ... 
arXiv:1605.01362v1 fatcat:jacxtipj7bd77eykx6dulvu5hi

Extending Basic Block Versioning with Typed Object Shapes [article]

Maxime Chevalier-Boisvert, Marc Feeley
2015 arXiv   pre-print
To assess the effectiveness of the techniques presented, we have implemented them in Higgs, a type-specializing JIT compiler for JS.  ...  Typical JavaScript (JS) programs feature a large number of object property accesses. Hence, fast property reads and writes are crucial for good performance.  ...  This work was supported, in part, by the Natural Sciences and Engineering Research Council of Canada (NSERC) and Mozilla Corporation.  ... 
arXiv:1507.02437v1 fatcat:pac7qiarrnbvvnfcbxu7p2pr74

Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version) [article]

Artem Pelenitsyn, Julia Belyakova, Benjamin Chung, Ross Tate, Jan Vitek
2021 arXiv   pre-print
This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that groundedness enables compiler optimizations, and proves the compiler correct.  ...  Performance is serious business for a scientific programming language. Success in that niche hinges on fostering a rich ecosystem of highly optimized mathematical libraries.  ...  Logozzo and Venter [2010] extended this approach with a more sophisticated abstract interpretation-based inference system for JavaScript.  ... 
arXiv:2109.01950v1 fatcat:hthgyrfwrrhkrnip2bisx7tf6m

GOOL: A Generic Object-Oriented Language (extended version) [article]

Jacques Carette and Brooks MacLachlan and W. Spencer Smith
2019 arXiv   pre-print
It demonstrates that a language, with the right abstractions, can capture the essence of object-oriented programs.  ...  common programming idioms and patterns, from simple library-level functions, to simple tasks (command-line arguments, list processing, printing), to more complex patterns, such as methods with a mixture of  ...  We must also re-emphasize this last point: that for GOOL, the generated code is meant for human consumption as well as for computer consumption.  ... 
arXiv:1911.11824v1 fatcat:wvcu65qpmnarxknj7sqeydyfae

Language-Integrated Updatable Views (Extended version) [article]

Rudi Horn, Simon Fowler, James Cheney
2020 arXiv   pre-print
We prove the soundness of our typing rules, and illustrate our approach by implementing a curation interface for a scientific database application.  ...  In this paper, we propose the first full account of relational lenses in a functional programming language, by extending the Links web programming language.  ...  ACKNOWLEDGMENTS Thanks to the anonymous reviewers for their helpful comments and to Simon Harding and Jo Sharman for discussion of the GtoPdb curation interface.  ... 
arXiv:2003.02191v2 fatcat:io3pyy35tje6hgwp6t36cb6yse

Prisma: A Tierless Language for Enforcing Contract-Client Protocols in Decentralized Applications (Extended Version) [article]

David Richter, David Kretzler, Pascal Weisenburger, Guido Salvaneschi, Sebastian Faust, Mira Mezini
2022 arXiv   pre-print
We prove formally that our compiler preserves program behavior in presence of an attacker controlling the client code.  ...  In this paper, we present Prisma, a language for tierless decentralized applications, where the contract and its clients are defined in one unit and pairs of send and receive actions that "belong together  ...  Unlike Solidity, which does not support statically checking protocol compliance, Nomos and Obsidian employ behavioral typing for static checks.  ... 
arXiv:2205.07780v1 fatcat:plscefwjtjdvjmpzjzvqfetqhi

Closing the Gap -- Formally Verifying Dynamically Typed Programs like Statically Typed Ones Using Hoare Logic -- Extended Version -- [article]

Björn Engelmann and Ernst-Rüdiger Olderog and Nils Erik Flick
2015 arXiv   pre-print
However, with the current methodology for program verification, the absence of static type information creates significant overhead.  ...  modifying the program (static typing) and accepting the presence of runtime type errors (dynamic typing).  ...  Acknowledgements We thank Sven Linker, Martin Hilscher and Eike Best for insightful discussions and useful comments on drafts of this paper.  ... 
arXiv:1501.02699v1 fatcat:ei5hbb6bkngwznirfosjck3piq

World Age in Julia: Optimizing Method Dispatch in the Presence of Eval (Extended Version) [article]

Julia Belyakova, Benjamin Chung, Jack Gelinas, Jameson Nash, Ross Tate, Jan Vitek
2020 arXiv   pre-print
This paper provides the first formal semantics of world age in a core calculus named Juliette, and shows how world age enables compiler optimizations, such as inlining, in the presence of eval.  ...  While Julia also provides programmers with the means to bypass world age, we found that this mechanism is not used extensively: a static analysis of over 4,000 registered Julia packages shows that only  ...  Julia Overview Despite the extensive use of types and type annotations for dispatch and compiler optimizations, Julia is not statically typed.  ... 
arXiv:2010.07516v2 fatcat:vpp2ojmvo5bcngm7mreehxnrxe

IFC Inside: Retrofitting Languages with Dynamic Information Flow Control (Extended Version) [article]

Stefan Heule, Deian Stefan, Edward Z. Yang, John C. Mitchell, Alejandro Russo
2015 arXiv   pre-print
Many important security problems in JavaScript, such as browser extension security, untrusted JavaScript libraries and safe integration of mutually distrustful websites (mash-ups), may be effectively addressed  ...  In this work, we take the ideas of coarse-grained dynamic IFC and provide the theoretical foundation for a language-based approach that can be applied to any programming language for which external effects  ...  Acknowledgements We thank the POST 2015 anonymous reviewers, Adriaan Larmuseau, Sergio Maffeis, and David Mazières for useful comments and suggestions.  ... 
arXiv:1501.04132v1 fatcat:vslvhatr6zbbjgfkcko6j2uzci

From IP ID to Device ID and KASLR Bypass (Extended Version) [article]

Amit Klein, Benny Pinkas
2019 arXiv   pre-print
Our work examines the generation of this field in Windows (versions 8 and higher), Linux and Android, and shows that the IP ID field enables remote servers to assign a unique ID to each device and thus  ...  In modern Linux and Android versions, this field leaks a kernel address, thus we also break KASLR.  ...  With this change, the key K was extended to include 32 bits of a kernel address (the address of the net structure for the current namespace).  ... 
arXiv:1906.10478v2 fatcat:aqxxj4w54bhstbonrts23gy4qq

Can determinism and compositionality coexist in RML? (extended version) [article]

Davide Ancona and Angelo Ferrando and Viviana Mascardi
2020 arXiv   pre-print
implementation of the interpreter of the monitors generated by the RML compiler from the specifications.  ...  RML (Runtime Monitoring Language) is a simple but expressive Domain Specific Language for RV; its semantics is based on a trace calculus formalized by a deterministic rewriting system which drives the  ...  Although the generated monitors could dynamically check potential loops dynamically, a syntactic condition enforced statically by the compiler allows monitors to be relieved of such a check, and, thus,  ... 
arXiv:2008.06453v2 fatcat:5v2aaseebzhvth7dvjpwh3rheq

Achieving High Coverage for Floating-point Code via Unconstrained Programming (Extended Version) [article]

Zhoulai Fu, Zhendong Su
2017 arXiv   pre-print
This paper turns the challenge of testing floating-point code into the opportunity of applying unconstrained programming --- the mathematical solution for calculating function minimum points over the entire  ...  Our core insight is to derive a representing function from the floating-point program, any of whose minimum points is a test input guaranteed to exercise a new branch of the tested program.  ...  The information presented here does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.  ... 
arXiv:1704.03394v1 fatcat:u62pyfh4vbgcvikczno7mixeni

A Survey of Software Engineering Practices in Turkey (extended version) [article]

Vahid Garousi, Ahmet Coşkunçay, Aysu Betin-Can, Onur Demirörs
2014 arXiv   pre-print
The current survey is the most comprehensive of its type ever conducted in the context of Turkish software industry.  ...  There is a wide spectrum in terms of the types and maturity of software engineering practices conducted in each software team and company.  ...  alone for releases.  ... 
arXiv:1412.4648v2 fatcat:xed22a77trhzfib6huojx2ss6q

Interprocedural Type Specialization of JavaScript Programs Without Type Analysis [article]

Maxime Chevalier-Boisvert, Marc Feeley
2015 arXiv   pre-print
Our implementation in a JavaScript JIT compiler shows that across 26 benchmarks, interprocedural basic block versioning eliminates more type tag tests on average than what is achievable with static type  ...  However, type inference analyses are often costly and involve tradeoffs between compilation time and resulting precision.  ...  This is a combined static analysis and transformation that compiles multiple versions of loops and duplicates control flow paths to eliminate type tests.  ... 
arXiv:1511.02956v1 fatcat:i66qaeqxqrg3xp2htnwevimrya
« Previous Showing results 1 — 15 out of 3,165 results