PLDB
Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon

Julia

Julia

Julia is a pl created in 2012 by Jeff Bezanson and Alan Edelman and Stefan Karpinski and Viral B. Shah.

#43on PLDB 10Years Old 25.1kUsers
22Books 36Papers 54kRepos

Try now: Riju · TIO

Julia is a high-level dynamic programming language designed to address the needs of high-performance numerical analysis and computational science, without the typical need of separate compilation to be fast, while also being effective for general-purpose programming, web use or as a specification language. Distinctive aspects of Julia's design include a type system with parametric polymorphism and types in a fully dynamic programming language and multiple dispatch as its core programming paradigm. It allows concurrent, parallel and distributed computing, and direct calling of C and Fortran libraries without glue code. Read more on Wikipedia...


Example from Riju:
println("Hello, world!")
Example from hello-world:
println("Hello World")
Example from the Hello World Collection:
# Hello world in Julia println("Hello, World!")
Example from Linguist:
#!/usr/bin/env julia # From https://github.com/JoshCheek/language-sampler-for-fullpath/blob/b766dcdbd249ec63516f491390a75315e78cba95/julia/fullpath help_screen = """ usage: fullpath *[relative-paths] [-c] Prints the fullpath of the paths If no paths are given as args, it will read them from stdin If there is only one path, the trailing newline is omitted The -c flag will copy the results into your pasteboard """ help = false copy = false dir = pwd() paths = [] for arg = ARGS if arg == "-h" || arg == "--help" help = true elseif arg == "-c" || arg == "--copy" copy = true elseif arg != "" push!(paths, arg) end end if help print(help_screen) exit() end function notempty(string) return !isempty(string) end if length(paths) == 0 paths = filter(notempty, map(chomp, readlines())) end function print_paths(stream, paths) if length(paths) == 1 path = paths[1] print(stream, "$dir/$path") else for path = paths println(stream, "$dir/$path") end end end if copy read, write, process = readandwrite(`pbcopy`) print_paths(write, paths) close(write) end print_paths(STDOUT, paths)
Example from Wikipedia:
julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable syntax!") Hello world! I'm on cloud 9 as Julia supports recognizable syntax!

Keywords in Julia

begin while if for try return break continue function macro quote let local global const do struct abstract typealias bitstype type immutable module baremodule using import export importall end else catch finally true false

Language features

Feature Supported Example Token
Binary Literals
# 0b[01]+((_[01]+)+)?
Floats
# (\d+((_\d+)+)?\.(?!\.)(\d+((_\d+)+)?)?|\.\d+((_\d+)+)?)([eEf][+-]?[0-9]+)?
Hexadecimals
# 0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?
Octals
# 0o[0-7]+((_[0-7]+)+)?
Conditionals
Functions
Constants
While Loops
Line Comments
# A comment
#
Module Pattern
module MyModule
using Lib

using BigLib: thing1, thing2

import Base.show

export MyType, foo

struct MyType
    x
end

bar(x) = 2x
foo(a::MyType) = bar(a.x) + 1

show(io::IO, a::MyType) = print(io, "MyType $(a.x)")
end
Pipes
[1,2,3] |> (y -> f(3, y))
Mixins
# Including the same code in different modules provides mixin-like behavior.
module Normal
include("mycode.jl")
end

module Testing
include("safe_operators.jl")
include("mycode.jl")
end
File Imports
# Files and file names are mostly unrelated to modules; modules are associated only with module expressions.
# One can have multiple files per module, and multiple modules per file:
using MyModule
using MyModule: x, p
import MyModule
import MyModule.x, MyModule.p
import MyModule: x, p
module Foo
include("file1.jl")
include("file2.jl")
end
Print() Debugging
print("hello world")
println
Integers
80766866
Booleans true false
Garbage Collection
MultiLine Comments
#=
A comment.
=#
#= =#
Comments
# This is a comment
Unicode Identifers
δ = 0.00001
Multiple Dispatch
collide_with(x::Asteroid, y::Asteroid) = ... # deal with asteroid hitting asteroid
collide_with(x::Asteroid, y::Spaceship) = ... # deal with asteroid hitting spaceship
collide_with(x::Spaceship, y::Asteroid) = ... # deal with spaceship hitting asteroid
collide_with(x::Spaceship, y::Spaceship) = ... # deal with spaceship hitting spaceship
Strings
"hello world"
"
Semantic Indentation ϴ

Books about Julia from ISBNdb

