Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleNovember 2024
Latch: Enabling large-scale automated testing on constrained systems
Science of Computer Programming (SCPR), Volume 238, Issue Chttps://doi.org/10.1016/j.scico.2024.103157AbstractTesting is an essential part of the software development cycle. Unfortunately, testing on constrained devices is currently very challenging. First, the limited memory of constrained devices severely restricts the size of test suites. Second, the ...
Highlights
- A test framework, Latch, for large-scale automated testing on constrained hardware.
- A test specification language utilizing debug operations.
- A prototype implementation of the test specification language.
- We showcase Latch's ...
- research-articleSeptember 2024
Towards Realistic Results for Instrumentation-Based Profilers for JIT-Compiled Systems
MPLR 2024: Proceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 82–89https://doi.org/10.1145/3679007.3685058Profilers are crucial tools for identifying and improving ap- plication performance. However, for language implementa- tions with just-in-time (JIT) compilation, e.g., for Java and JavaScript, instrumentation-based profilers can have signifi- cant ...
- proceedingOctober 2023
DLS 2023: Proceedings of the 19th ACM SIGPLAN International Symposium on Dynamic Languages
It is our pleasure to welcome you to the 19th edition of the Dynamic Language Symposium (DLS 2023), co-located with SPLASH 2023 in Cascais, Portugal. After about two decades of dynamic language research and DLS, it is time to reflect and look forward to ...
- short-paperOctober 2023
Don’t Trust Your Profiler: An Empirical Study on the Precision and Accuracy of Java Profilers (Poster Abstract)
MPLR 2023: Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 181–182https://doi.org/10.1145/3617651.3624307To identify optimisation opportunities, Java developers often use sampling profilers that attribute a percentage of run time to the methods of a program. Even so these profilers use sampling, are probabilistic in nature, and may suffer for ...
- research-articleOctober 2023
Don’t Trust Your Profiler: An Empirical Study on the Precision and Accuracy of Java Profilers
MPLR 2023: Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 100–113https://doi.org/10.1145/3617651.3622985To identify optimisation opportunities, Java developers often use sampling profilers that attribute a percentage of run time to the methods of a program. Even so these profilers use sampling, are probabilistic in nature, and may suffer for ...
-
AST vs. Bytecode: Interpreters in the Age of Meta-Compilation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA2Article No.: 233, Pages 318–346https://doi.org/10.1145/3622808Thanks to partial evaluation and meta-tracing, it became practical to build language implementations that reach state-of-the-art peak performance by implementing only an interpreter. Systems such as RPython and GraalVM provide components such as a ...
- research-articleJune 2023
Optimizing the Order of Bytecode Handlers in Interpreters using a Genetic Algorithm
SAC '23: Proceedings of the 38th ACM/SIGAPP Symposium on Applied ComputingPages 1384–1393https://doi.org/10.1145/3555776.3577712Interpreter performance remains important today. Interpreters are needed in resource constrained systems, and even in systems with just-in-time compilers, they are crucial during warm up. A common form of interpreters is a bytecode interpreter, where the ...
- research-articleDecember 2022
Profile Guided Offline Optimization of Hidden Class Graphs for JavaScript VMs in Embedded Systems
VMIL 2022: Proceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate LanguagesPages 25–35https://doi.org/10.1145/3563838.3567678JavaScript is increasingly used for the Internet of Things (IoT) on embedded systems. However, JavaScript's memory footprint is a challenge, because normal JavaScript virtual machines (VMs) do not fit into the small memory of IoT devices. In ...
- research-articleDecember 2022
Who You Gonna Call: Analyzing the Run-Time Call-Site Behavior of Ruby Applications
DLS 2022: Proceedings of the 18th ACM SIGPLAN International Symposium on Dynamic LanguagesPages 15–28https://doi.org/10.1145/3563834.3567538Applications written in dynamic languages are becoming larger and larger and companies increasingly use multi-million line codebases in production. At the same time, dynamic languages rely heavily on dynamic optimizations, particularly those that ...
- research-articleDecember 2022
Execution vs. Parse-Based Language Servers: Tradeoffs and Opportunities for Language-Agnostic Tooling for Dynamic Languages
DLS 2022: Proceedings of the 18th ACM SIGPLAN International Symposium on Dynamic LanguagesPages 1–14https://doi.org/10.1145/3563834.3567537With the wide adoption of the language server protocol, the desire to have IDE-style tooling even for niche and research languages has exploded. The Truffle language framework facilitates this desire by offering an almost zero-effort approach to ...
- research-articleJuly 2021
Naïve transient cast insertion isn't (that) bad
ICOOOLPS 2021: Proceedings of the 16th ACM International Workshop on Implementation, Compilation, Optimization of OO Languages, Programs and SystemsPages 1–9https://doi.org/10.1145/3464972.3472395Transient gradual type systems often depend on type-based cast insertion to achieve good performance: casts are inserted whenever the static checker detects that a dynamically-typed value may flow into a statically-typed context. Transient gradually ...
- proceedingNovember 2020
MPLR '20: Proceedings of the 17th International Conference on Managed Programming Languages and Runtimes
Welcome to MPLR 2020, the 17th International Conference on Managed Programming Languages and Runtimes. MPLR is a successor to the conference series on Managed Languages and Runtimes (ManLang). It is a premier forum for presenting and discussing novel ...
- research-articleOctober 2019
Which of my transient type checks are not (almost) free?
VMIL 2019: Proceedings of the 11th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate LanguagesPages 58–66https://doi.org/10.1145/3358504.3361232One form of type checking used in gradually typed language is transient type checking: whenever an object ‘flows’ through code with a type annotation, the object is dynamically checked to ensure it has the methods required by the annotation. Just-in-...
- research-articleOctober 2019
Asynchronous snapshots of actor systems for latency-sensitive applications
MPLR 2019: Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 157–171https://doi.org/10.1145/3357390.3361019The actor model is popular for many types of server applications. Efficient snapshotting of applications is crucial in the deployment of pre-initialized applications or moving running applications to different machines, e.g for debugging purposes. A key ...
- research-articleSeptember 2019
Fully Reflective Execution Environments: Virtual Machines for More Flexible Software
IEEE Transactions on Software Engineering (ISOF), Volume 45, Issue 9Pages 858–876https://doi.org/10.1109/TSE.2018.2812715VMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics or memory management at run ...
Understanding GCC builtins to develop better tools
ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 74–85https://doi.org/10.1145/3338906.3338907C programs can use compiler builtins to provide functionality that the C language lacks. On Linux, GCC provides several thousands of builtins that are also supported by other mature compilers, such as Clang and ICC. Maintainers of other tools lack ...