{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,16]],"date-time":"2026-06-16T09:25:31Z","timestamp":1781601931622,"version":"3.54.5"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1518844, 1544542"],"award-info":[{"award-number":["1518844, 1544542"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100007297","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["503353"],"award-info":[{"award-number":["503353"]}],"id":[{"id":"10.13039\/100007297","id-type":"DOI","asserted-by":"publisher"}]},{"name":"European Research Council","award":["695412"],"award-info":[{"award-number":["695412"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>Julia is a programming language for the scientific community that combines features of productivity languages, such as Python or MATLAB, with characteristics of performance-oriented languages, such as C++ or Fortran. Julia's productivity features include: dynamic typing, automatic memory management, rich type annotations, and multiple dispatch. At the same time, Julia allows programmers to control memory layout and leverages a specializing just-in-time compiler to eliminate much of the overhead of those features. This paper details the design choices made by the creators of Julia and reflects on the implications of those choices for performance and usability.<\/jats:p>","DOI":"10.1145\/3276490","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":84,"title":["Julia: dynamism and performance reconciled by design"],"prefix":"10.1145","volume":"2","author":[{"given":"Jeff","family":"Bezanson","sequence":"first","affiliation":[{"name":"Julia Computing, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jiahao","family":"Chen","sequence":"additional","affiliation":[{"name":"Capital One, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Benjamin","family":"Chung","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Stefan","family":"Karpinski","sequence":"additional","affiliation":[{"name":"Julia Computing, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Viral B.","family":"Shah","sequence":"additional","affiliation":[{"name":"Julia Computing, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Czech Technical University, Czechia \/ Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Lionel","family":"Zoubritzky","sequence":"additional","affiliation":[{"name":"ENS, France \/ Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165188"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048140"},{"key":"e_1_2_2_3_1","volume-title":"European Conference on Object-Oriented Programming (ECOOP).","author":"Anderson Todd A.","year":"2017","unstructured":"Todd A. Anderson , Hai Liu , Lindsey Kuper , Ehsan Totoni , Jan Vitek , and Tatiana Shpeisman . 2017 . Parallelizing Julia with a Non-Invasive DSL . In European Conference on Object-Oriented Programming (ECOOP). Todd A. Anderson, Hai Liu, Lindsey Kuper, Ehsan Totoni, Jan Vitek, and Tatiana Shpeisman. 2017. Parallelizing Julia with a Non-Invasive DSL. In European Conference on Object-Oriented Programming (ECOOP)."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1137\/141000671"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640098"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/28697.28700"},{"key":"e_1_2_2_7_1","volume-title":"Object-Oriented Programming, Functional Programming and R. Statist. Sci. 2","author":"Chambers John","year":"2014","unstructured":"John Chambers . 2014. Object-Oriented Programming, Functional Programming and R. Statist. Sci. 2 ( 2014 ). Issue 29. John Chambers. 2014. Object-Oriented Programming, Functional Programming and R. Statist. Sci. 2 (2014). Issue 29."},{"key":"e_1_2_2_8_1","doi-asserted-by":"crossref","unstructured":"Philippe Charles Christian Grothoff Vijay Saraswat Christopher Donawa Allan Kielstra Kemal Ebcioglu Christoph von Praun and Vivek Sarkar. 2005. X10: An Object-oriented Approach to Non-uniform Cluster Computing. (2005).  Philippe Charles Christian Grothoff Vijay Saraswat Christopher Donawa Allan Kielstra Kemal Ebcioglu Christoph von Praun and Vivek Sarkar. 2005. X10: An Object-oriented Approach to Non-uniform Cluster Computing. (2005).","DOI":"10.1145\/1103845.1094852"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133872"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_4"},{"key":"e_1_2_2_11_1","unstructured":"Benjamin Chung and Paley Li. 2017. Towards Typing Julia. In The -2th Workshop on New Object-Oriented Languages (NOOL).  Benjamin Chung and Paley Li. 2017. Towards Typing Julia. In The -2th Workshop on New Object-Oriented Languages (NOOL)."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/316686.316693"},{"key":"e_1_2_2_13_1","volume-title":"The Common Lisp Object System: An Overview. In European Conference on Object-Oriented Programming (ECOOP).","author":"DeMichiel Linda","year":"1987","unstructured":"Linda DeMichiel and Richard Gabriel . 1987 . The Common Lisp Object System: An Overview. In European Conference on Object-Oriented Programming (ECOOP). Linda DeMichiel and Richard Gabriel. 1987. The Common Lisp Object System: An Overview. In European Conference on Object-Oriented Programming (ECOOP)."},{"key":"e_1_2_2_14_1","unstructured":"Facebook. 2016. Hack. (2016). http:\/\/hacklang.org .  Facebook. 2016. Hack. (2016). http:\/\/hacklang.org ."},{"key":"e_1_2_2_16_1","volume-title":"Semantic Subtyping. In Symposium on Logic in Computer Science (LICS).","author":"Frisch Alain","year":"2002","unstructured":"Alain Frisch , Giuseppe Castagna , and V\u00e9ronique Benzaken . 2002 . Semantic Subtyping. In Symposium on Logic in Computer Science (LICS). Alain Frisch, Giuseppe Castagna, and V\u00e9ronique Benzaken. 2002. Semantic Subtyping. In Symposium on Logic in Computer Science (LICS)."},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2291"},{"key":"e_1_2_2_18_1","unstructured":"Isaac Gouy. 2018. The Computer Language Benchmarks Game. (2018). https:\/\/benchmarksgame-team.pages.debian.net\/ benchmarksgame  Isaac Gouy. 2018. The Computer Language Benchmarks Game. (2018). https:\/\/benchmarksgame-team.pages.debian.net\/ benchmarksgame"},{"key":"e_1_2_2_19_1","doi-asserted-by":"crossref","unstructured":"Brian Hackett and Shu-yu Guo. 2012. Fast and Precise Hybrid Type Inference for JavaScript. (2012) Brian Hackett and Shu-yu Guo. 2012. Fast and Precise Hybrid Type Inference for JavaScript. (2012)","DOI":"10.1145\/2254064.2254094"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178478"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2576195.2576205"},{"key":"e_1_2_2_22_1","volume-title":"LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. In Symposium on Code Generation and Optimization (CGO).","author":"Lattner Chris","year":"2004","unstructured":"Chris Lattner and Vikram Adve . 2004 . LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. In Symposium on Code Generation and Optimization (CGO). Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. In Symposium on Code Generation and Optimization (CGO)."},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286979"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_5"},{"key":"e_1_2_2_25_1","unstructured":"Miles Lubin and Iain Dunning. 2013. Computing in Operations Research using Julia. In INFORMS Journal on Computing.  Miles Lubin and Iain Dunning. 2013. Computing in Operations Research using Julia. In INFORMS Journal on Computing."},{"key":"e_1_2_2_26_1","volume-title":"version 9.4","author":"MATLAB.","unstructured":"MATLAB. 2018. version 9.4 . The MathWorks Inc., Natick, Massachusetts . MATLAB. 2018. version 9.4. The MathWorks Inc., Natick, Massachusetts."},{"key":"e_1_2_2_27_1","unstructured":"Microsoft. 2016. TypeScript \u2013 Language Specification. (2016).  Microsoft. 2016. TypeScript \u2013 Language Specification. (2016)."},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449808"},{"key":"e_1_2_2_29_1","volume-title":"The Java HotSpot Server Compiler. In Symposium on Java Virtual Machine Research and Technology (JVM). http:\/\/dl.acm.org\/citation.cfm?id=1267847","author":"Paleczny Michael","year":"2001","unstructured":"Michael Paleczny , Christopher Vick , and Cliff Click . 2001 . The Java HotSpot Server Compiler. In Symposium on Java Virtual Machine Research and Technology (JVM). http:\/\/dl.acm.org\/citation.cfm?id=1267847 .1267848 Michael Paleczny, Christopher Vick, and Cliff Click. 2001. The Java HotSpot Server Compiler. In Symposium on Java Virtual Machine Research and Technology (JVM). http:\/\/dl.acm.org\/citation.cfm?id=1267847.1267848"},{"key":"e_1_2_2_30_1","volume-title":"R: A Language and Environment for Statistical Computing","author":"Team R Core","year":"2008","unstructured":"R Core Team . 2008 . R: A Language and Environment for Statistical Computing . R Foundation for Statistical Computing . http:\/\/www.R-project.org R Core Team. 2008. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. http:\/\/www.R-project.org"},{"key":"e_1_2_2_31_1","unstructured":"Allison Randal Dan Sugalski and Leopold Toetsch. 2003. Perl 6 and Parrot Essentials. O\u2019Reilly.  Allison Randal Dan Sugalski and Leopold Toetsch. 2003. Perl 6 and Parrot Essentials. O\u2019Reilly."},{"key":"e_1_2_2_32_1","volume-title":"Topics in Advanced Language Implementation","author":"Shivers Olin","unstructured":"Olin Shivers . 1990. Data-flow Analysis and Type Recovery in Scheme . In Topics in Advanced Language Implementation . MIT Press . Olin Shivers. 1990. Data-flow Analysis and Type Recovery in Scheme. In Topics in Advanced Language Implementation. MIT Press."},{"key":"e_1_2_2_33_1","volume-title":"Gradual Typing for Functional Languages. In Scheme and Functional Programming Workshop. http: \/\/ecee.colorado.edu\/~siek\/pubs\/pubs\/2006\/siek06_gradual.pdf .","author":"Siek Jeremy","year":"2006","unstructured":"Jeremy Siek . 2006 . Gradual Typing for Functional Languages. In Scheme and Functional Programming Workshop. http: \/\/ecee.colorado.edu\/~siek\/pubs\/pubs\/2006\/siek06_gradual.pdf . Jeremy Siek. 2006. Gradual Typing for Functional Languages. In Scheme and Functional Programming Workshop. http: \/\/ecee.colorado.edu\/~siek\/pubs\/pubs\/2006\/siek06_gradual.pdf ."},{"key":"e_1_2_2_34_1","volume-title":"Encyclopedia of Parallel Computing.","author":"Steele Guy","unstructured":"Guy Steele , Eric Allen , David Chase , Christine Flood , Victor Luchangco , Jan-Willem Maessen , and Sukyoung Ryu . 2011. Fortress (Sun HPCS Language). In Encyclopedia of Parallel Computing. Guy Steele, Eric Allen, David Chase, Christine Flood, Victor Luchangco, Jan-Willem Maessen, and Sukyoung Ryu. 2011. Fortress (Sun HPCS Language). In Encyclopedia of Parallel Computing."},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370825"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176617.1176755"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328486"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/182590.182485"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509578.2509581"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276483"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276490","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276490","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276490","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:01:58Z","timestamp":1750208518000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276490"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":39,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276490"],"URL":"https:\/\/doi.org\/10.1145\/3276490","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}