Julia 简介

Julia 是一门通用的计算机编程语言。也就是说,可以使用符合 Julia 语言规范的代码来编写程序。这些程序可以进行纯粹的数学和科学计算、存取本地文件、通过网络收发数据,等等。

虽然 Julia 针对各种科学计算任务做了特别的设计和优化,但它也适用于通用目的的编程。

官方文档:https://docs.julialang.org/en/v1.5/

Julia编程语言

Julia特性

Julia 拥有可选的类型标注(type annotation)、多重分派机制(multiple dispatch)以及优良的性能。

Julia 还借由 LLVM 实现了类型推断和即时(JIT)编译。

Julia 是多范式的,融入了命令式、函数式和面向对象编程的特性,为高级数值计算提供了足够的易用性和表现力。

Julia 也适用于通用编程。为此,它从那些流行的动态编程语言(包括 Lisp、Perl、Python、Lua 和 Ruby)中借鉴了很多。

Julia 与典型的动态编程语言之间最大的区别:

  • Julia 的 Base 包和标准库都是由 Julia 语言编写的,包括像整数运算那样的基本操作。也就是说,Julia 实现了一定程度的自举。
  • Julia 拥有丰富的类型构造和对象描述方式,并且代码中的类型标注是可选的。
  • Julia 拥有多重分派机制。它可以根据参数类型的不同去调用衍生自同一个函数定义的不同方法,并且还可以针对不同的参数类型自动生成有效的专用代码。
  • Julia 的性能优良,它的性能表现已接近那些静态编译的编程语言(如 C 语言)。

虽然一些动态编程语言从表面上看是“无类型的”,但是它们在内部却是“有类型的”。这些内部的类型一般是在其读取代码后附加上去的。不过,由于这些语言的代码缺少类型标注,所以它们并不能向编译器明确地指示某个值的类型,甚至不能显式地提及类型。相对应地,静态编程语言虽然可以(且必须)为编译器指示值的类型,但这些类型往往只在编译时存在,并不能在运行时操纵或表示。而在 Julia 中,类型本身就是运行时的对象,并且这些类型也可以被用来向编译器传达信息。

Julia 的目标是成为一门易用、强大和高效的编程语言。除了上述的优点,Julia 相对于其他类似系统的优势还包括:

  • 可免费使用,并且开源(遵从 MIT 协议);
  • 用户自定义的类型与内置的类型一样快速和紧凑;
  • 无须担心向量化代码的性能,拆解后的代码速度会很快;
  • 已为并行计算和分布式计算做了优化设计;
  • 拥有轻量级的“绿色”线程(也就是协程);
  • 拥有可选择使用但功能强大的类型系统;
  • 拥有针对数字和其他类型的转换、提升方法,并且是优雅和可扩展的;
  • 有效支持 Unicode,包括但不限于 UTF-8;
  • 可以直接调用 C 程序中的函数,无须额外封装或者使用特殊的 API;
  • 可以管理其他进程,强大如 Shell;
  • 拥有类似于 Lisp 的宏,以及其他的元编程工具。
赞(1)
未经允许不得转载:极客笔记 » Julia 简介
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Julia教程