title authors year publisher
The Little Book of Julia Algorithms: A workbook to develop fluency in Julia programming Sengupta, Ahan and Lau, William 2020 SAV Publishing
Julia Programming for Operations Research Kwon, Changhyun 2019 Independently published
Beginning Julia Programming: For Engineers and Scientists Nagar, Sandeep 2017 Apress
Julia Quick Syntax Reference: A Pocket Guide for Data Science Programming Lobianco, Antonello 2019 Apress
Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond, 2nd Edition Sengupta, Avik 2019-06-10T00:00:01Z Packt Publishing
Tanmay Teaches Julia for Beginners: A Springboard to Machine Learning for All Ages Bakshi, Tanmay 2019 McGraw-Hill Education TAB
Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond, 2nd Edition Sengupta, Avik 2019 Packt Publishing
Julia Programming Projects: Learn Julia 1.x by building apps for data analysis, visualization, machine learning, and the web Salceanu, Adrian 2018 Packt Publishing
Julia 1.0 Programming Complete Reference Guide: Discover Julia, a high-performance language for technical computing Balbaert, Ivo and Salceanu, Adrian 2019 Packt Publishing
Julia 1.0 Programming Complete Reference Guide: Discover Julia, a high-performance language for technical computing Balbaert, Ivo and Salceanu, Adrian 2019 Packt Publishing
Julia Programming Projects: Learn Julia 1.x by building apps for data analysis, visualization, machine learning, and the web Salceanu, Adrian 2018 Packt Publishing
Julia 1.0 Programming: Dynamic and high-performance programming to build fast scientific applications, 2nd Edition Balbaert, Ivo 2018 Packt Publishing
Tanmay Teaches Julia for Beginners: A Springboard to Machine Learning for All Ages Bakshi, Tanmay 2019 McGraw-Hill Education TAB
Julia 1.0 Programming Cookbook: Over 100 numerical and distributed computing recipes for your daily data science workflow Kaminski, Bogumil and Szufel, Przemyslaw 2018-11-29T00:00:01Z Packt Publishing
Julia High Performance Sengupta, Avik 2016 Packt Publishing
Hands-On Julia Programming: An Authoritative Guide to the Production-Ready Systems in Julia (English Edition) Dash, Sambit Kumar 2021 BPB Publications
Julia 1.0 Programming: Dynamic and high-performance programming to build fast scientific applications, 2nd Edition Balbaert, Ivo 2018 Packt Publishing
Julia Programming for Operations Research: A Primer on Computing Kwon, Changhyun 2016 CreateSpace Independent Publishing Platform
Julia Cookbook Rohit, Jalem Raj 2016 Packt Publishing
Julia 1.0 Programming Cookbook: Over 100 numerical and distributed computing recipes for your daily data science workflow Kamiński, Bogumił and Szufel, Przemysław 2018 Packt Publishing
Beginning Julia Programming: For Engineers and Scientists Nagar, Sandeep 2017-11-27T00:00:01Z Apress
Numerical Linear Algebra: A Concise Introduction with MATLAB and Julia (Springer Undergraduate Mathematics Series) Bornemann, Folkmar 2018 Springer

Publications about Julia from Semantic Scholar

