June 29th, 2024

Semantics and scheduling for machine knitting compilers (2023)

Carnegie Mellon Textiles Lab develops formal semantics for knitout, enhancing machine knitting precision. Research by Lin et al. in ACM Transactions on Graphics establishes robust foundations for compiling and optimizing knit programs.

Read original articleLink Icon
Semantics and scheduling for machine knitting compilers (2023)

The Carnegie Mellon Textiles Lab has introduced a formal semantics for knitout, a Domain Specific Language for knitting machines. This innovation aims to address the limitations of existing representations for machine knitted objects, which often lack completeness or fail to consider symmetries and equivalences among knitting instruction sequences. By utilizing the fenced tangle concept from knot theory, the lab's work enables a mathematical definition of knitting program equivalence that aligns with the intuition behind knit objects. The formal representation allows for proving the correctness of rewrite rules and demonstrates how these rules can be foundational for compiling programs for specific machines and optimizing for time and reliability. By establishing formal definitions of correctness, this research provides a robust basis for compiling and optimizing knit programs. The paper detailing this work, authored by Jenny Lin, Vidya Narayanan, Yuka Ikarashi, Jonathan Ragan-Kelley, Gilbert Bernstein, and James McCann, is published in the ACM Transactions on Graphics.

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.

Rosser's Theorem via Turing Machines (2011)

Rosser's Theorem via Turing Machines (2011)

The post delves into Rosser's Theorem, a potent extension of Gödel's Incompleteness Theorems, showcasing self-reference in formal systems. It elucidates Rosser's stronger disproof concept and its impact on system consistency. Additionally, it links Rosser's Theorem to the halting problem's unsolvability, underlining computational insights and Gödel's lasting influence on computability theory.

Cognate: Readable and concise concatenative programming

Cognate: Readable and concise concatenative programming

Cognate is a concise, readable concatenative programming language emphasizing simplicity and flexibility. It supports operators as functions, stack evaluation, control flow statements, list manipulation, recursion, and mutable variables through boxes.

Denotational Semantics and a Fast Interpreter for jq (2023)

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.

Category Theory Using String Diagrams (2014)

Category Theory Using String Diagrams (2014)

Daniel Marsden's paper introduces a new method in category theory using string diagrams. These diagrams blend calculational reasoning with type information, simplifying proofs of concepts like adjunctions and monads.

Link Icon 3 comments
By @ggm - 7 months
I've always believed knitting pattern design is programming.

People who can decompile a jumper into its instruction set amaze me. Some of them can adjust the parameter stack on the fly to fix errors, or tailor the fit, or cope with changes in the wool.

By @TaylorAlexander - 7 months
See also this open source hardware upgrade for 1980’s era computerized knitting machines:

https://ayab-knitting.com/