June 28th, 2024

Denotational Semantics and a Fast Interpreter for jq (2023)

The paper introduces denotational semantics for the jq programming language, addressing the lack of a formal specification. A new interpreter, jaq, outperforms jq on benchmarks, submitted to OOPSLA 2023.

Read original articleLink Icon
Denotational Semantics and a Fast Interpreter for jq (2023)

The paper discusses denotational semantics and introduces a fast interpreter for the jq programming language, commonly used for JSON data manipulation. The lack of a formal specification for jq's semantics has hindered understanding its behavior. The author presents a subset of jq's language with denotational semantics, offering a new approach to interpreting updates. The novel interpreter, named jaq, implements an extended version of these semantics. Despite using a simpler execution method than jq, jaq outperforms jq on ten out of thirteen benchmarks. The work has been submitted to OOPSLA 2023 and is classified under Logic in Computer Science and Programming Languages. The paper aims to enhance the comprehension and performance of jq programs through a structured semantic framework and a more efficient interpreter.

Related

F (2006)

F (2006)

F is a functional concatenative language with K3 list operations and Joy's dip combinator. It enforces one-time assignment, supports floating-point and symbolic datatypes, and emphasizes function-valence and -charge theories. The language is purely functional, prohibiting side-effects and reassignment, with various primitives for arithmetic, logic, and list operations. F also provides interactive commands for debugging and manipulation, focusing on simplicity, efficiency, and functional programming paradigms.

My experience crafting an interpreter with Rust (2021)

My experience crafting an interpreter with Rust (2021)

Manuel Cerón details creating an interpreter with Rust, transitioning from Clojure. Leveraging Rust's safety features, he faced challenges with closures and classes, optimizing code for performance while balancing safety.

Shape Rotation 101: An Intro to Einsum and Jax Transformers

Shape Rotation 101: An Intro to Einsum and Jax Transformers

Einsum notation simplifies tensor operations in libraries like NumPy, PyTorch, and Jax. Jax Transformers showcase efficient tensor operations in deep learning tasks, emphasizing speed and memory benefits for research and production environments.

Show HN: Qq: like jq, but can transcode between many formats

Show HN: Qq: like jq, but can transcode between many formats

The GitHub repository hosts `qq`, a tool using `jq` query syntax and `gojq` for configuration format transcoding. It offers interactive query building, multiple format support, and encoding performance focus. Installation options include source or releases. Contributions welcome.

JEP 401: Value Classes and Objects (Preview)

JEP 401: Value Classes and Objects (Preview)

JEP 401 introduces value classes and objects in Java, focusing on optimizing memory efficiency by distinguishing objects solely by their field values, not identity. This feature enhances performance for simple domain values.

Link Icon 0 comments