编程语言与软件工程2019isotc.iso.org
Fortran 2018 的新特性
The new features of Fortran 2018
进阶 · 约 45 分钟读完前置知识:Fortran 基础、编程语言标准常识、并行编程概念
导读
这篇论文介绍 Fortran 2018 标准的新特性和语言变化,属于对标准更新的系统梳理。评论特别提到现代 Fortran 语法已大幅演进,并且 2018 版删除了经典的 arithmetic IF。
HN 关注点:Fortran 的现代化程度、学习资源,以及经典语言特性被移除等标准演进问题。
HN 评论精选
这几条评论里:补充 2 亲历 1
亲历现代 Fortran 语法接近 Matlab,迁移容易;性能关键常在预分配内存,而非语言本身。
现代 FORTRAN 看起来更像 Matlab 而不是 FORTRAN 77。至少从 95 版以来,语法已经被彻底改过。有一阵我在把 Matlab 代码翻译成 FORTRAN,出乎意料地容易。但我在 Matlab 里对数组扩容太天真了;大部分速度收益(大约 2-3 个数量级)其实只要在 Matlab 中预分配内存就能获得。直到今天,我在 numpy 里还有把数组初始化为零的强迫症。
thanatropism查看英文原文
Modern FORTRAN looks more like Matlab than FORTRAN 77. The syntax has been completely overhauled since at least ‘95. For a while I was translating my Matlab codes to FORTRAN; it was surprisingly easy. But I was being too naive with array resizings in Matlab and most of the speed gain (which was like 2-3 orders of magnitude) could be achieved in Matlab itself by preallocating memory. To this day I have the nervous tick of initializing arrays with zeros even in numpy.
补充读者想了解 2019 年学习 Fortran 的资源和可读代码库。
HN 上的 Fortran 用户:2019 年入门 Fortran 最好的资源(在线资料、书籍等)有哪些?有没有适合通读的开源代码库推荐?
jsty查看英文原文
Fortran users of HN - what are the best resources (online / books / ...) to pick up Fortran in 2019? Are there any open source codebases you'd consider as good to read through?
补充Fortran 2018 移除经典 arithmetic IF,体现语言告别旧时代。
我注意到最显眼的一点是,他们从语言中删除了 arithmetic IF,这大概是经典 FORTRAN 最具代表性的特性之一。
fanf2查看英文原文
The most notable thing I spotted is they have deleted the arithmetic IF from the language, which must be one of the more characteristic features of classic FORTRAN.
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2019Hacker News 讨论帖173 分 · 53 评
同领域还值得读
Google 的软件工程(2017)
Software Engineering at Google (2017)
介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…
编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选Peter Naur:编程作为理论构建 (1985)
Peter Naur – Programming as Theory Building (1985)
Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…
编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选SciPy 1.0:Python 科学计算的基础算法
SciPy 1.0: fundamental algorithms for scientific computing in Python
这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…
编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选Lisp 的历史(1979)
History of Lisp (1979)
这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…
编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选使用 NumPy 进行数组编程
Array Programming with NumPy
这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。
编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选