Skip to main content
AI-R Info

Main navigation

  • Home
  • Projects
    • KNOWLEDGE-BASED INTELLIGENT AGENT
    • KNOWLEDGE BASE AS A DATA STORAGE OF INTELLIGENT AGENT
User account menu
  • Log in

Breadcrumb

  1. Home

APPENDIX B

Why Julia [12] ?

Modern language design and compilation techniques eliminate the performance trade-off and provide a single environment that is productive enough for prototyping and efficient enough for deploying high-performance applications.
The Julia programming language fulfills this role: it is a flexible dynamic language suitable for scientific and numerical computing, with performance comparable to traditional statically typed languages.

Julia has optional typing, multiple dispatching, and performance achieved through type inference and JIT compilation implemented with LLVM.

Julia is multi-paradigmatic, combining features of imperative, functional and object-oriented programming. Julia provides the same lightness and expressiveness for high-level numerical computations as languages such as R, MATLAB, and Python, but also supports general programming. To achieve this, Julia draws on the lineage of mathematical programming languages, but also borrows heavily from popular dynamic languages, including Lisp, Perl, Python, Lua, and Ruby.

What do we get?
  • Free and open source (MIT license)
  • User-defined types are as fast and compact as built-in types
  • No need to vectorize the code for performance; devectorized code is fast
  • Designed for parallelism and distributed computing
  • Easy "green" streaming (coroutines)
  • Unobtrusive but powerful type system
  • Elegant and extensible conversions and promotions for numeric and other types
  • Effective Unicode support, including but not limited to UTF-8
  • Calling C functions directly (no wrappers or special APIs required)
  • Powerful shell-like capabilities to manage other processes
  • Lisp-like macros and other metaprogramming tools
Pluto notebook.

Pluto isn't just about writing a final document, it's about experimenting and exploring:

  • reactive - when changing a function or variable, Pluto automatically updates all dependent cells;
  • lightweight - written in pure Julia and easy to install (only Julia and browser);
  • simple - no hidden workspace state, friendly user interface.

Next
 

Language switcher

  • English
  • Ukrainian
RSS feed

© Yurii Kharchenko. 2024

email: info@ai-r.info

Powered by Drupal