• 1.摘要
  • 2.基本信息
  • 3.基本内容
  • 4.为何撰写本书
  • 5.本书的结构
  • 6.本书的读者
  • 7.致谢

Julia语言程序设计

魏坤著书籍

数据的不断累积、膨胀、延伸也引发了计算领域的深刻变化,而且数据的密集性和分布性也提出了大量的计算密集性和分布式要求。很多工业级的生产场景中,在要求开发高效率、维护低成本、运行高可靠的同时,还需要具备高性能的特点。此间,Julia语言诞生了。

《Julia语言程序设计》是2018年10月机械工业出版社出版的图书,作者是魏坤。

Julia的官方文档还算详细,但组织结构并不清晰,概念散乱各处,对新学者并不友好。为此,作者写就此书,将所得分享给大家,希望能以更条理清晰的方式展现Julia的特色,帮助大家更快、更好地熟悉Julia、掌握Julia,也让这门语言能更快更深入的传播。

为了能够让读者通过本书了解、认识、掌握Julia语言的基本概念并能付诸实践,作者反复地对掌握的资料进行了大量的梳理、调整,而且基于真实的运行环境,尽可能地为每个功能点提供相应的示例代码,以求准确、明晰地阐明各个要点。

基本信息

  • 中文名称

    Julia语言程序设计

  • 定价

    99

  • 出版社

    机械工业出版社

  • 出版时间

    2018年10月

  • 作者

    魏坤

基本内容

      起初,科学家为了避免低效的、简单的、重复的、单调的事情,比如反复的按一套公式计算一个结果等,于是发明了计算机。计算机其实是工业自动化的一个产物,可以说是工业化时代的巅峰代表。而当时人们怎么也不会预想到,计算机的发展,带来了互联网,而互联网导致了信息化时代的到来。如今,在数据蔓延、不断渗透的过程中,智能化已经代表了未来的发展方向。

      与此同时,数据的不断累积、膨胀、延伸也引发了计算领域的深刻变化,而且数据的密集性和分布性也提出了大量的计算密集性和分布式要求。很多工业级的生产场景中,在要求开发高效率、维护低成本、运行高可靠的同时,还需要具备高性能的特点。此间,Julia语言诞生了。

为何撰写本书

J      ulia借助于JIT动态解析器及其优秀的设计机制,在一些计算特性上能达到静态语言的性能,这是非常令人惊讶的,也是吸引笔者的地方。笔者在大数据挖掘与机器学习浸淫十数年,面对种类多样、数量巨大、计算逻辑复杂的各种问题,性能与开发效率一直都是极为关注的焦点。毕竟有限的生命不能浪费在低效的事情上。本浅尝而已,但却再无法舍弃,Julia语言的各种特性令笔者兴奋不已。

      几年之前我开始接触Julia,其自然快捷的编写感受,顺畅舒适的体验,与现在广为使用的Python很是相近。但更多的是,为科学与数值计算而生,原生的并发机制与分布式、云计算特性,简洁人性化的语法,还有媲美于静态语言的性能,Julia的所有这些表现都是笔者期待已久的。而今,日常的数据分析和前期数据处理笔者都会首选Julia语言。

      为了能让喜爱的Julia语言能够更快普及,能进入首选的工业级技术架构,笔者不揣浅陋,捉笔从文,写就此书,以求与各位爱好者共同进步。也期冀Julia能成为一个写着简单、读着愉悦、迁移方便、应用广泛、性能强劲的通用编程语言,让我们在开发工作中不在纠结于语言的选择。

      Julia的官方文档还算详细,但组织结构并不清晰,概念散乱各处,对新学者并不友好。为此,笔者愿意以此书为契机,将所得分享给大家,希望能以更条理清晰的方式展现Julia的特色,帮助大家更快、更好地熟悉Julia、掌握Julia,也让这门语言能更快更深入的传播。

本书的结构

      Julia语言不仅提供了灵活、多样、简洁的语法,更有着很多符合实际开发需求的强大特性,也充满了很多人性化的设计。它不仅支持各种类型的声明定义、贴近于数学概念的计算规则,还在常见的高维数组、字符串处理、国际化支持、元编程等方面提供了强大的支持。尤其是在并行计算、混合编程等方面更是独具特色,原生地提供了良好的机制,使得这方面的编程工作变得极为快捷便利。

      为了能够让读者通过本书了解、认识、掌握Julia语言的基本概念并能付诸实践,笔者反复地对掌握的资料进行了大量的梳理、调整,而且基于真实的运行环境,尽可能地为每个功能点提供相应的示例代码,以求准确、明晰地阐明各个要点。

      在本书的第1章,会介绍Julia语言的基本情况,同时会重点介绍Julia运行环境的使用方法。为了能够帮助读者在后续的学习中理解Julia语言的特点,本书特意在第2章就编程语言的基础概念进行了简单的介绍,不过对于有经验的读者可做选读内容。

      从第3章起,本书便首先从包括有理数、复数在内的基本数值系统开始详细地介绍Julia语言的基本语法。

      随后的第4章会基于前一章介绍的各种数值类型介绍Julia的各种运算符使用规则。

      在第5章会介绍经典的判断、循环逻辑,还有Julia中较为特别的复合表达式。

      第6章的内容是类型系统,可以说是Julia语言的精髓,包括抽象类型、元类型及复合类型等,都有着Julia自己的特点。我们也能够从该章中深刻地理解,为何在Julia中一切皆对象。另外,本章还会重点介绍类型参数化的内容,这也是Julia灵活适应各种应用场景的基础。本章介绍的元组、字典、集合等结构也是我们开发Julia程序中常会用到的数集。

      而第7章所介绍的函数与方法,不但是Julia多态分发机制的基础,也是Julia博采众长的精华。

      在第8章,将介绍Julia之所以成为数值计算语言的核心优势特性——多维数组。数组是科学计算中最为常见的数据结构,但能够以统一的结构表达向量、矩阵、张量甚至高维空间的机制,却是Julia的特色。

      第9章及第10章会介绍开发中经常遇到的字符串与日期处理方法,包括常见的正则表达式、时间计算等。