# 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.