title authors year citations influentialCitations
Optim: A mathematical optimization package for Julia P. K. Mogensen and A. N. Riseth 2018 198 8
Effective Extensible Programming: Unleashing Julia on GPUs Tim Besard and Christophe Foket and B. De Sutter 2017 78 4
Nemo/Hecke: Computer Algebra and Number Theory Packages for the Julia Programming Language C. Fieker and W. Hart and Tommy Hofmann and Fredrik Johansson 2017 61 5
Julia for robotics: simulation and real-time control in a high-level programming language T. Koolen and R. Deits 2019 28 0
ToQ.jl: A high-level programming language for D-Wave machines based on Julia D. O'Malley and V. Vesselinov 2016 27 3
Gridap: An extensible Finite Element toolbox in Julia S. Badia and F. Verdugo 2020 25 1
Systems Modeling and Programming in a Unified Environment Based on Julia H. Elmqvist and T. Henningsson and M. Otter 2016 25 2
Makie.jl: Flexible high-performance data visualization for Julia S. Danisch and Julius Krumbiegel 2021 19 1
GaussianProcesses.jl: A Nonparametric Bayes Package for the Julia Language Jamie Fairbrother and C. Nemeth and M. Rischard and Johanni Brea and Thomas Pinder 2018 13 1
Illustrating the Benefits of Openness: A Large-Scale Spatial Economic Dispatch Model Using the Julia Language Jens Weibezahn and M. Kendziorski 2019 12 0
A New Kid on the Block: Application of Julia to Hartree-Fock Calculations. David L. Poole and Jorge L. Galvez Vallejo and M. Gordon 2020 8 0
Efficient Stochastic Programming in Julia Martin Biel and M. Johansson 2019 8 1
JuPOETs: a constrained multiobjective optimization approach to estimate biochemical model ensembles in the Julia programming language D. Bassen and Michael Vilkhovoy and Mason Minot and J. Butcher and J. Varner 2016 8 1
Experimental Multi-threading Support for the Julia Programming Language T. Knopp 2014 7 0
BioStructures.jl: read, write and manipulate macromolecular structures in Julia Joe G. Greener and Joel Selvaraj and Ben Ward 2020 6 0
NetworkDynamics.jl - Composing and simulating complex networks in Julia Michael Q. Lindner and Lucas Lincoln and Fenja Drauschke and J. M. Koulen and Hannes Würfel and A. Plietzsch and F. Hellmann 2020 6 0
MRIReco.jl: An MRI reconstruction framework written in Julia T. Knopp and M. Grosser 2021 6 0
Performance of Julia for High Energy Physics Analyses M. Stanitzki and J. Strube 2020 6 2
Metatheory.jl: Fast and Elegant Algebraic Computation in Julia with Extensible Equality Saturation Alessandro Cheli 2021 4 0
EBIC.JL: an efficient implementation of evolutionary biclustering algorithm in Julia Pawel Renc and P. Orzechowski and A. Byrski and Jaroslaw Was and J. Moore 2021 3 0
WordTokenizers.jl: Basic tools for tokenizing natural language in Julia Ayush Kaushal and Lyndon White and Mike Innes and Rohit Kumar 2020 3 0
The JuliaConnectoR: a functionally oriented interface for integrating Julia in R S. Lenz and Maren Hackenberg and H. Binder 2020 2 0
Archmodels.Jl: Estimating Arch Models in Julia S. Broda and Marc S. Paolella 2020 2 1
Comparing Julia to Performance Portable Parallel Programming Models for HPC Wei-Chen Lin and S. McIntosh-Smith 2021 2 0
Statistically significant performance testing of Julia scientific programming language M. N. Gevorkyan and A. V. Demidova and A. Korolkova and D. Kulyabov 2019 2 0
Plots.jl - a user extendable plotting API for the julia programming language Simon Christ and D. Schwabeneder and Christopher Rackauckas 2022 2 0
Julia Programming Language Benchmark Using a Flight Simulation R. Sells 2020 2 0
"JlBox v1.0: A Julia based mixed-phase atmospheric chemistry
box-model" La-mei Huang and D. Topping 2020 1 1
Rapid prototyping of evolution-driven biclustering methods in Julia Pawel Renc and P. Orzechowski and A. Byrski and Jaroslaw Was and J. Moore 2021 1 0
RADIv1: a non-steady-state early diagenetic model for ocean sediments in Julia and MATLAB/GNU Octave Olivier Sulpis and M. Humphreys and M. Wilhelmus and D. Carroll and W. Berelson and D. Menemenlis and Jack Middelburg and J. Adkins 2021 1 0
AuditoryStimuli.jl: A Julia package for generating real-time auditory stimuli R. Luke 2021 1 0
Application of a numerical-analytical approach in the process of modeling differential equations in the Julia language A. V. Fedorov and A. O. Masolova and A. Korolkova and D. S. Kulyabov 2020 1 0
Julia Language in Computational Mechanics: A New Competitor Lei Xiao and Gang Mei and Ning Xi and F. Piccialli 2021 1 0
The Usage of Julia Programming in Grounding Grids Simulations : An alternative to MATLAB and Python Rodolfo A. R. Moura and M. Schroeder and S. J. S. Silva and E. Nepomuceno and P. H. N. Vieira and A. Lima 2019 1 0
An Overview of the Julia Programming Language Tyler A. Cabutto and Sean P. Heeney and S. Ault and Guifen Mao and Jin Wang 2018 1 0
objective-c.html · julia.html · cuda.html

View source

PLDB - Build the next great programming language · v2022 · Day 33 · Docs · Build · Acknowledgements · Traffic Today · Traffic Trends · Mirrors · GitHub · feedback@pldb.com