jpfairbanks / SemanticModels.jl

A julia package for representing and manipulating model semantics
MIT License
77 stars 17 forks source link

Relevant Julia Packages #111

Open mehalter opened 5 years ago

mehalter commented 5 years ago

This is a thread to share good Julia packages relevant to SemanticModel.jl

jpfairbanks commented 5 years ago

Julia Packages with good API

  1. Differential equations
  2. LightGraphs.jl
  3. Flux.jl
  4. Data Structures
  5. Roots

Diffeq and Roots are good because they show how to use the multiple dispatch to implement stuff that is usually implemented with kwargs or class hierarchies. Datastructures and Lightgraphs are really simple apis. Distributions uses the type system to represent mathematical objects and creates a really elegant API that matches the mathematics

MetaProgramming

These packages all do something interesting with metaprogramming and could be good sources of inspiration for handling expression trees. Our code that works with Exprs is basically a macro.

  1. Stdlib https://docs.julialang.org/en/v1/manual/metaprogramming/index.html
  2. MacroTools
  3. https://juliaobserver.com/packages/MLStyle
  4. https://juliaobserver.com/packages/LispSyntax
  5. https://juliaobserver.com/packages/TypeCheck
  6. https://juliaobserver.com/packages/SimpleTraits
  7. https://juliaobserver.com/packages/Einsum
  8. https://juliaobserver.com/packages/PatternDispatch

FP

  1. https://juliaobserver.com/packages/IterTools

Modeling Frameworks

These libraries provide a modeling framwork for a certain class of models. We would want to support the models they define.

  1. ModelingToolkit
  2. Jump
  3. https://juliaobserver.com/packages/Automa x4. Query
  4. https://juliaobserver.com/packages/CombineML
  5. https://juliaobserver.com/packages/StateSpaceRoutines
jpfairbanks commented 5 years ago

This is a nice tutorial showing off some highlights. http://www.cs.toronto.edu/~jsnell/assets/julia-tutorial.pdf

jpfairbanks commented 5 years ago

This package might be useful for tracing and instrumenting for dynamic analysis https://github.com/JuliaML/ValueHistories.jl

datnamer commented 5 years ago

https://github.com/alan-turing-institute/MLJ.jl

https://julialang.org/blog/2019/05/beyond-ml-pipelines-with-mlj

Like scikitlearn on steroids

@ablaom who works on MLJ might be interested in this package.

mehalter commented 5 years ago

Lens.jl - implement lens technique for traversing AST

https://github.com/zenna/Lens.jl