Skip to content

Latest commit

 

History

History
102 lines (80 loc) · 7.02 KB

Programming-Paradigms.md

File metadata and controls

102 lines (80 loc) · 7.02 KB

  • Turing.jl :: Probabilistic programming in Julia.

  • IniFile.jl :: Reading and writing Windows-style INI files.
  • JLD.jl :: HDF5 interface for the Julia language to save and load julia variables while preserving native types.
  • JSON.jl :: JSON parsing and printing.

Programming Paradigms

Packages and resources that support various programming styles, Software Architecture and CS paradigms.

  • BitRegs.jl :: Julia package for bit and register operations.
  • ChainMap.jl :: Combine chaining and mapping.
  • InterVal.jl :: Intervals are inter-values, an interval is its values and their intra-values.
  • LilKanren.jl :: A collection of Kanren implementations in Julia. miniKanren is an embedded Domain Specific Language for logic programming.
RESOURCES

Functional Programming

Grammatical Evolution

  • Evolution.jl :: Evolutionary Computation in Julia.
  • GrammaticalEvolution :: An evolutionary technique that is similar to Genetic Programming (GP). However, unlike GP, it doesn't suffer the same problems with fixing damaged trees. Instead, it uses a grammar that is combined with a genome of integers. The genome is used to select which branch to follow for or-rules.

Macros

  • RegexVar.jl :: A macro to fill variables straight from the string.
  • Reexport.jl :: Julia macro for re-exporting one module from another.
  • MacroUtils.jl :: Collection of Julia macros.
  • MetaMerge.jl :: Merge functions with identical names from distinct modules.
  • TimeIt.jl :: Timeit macro for Julia.
  • Unroll.jl :: A julia macro for unrolling conditional for loops.
  • UTime.jl :: Universal Time using local system timezone.
Resources

Multiple Dispatch

Resources

Multi-Threading

  • OCCA.jl :: Julia interface into OCCA2 by @tcew, an extensible multi-threading programming API written in C++.
  • TiledIteration.jl :: Julia package to facilitate writing mulithreaded, multidimensional, cache-efficient code.

Libs for memory management (malloc), bounds checking, literals and other base program analysis options.

  • CallGraphs.jl :: A package for analyzing source-code callgraphs, particularly of Julia's src/ directory. The main motivation for this package was to aid in finding all functions that might trigger garbage collection by directly or indirectly calling jl_gc_collect; however, the package has broader uses.
  • dataflow.jl :: Introduction to dataflow analysis using julia.
  • ExpressionPatterns.jl :: Match, Destructure and Dispatch on expressions.
  • LRUCache.jl :: An implementation of a Least Recently Used (LRU) Cache.
  • PAPI.jl :: Julia bindings to the Performance Application Programming Interface (PAPI).

Reactive Programming

  • Reactive.jl :: A package for reactive programming in Julia.

Serialization

  • Spock.jl :: An interface to Apache Spark for the Julia language.

Style Guidelines