mpl/whitepaper/README.md
developtheweb 468a8045c7 Sync all reference docs with the grammar
- 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
2026-07-09 03:19:43 -04:00

93 lines
No EOL
3.2 KiB
Markdown

# MPL Whitepaper
This directory contains the comprehensive academic whitepaper for the Mathematical Programming Language (MPL).
## Contents
### Main Documents
1. **`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
2. **`mpl-whitepaper.tex`**
- Conference-ready LaTeX version (IEEE format)
- Properly formatted for POPL/OOPSLA submission
- Includes Unicode math support
- Custom MPL syntax highlighting
3. **`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
## Whitepaper Structure
1. **Abstract** - Problem, solution, and impact summary
2. **Introduction** - Cultural barriers and research questions
3. **Related Work** - APL, Unicode languages, cognitive design
4. **Design Principles** - Universality, expressiveness, practicality
5. **Language Design** - Core operators and effect extensions
6. **Implementation** - ANTLR grammar and parser details
7. **Evaluation** - Completeness, performance, accessibility
8. **Case Studies** - Concurrency, resources, metaprogramming
9. **Real-World Applications** - Scientific, data, web, ML, systems
10. **Limitations & Future Work** - Current gaps and research directions
11. **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
```bash
# 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:
```bibtex
@article{mpl2025,
title={Mathematical Programming Languages: Achieving Cognitive Universality Through Unicode-Based Syntax},
author={[Author Name]},
journal={Preprint},
year={2025}
}
```