- precedence.csv regenerated to the actual 14-level chain (postfix and prefix levels, guarded alternatives, definition vs assignment) - glyph-escapes.md regenerated from the lexer: 73 glyphs, exactly one ASCII escape each, verified code points; M1-deferred symbols listed separately; add \middot so every glyph has an escape - math_prog_lang.md: M0/M1 symbol split, canonical handler arrow, one-role semicolon, real precedence table and brace-disambiguation rules; the ten example programs are now embedded verbatim and CI-parsed - Whitepaper (md + tex + appendices): every mpl code block parses or is re-fenced as an explicitly-labelled M1+ design sketch; symbol tables replaced by a pointer to glyph-escapes.md; unbuilt tooling and unmeasured claims reworded as planned/envisioned - docs/ARCHITECTURE.md: status preamble, real grammar excerpt, planned sections labelled as such - DocumentationTest now also covers math_prog_lang.md and the whitepaper - CHANGELOG and DECISIONS.md updated |
||
|---|---|---|
| .. | ||
| mpl-whitepaper-appendices.md | ||
| mpl-whitepaper.md | ||
| mpl-whitepaper.tex | ||
| README.md | ||
MPL Whitepaper
This directory contains the comprehensive academic whitepaper for the Mathematical Programming Language (MPL).
Contents
Main Documents
-
mpl-whitepaper.md(~15 pages)- Complete academic whitepaper in Markdown format
- Suitable for online viewing and conversion to other formats
- Includes all sections from Abstract through Conclusion
- Features application sketches in 5 domains:
- Scientific Computing
- Data Processing
- Web Services
- Machine Learning
- Systems Programming
-
mpl-whitepaper.tex- Conference-ready LaTeX version (IEEE format)
- Properly formatted for POPL/OOPSLA submission
- Includes Unicode math support
- Custom MPL syntax highlighting
-
mpl-whitepaper-appendices.md- Comprehensive appendices with:
- Symbol reference (pointing to the authoritative glyph-escapes.md)
- Annotated example programs
- Grammar validation details
- Implementation details
- Pedagogy and envisioned pilot materials
- Comprehensive appendices with:
Whitepaper Structure
- Abstract - Problem, solution, and impact summary
- Introduction - Cultural barriers and research questions
- Related Work - APL, Unicode languages, cognitive design
- Design Principles - Universality, expressiveness, practicality
- Language Design - Core operators and effect extensions
- Implementation - ANTLR grammar and parser details
- Evaluation - Completeness, performance, accessibility
- Case Studies - Concurrency, resources, metaprogramming
- Real-World Applications - Scientific, data, web, ML, systems
- Limitations & Future Work - Current gaps and research directions
- Conclusion - Vision for universal programming
Key Features Documented
- 70+ Mathematical Symbols: Unicode operators, each with exactly one ASCII escape
- Effect Operators: Novel symbols for exceptions, concurrency, resources
- 24 Greek Variables: Full Greek alphabet for identifiers
- CI-Validated Grammar: Compiles with zero ANTLR errors and warnings; documented precedence
- Paradigm Coverage: Functional, imperative, concurrent, metaprogramming
Building the LaTeX Version
# Requires XeLaTeX for Unicode support
xelatex mpl-whitepaper.tex
bibtex mpl-whitepaper
xelatex mpl-whitepaper.tex
xelatex mpl-whitepaper.tex
LaTeX Requirements
- XeLaTeX: Required for Unicode support (not pdflatex)
- unicode-math package: For mathematical symbols
- fontspec package: For font configuration
- newunicodechar package: For symbol fallbacks
The LaTeX version includes fallback definitions for all MPL-specific Unicode symbols to ensure compatibility across different LaTeX installations. If symbols still don't render properly, check that Latin Modern Math font is installed.
Target Venues
- POPL (Principles of Programming Languages)
- OOPSLA (Object-Oriented Programming, Systems, Languages & Applications)
- PLDI (Programming Language Design and Implementation)
- Onward! (New ideas in programming)
Citation
When referencing this work:
@article{mpl2025,
title={Mathematical Programming Languages: Achieving Cognitive Universality Through Unicode-Based Syntax},
author={[Author Name]},
journal={Preprint},
year={2025}
}