ILA: Compilable Markdown for Linear Algebra

09/24/2021
by   Yong Li, et al.
0

Communicating linear algebra in written form is challenging: mathematicians must choose between writing in languages that produce well-formatted but semantically-underdefined representations such as LaTeX; or languages with well-defined semantics but notation unlike conventional math, such as C++/Eigen. In both cases, the underlying linear algebra is obfuscated by the requirements of esoteric language syntax (as in LaTeX) or awkward APIs due to language semantics (as in C++). The gap between representations results in communication challenges, including underspecified and irreproducible research results, difficulty teaching math concepts underlying complex numerical code, as well as repeated, redundant, and error-prone translations from communicated linear algebra to executable code. We introduce ILA, a language with syntax designed to closely mimic conventionally-written linear algebra, while still ensuring an unambiguous, compilable interpretation. Inspired by Markdown, a language for writing naturally-structured plain text files that translate into valid HTML, ILA allows users to write linear algebra in text form and compile the same source into LaTeX, C++/Eigen, Python/NumPy/SciPy, and MATLAB, with easy extension to further math programming environments. We outline the principles of our language design and highlight design decisions that balance between readability and precise semantics, and demonstrate through case studies the ability for ILA to bridge the semantic gap between conventionally-written linear algebra and unambiguous interpretation in math programming environments.

READ FULL TEXT

page 2

page 3

page 4

page 6

page 7

page 12

page 13

page 14

research
05/04/2019

A Denotational Engineering of Programming Languages

The book is devoted to two research areas: (1) Designing programming lan...
research
11/21/2019

The Linear Algebra Mapping Problem

We observe a disconnect between the developers and the end users of line...
research
04/22/2021

PyArmadillo: a streamlined linear algebra library for Python

PyArmadillo is a linear algebra library for the Python language, with th...
research
05/21/2019

Completeness and Incompleteness of Synchronous Kleene Algebra

Synchronous Kleene algebra (SKA), an extension of Kleene algebra (KA), w...
research
05/05/2020

A Linear Algebra Approach to Linear Metatheory

Linear typed λ-calculi are more delicate than their simply typed sibling...
research
06/06/2018

Studying the Difference Between Natural and Programming Language Corpora

Code corpora, as observed in large software systems, are now known to be...
research
01/22/2021

CutLang V2: towards a unified Analysis Description Language

We will present the latest developments in CutLang, the runtime interpre...

Please sign up or login with your details

Forgot password? Click here to reset