Common Optimizations for Levenshtein Edit Distance
Making a Pratt Parser Generator Part 1
Defining the Wolfram Language Part 2: Operator Properties
In this third installment of our n part series, “Defining the Wolfram Language,” we begin to study the properties, namely the arity, affix, associativity, and precedence, of the Mathematica operators we found in Part 1. If we ended Part 1 proud of our accomplishment—perhaps even a little smug—then we will get reacquainted with our humility in this article.
Generalizing PEMDAS: What is an operator?
Defining the Wolfram Language Part 1: Finding Operators
Finding All Wolfram Language Operators
In this second article, Part 1 of an n part series on Defining the Wolfram Language, we start getting our hands dirty hunting down every single operator in Mathematica and each operator’s linguistic properties. To my knowledge, nobody outside of Wolfram has created such an exhaustive list before.
Defining the Wolfram Language Part 0: The Challenge
What is the definition of the Wolfram Language? This is the first in a series of articles attempting to answer this question.
The grammar of mathematical expressions
Using computers to do automatic translation has a long and rich history in computer science. A course in compiler construction is a veritable survey of topics in computer science running the gamut from formal languages to data structures and algorithms to Hopfcroft’s algorithm to minimize deterministic automata. One of the first things a student learns in a compiler construction course is how to formally describe the grammar of a language using (extended) Backus–Naur form (EBNF).
Using Mathematica From Python
In which I show you how to programmatically interface with a Mathematica kernel from Python.