wolfram 语言特性介绍

Standard

wolfram语言 出自mathematica ,这里翻译一篇wolfram语言特性的文章,以便感兴趣的朋友了解!

本文翻译自此文

  • 目的: 科学计算、编程,数据操作,但也是通用编程语言
  • 许可: 专有许可
  • Standard: defined by a single implementation
  • 离硬件的距离: 极其高层(垃圾收集,无显式引用(指针),最优化符号编程)
  • 平台 – 跨平台 (一些文件格式不支持).
  • 支持以下
    • Windows
    • Linux
    • Mac OS
    • 一些其他平台
  • 性能: 从与C的速度相仿到非常慢不定。依问题、使用的编程技术、编程者水平而定。对于特定的编程问题来说一个熟练的mathematica使用者能使性能达到C/C++的十分之一。
  • 核心执行模型: term-rewriting, infinite (fixed-point) evaluation
  • 编程范式: 多范式 – 基于规则、 函数式, 命令式、逻辑式
  • 与之相似的语言: Lisp, Prolog, APL
  • 类型系统: 弱动态类型 (untyped)
  • 组件系统和命名空间: 支持, through Mathematica contexts and packages.
  • 编译型/解释型: 解释型, 语言的一小部分也可以编译成二进制码和C (本地代码)
  • 能生成独立的可执行文件码?: 可编译的部分可以, 否则的话只能通过Mathematica Player来运行
  • 支持的数据结构: 不可变数据结构 不支持可变数据结构
  • 面向对象编程的支持: 不支持, 但有第三方面向对象的扩展包.
  • 元编程: 支持 – 把代码也视为数据, 可以执行自我测试, 代码生成等
  • 第三方库是否可用?: 有,但有限制
  • 并发模型: 粗粒度(parallel evaluation, a separate kernel launched for each available core, a number of high-level parallel programming primitives available), fine-grained for compiled code – through native threads and automatic parallelization available in Compile – but limited to the code amenable to Compile
  • FFI (外部函数接口): Yes. Can load external libraries (wrapper C code is needed) through LibraryLink.
  • 互操作性: 支持 C (MathLink/LibraryLink), Java (J/Link), .Net (.Net/Link)
  • 可否与数据库连接: 可以,通过databaselink连接 (uses JDBC internally).
  • 开发工具: 交互式基于单元的前端环境,带语法高亮。对于大工程有基于Eclipse的WolframWorkbench集成开发环境,支持分析器、调试器、单元测试,也支持混合项目开发(即Java/Mathematica)