Julia: to Lisp or not to Lisp?

Описание к видео Julia: to Lisp or not to Lisp?

ELS 2016, 9th European Lisp Symposium, 9-10 May 2016,
Department of Computer Science, AGH University of Science and Technology, Kraków, Poland.

Stefan Karpinski, Julia Computing and New York University, New York, USA.

Julia is a general purpose dynamic language, designed to make numerical computing fast and convenient. Many aspects of Julia should be quite familiar since they are "stolen" straight from Lisp: it’s expression-oriented, lexically scoped, has closures, coroutines, and macros that operate on code as data. But Julia departs from the Lisp tradition in other ways. Julia has syntax – lots of it. Macro invocations look different than function calls. Some dynamic behaviors are sacrificed to make programs easier to analyze (for both humans and compilers), especially where it allows simpler, more reliable program optimization.

Julia’s most distinctive feature is its emphasis on creating lightweight types and defining their behavior in terms of generic functions. While many Lisps support multiple dispatch as an opt-in feature, in Julia all function are generic by default. Even basic operators like ‘+‘ are generic, and primitive types like ‘Int‘ and ‘Float64‘ are defined in the standard library, and their behavior is specified via multiple dispatch. A combination of aggressive method specialization, inlining and data-flow-based type inference, allow these layers of abstraction and dispatch to be eliminated when it counts – Julia generally has performance comparable to static languages. In the tradition of the great Lisp hackers, this talk will include lots of live coding in the REPL, with all the excitement, and possibility of failure entailed.

Комментарии

Информация по комментариям в разработке