Programming-Paradigms.md 12 KB


Org-JuliaLang

  • 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.

Data Types

  • ASCIIByte.jl :: Julia package to deal with Characters of 8 bits.
  • AutoFormat.jl
  • BigRationals.jl :: A BigRational package for Julia using GMP.
  • Codecs.jl :: Common data encoding algorithms.
  • DanaTypes.jl :: Types for continuous variables or parameters.
  • DictViews.jl :: KeysView and ValuesView types for dynamic low-overhead views into the entries of dictionaries.
  • DotPlusInheritance.jl :: Expression parser that simulates type inheritance.
  • EMLTranslator.jl :: Adds Inheritance to julia composite type.
  • FixedPointNumbers.jl :: This library exports fixed-point number types. A fixed-point number represents a fractional, or non-integral, number. In contrast with the more widely known floating-point numbers, fixed-point numbers have a fixed number of digits (bits) after the decimal (radix) point. They are effectively integers scaled by a constant factor.
  • Formatting.jl :: A Julia package to provide Python-like formatting support.
  • FreeTypeAbstraction.jl :: A Julian abstraction layer over FreeType.jl.
  • frange
  • ImagineFormat.jl :: Read .imagine file formats in Julia.
  • jenks.jl
  • julia-prettyshow :: A module to provide simple pretty printing facilities with base functionality for indentation etc, and a pshow (pretty show) implementation for julia ASTs.
  • LHEF.jl :: Quick and dirty implementation of the Les Houches Event Format, for particle Physics, in terms of Fortran commonblocks where the information is embedded in a minimal XML-style structure.
  • MacroTools.jl :: A library providing helpful tools for writing macros, notably a very simple templating system with some functions.
  • Modifyfield.jl :: It creates functions to modify immutable fields of a composite type inside a container.
  • MonkeyString.jl :: Fast string implementation inspired by SpiderMonkey.
  • MPFI.jl :: A MPFI wrapper for Julia.
  • MutableStrings.jl :: Mutable string types for Julia.
  • MUtils.jl :: channels(), tspaces(), kvspaces() and more.
  • Netpbm.jl :: Load and save Netpbm images in Julia. The Netpbm format is a graphics format using the extensions portable pixmap format (PPM), the portable graymap format (PGM) and the portable bitmap format (PBM), collectively referred as the portable anymap format (PNM).
  • ReTerms.jl :: Package providing abstract random-effects terms and specific types.
  • Ratios.jl :: Faster Rational-like types for Julia.
  • Scalar.jl :: Scalar Types.
  • SimpleStructs.jl :: Easy to use struct definition with defaults and value constraints, as well as auto-defined user-friendly constructors.
  • [StringDistances.jl](https://github.com/matthieugomez/StringDistances.jl] :: String Distances in Julia.
  • TexExtensions.jl :: Tex Pretty printing of Julia Base types.
  • Units.jl :: Infrastructure for handling physical units for the Julia programming language.
  • YAML.jl :: A flexible data serialization format that is designed to be easily read and written by human beings.

Type Parameters

Resources

Programming Paradigms

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

  • BitRegs.jl :: Julia package for bit and register operations.
  • 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.
  • Programming Language Theory :: Mathematics, Compilers, Functional Programming, and other papers.

Control Flow

Double Dispatch

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.

Meta Programming

Resources

Multi-Threading

  • OCCA.jl :: Julia interface into OCCA2 by @tcew, an extensible multi-threading programming API written in C++.

Program Analysis

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

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

Serialization

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

Style Guidelines