Skip to content

Ant13731/compilers

Repository files navigation

The Simile Compiler

A high level, optimizing model simulation language founded on set theory!

The repository is organized as follows:

  • .archive: Older work that may still be relevant to future progress
    • implementation: Code for the first version of Simile, corresponding to the paper in docs/implementation_v2.
  • docs: Everything documentation-related: Reports, Assignments, Specifications, and Papers.
    • ADT: A Survey of Abstract Data Types (in several languages)
    • implementation_v2: Revised report for a prototype set-theory based compiler. Corresponding implementation is in .archive/implementation.
    • synt_2025: Abstract submitted to the SYNT 2025 workshop
    • term_rewriting: A Survey of Term Rewriting for Compiler Optimization
    • trs_specification: Complete TRS Specification for the Simile Compiler
  • meetings: Meeting notes for discussions involving Simile
  • notes: Research notes
    • examples: Gathered/derived model simulation examples that make use of set theory
  • packages: Python packages for Simile
    • simile_compiler: Actual contents of the compiler, from lexer to code generation
    • simile_jupyter_extention: TODO, a jupyter extension to recognize Simile syntax
    • simile_jupyter_kernel: TODO, a jupyter kernel to execute Simile
  • proposals: Proposals discussing the problems and justification of our work
  • synt_demo: Mostly a playground for messing with examples used in the SYNT 2025 demo. This will be archived after August 2.

Running Simile in Jupyter

DOES NOT WORK YET

Run:

pip install -ve packages/simile_compiler
pip install -ve packages/simile_jupyter_kernel
pip install -ve packages/simile_jupyter_extension
jupyter labextension develop --overwrite packages/simile_jupyter_extension

Check that the kernel is installed properly by running the following command without error:

jupyter console --kernel simile_kernel

Generating API Documentation

pip install pydoctor
pydoctor --make-html --docformat=google --html-output=generated/api_docs/ packages/simile_compiler/