代码开发主要包括编程语言、调试工具、版本管理工具、编译工具和集成开发环境 (IDE),其中所有上述工具都作为一个单独的软件应用程序耦合在一起。
这里提供了用于科学计算的各种编译器的链接,例如 FORTRAN、C、C++、Java 以及最近的 Python。
GNU 编译器套件 :GNU 旨在创建一个世界一流的优化编译器的项目。它适用于多种架构和不同的环境。目前 GCC 包含 C、C++、Objective C、GNU Fortran-95、Java 和 Ada 的前端,以及这些语言的库(libstdc++、libgcj 等)。
有关使用各种 GCC 编译器的手册,请查看 GCC 在线文档
g77 :GCC FORTRAN 77 前端。它是一个非常好的 FORTRAN77 编译器。但是,它没有 -r8 选项,该选项将程序编译为双精度。这可能是一个好的编译器设计理念,但在许多情况下,当将代码从 SUN / DEC / HP 工作站移植到 Linux 系统时会产生问题。g77 手册可在 Gcc 在线文档站点上找到。
gfortran。我很高兴通过邮件收到此链接。自从我迁移到使用 GNU C 编译器进行科学计算以来已经 3 年了,因为那时没有“真正免费”的 FORTRAN-95 编译器可用。我感谢 Paul Thomas 提供此链接。
g95。上面的 gfortran 和 g95 据说是来自同一个 CVS 树的分支。它有一个令人印象深刻的程序列表,这些程序可以使用此编译器编译和运行。
fort77 和 f2c:fort77 是一个 perl 程序,它透明地调用 f2c 命令(一个 Fortran 到 C 的转换器),因此它可以像真正的 Fortran 编译器一样使用。Fort77 可以用于编译 Fortran、C 和汇编代码,并且可以将代码与 f2c 库链接。如果您安装 fort77,您还需要安装 f2c 软件包。这没有“-r8”问题。您可以从上面的链接下载 fort77 和 f2c。
lush:一种面向对象的编程语言,它结合了解释型语言的灵活性和编译型语言的效率。它具有到数值库(GSL、LAPACK、BLAS)、图形库(OpenGL)的完整接口,这允许创建图形和 3D 动画以及许多其他听起来好得令人难以置信的功能。我还没有尝试过,但听起来很有希望。
Scientific Python:您可能希望探索 Python 以满足您的科学计算需求。Python 是一种解释型、交互式、面向对象的编程语言。它有许多用于数值计算、绘图、数据存储的扩展,并且与 Tk 结合使用,可以让您为您的代码开发非常好的 GUI。最令人兴奋的方面是它简化了编程,因为它几乎拥有任何东西的模块(向量、张量、变换、导数、线性代数、傅里叶变换、统计等)。您还可以从 Python 包装 C 和 Fortran 库。最后,如果您想编写自己的数值方案,您可能会发现 Python 更简单。还有到 netCDF(可移植二进制文件)、MPI 和 BSPlib(并行编程)的接口。
您可以在这里进一步探索 Python 在科学计算方面的应用
Scientific-Python:用于 Python 科学计算的模块集合。所有必要的模块都可以从这里下载为 tar 文件或 RPM 文件。维护者 Konrad HINSEN 还有一个关于 Python 科学计算的精彩教程。
SciPy:一个用于 Python 的科学工具开源库。它包括用于图形和绘图、优化、积分、特殊函数、信号和图像处理、遗传算法、ODE 求解器等的模块。
在本节中,给出了主要用于 GCC 和 FORTRAN 的调试工具的链接。据我所知,python 有一个内置的调试模块,但我没有使用过。调试器的目的是让您在程序执行时查看程序内部发生了什么,或者在程序崩溃时程序正在做什么。
Ftnchek: 一个 FORTRAN 检查器,旨在检测 Fortran 程序中编译器通常不会检测到的错误。因此,最好在您的 FORTRAN 程序编译无误后运行 ftnchek。它的目的是帮助用户查找语义错误。语义错误在 Fortran 语言中是合法的,但会造成浪费或可能导致不正确的操作。在线手册可用。该项目正在寻找志愿者将 ftnchek 升级到 Fortran 90 标准。
gdb :所有使用 GCC 支持的语言编写的程序都可以使用 gdb 进行调试,gdb 是一个出色的交互式命令行调试器。您可以使用 -g 选项编译您的程序,该选项会将调试信息插入到可执行文件中来编译您的代码。它可以启动您的程序,在指定条件和指定位置停止您的程序,检查程序停止时发生了什么。在具有多个级联调用各种函数的大型代码中,它可以回溯函数调用。您还可以下载文档《Debugging with GDB》和快速参考卡。
xxgdb: 它是 gdb 调试器的前端。对于 gdb 的初学者很有用,因为它将整个 gdb 命令以按钮的形式列出,并提供一个用于查看源代码的区域,您可以在其中通过单击鼠标来包含断点等,以及另一个用于查看调试结果的区域。
DDD: GNU 数据显示调试器,GNU DDD,是命令行调试器(如 GDB、DBX、WDB、Ladebug、JDB、XDB、Perl 调试器或 Python 调试器)的图形前端。除了“通常的”前端功能(如查看源代码文本)外,它还具有良好的交互式图形数据显示,其中数据结构显示为图形。请点击此链接获取 postscript / HTML / PDF 格式的 DDD 手册。
如果您从事任何认真的代码开发,那么花一些时间学习使用下面的版本控制工具之一(我使用的是 cvs ...)将是值得的。
并发版本系统 :CVS 是在 Linux 操作系统上运行的最流行的版本控制系统之一。流行的 Linux 项目(如 Apache、EGCS、GIMP 等)正在使用 CVS 来协调他们的工作……以上链接的 URL 是这样描述他们的努力的。
关于 CVS 的教程可在 Gentoo Linux 文档中找到,一本免费的 CVS 书籍可在此处获得
项目版本控制系统 :PRCS,项目版本控制系统,是一组工具(如 CVS)的前端,这些工具提供了一种将文件和目录集作为一个实体处理的方法,从而保留整个集合的连贯版本。PRCS 主要由 Paul N. Hilfinger 设计,并由 Luigi Semenzato 和 Josh MacDonald 提供输入和修改。PRCS 由 Josh MacDonald 编写和维护。它的目的与 SCCS、RCS 和 CVS 相似,但(至少根据其作者的说法)它比任何这些系统都简单得多。此页面是查找有关 PRCS 最新开发信息的地方。
Gbuild:gbuild 是用 Bourne shell 语言编写的脚本,旨在简化软件包维护,通过允许您自动化从 CVS 进行代码更新、编译以及构建软件包的 tar/rpms/srpms。gbuild 的某些功能所依赖的一些外部脚本是用 Perl 编写的。gbuild 在 GPL 下发布。
集成开发环境 (IDE) 对于构建代码非常有用,理想情况下,它们应配备所有上述工具(即编译器、调试器和版本控制工具)。除此之外,IDE 通常还提供 makefile 生成器、文档帮助、在线帮助手册等。
Kdeveloper :一个易于使用的 Linux C/C++ IDE(集成开发环境)。它支持 KDE/Qt、GNOME、纯 C 和 C++ 项目。该网站有很多文档……对于软件开发人员来说,这是一个高度可浏览的网站。具体来说,KDevelop 管理或提供
C++ 编程所需的所有开发工具,如编译器、链接器、automake 和 autoconf;KAppWizard,它生成完整的、随时可用的示例应用程序;类生成器,用于创建新类并将它们集成到当前项目中;文件管理,用于将源文件、头文件、文档等包含在项目中;使用 SGML 编写用户手册并自动生成具有 KDE 外观和感觉的 HTML 输出;为您的项目类自动生成基于 HTML 的 API 文档,并交叉引用使用的库;应用程序的国际化支持,允许翻译人员轻松地将他们的目标语言添加到项目中;KDevelop 还包括 WYSIWYG(所见即所得)的用户界面创建,带有内置的对话框编辑器;通过集成 KDbg 调试您的应用程序;使用 KIconEdit 编辑项目特定的像素图;通过根据您的个人需求将其添加到“工具”菜单中,包含您开发所需的任何其他程序。
VDKbuilder:VDKbuilder 是一种工具,可帮助程序员在集成环境中构建 GUI 界面、编辑、编译、链接和调试。使用 VDKBuilder 可以大大缩短开发时间,因为所有与 GUI 构建和信号处理相关的代码都会自动生成、维护和更新。它根据 GNU 通用公共许可证分发。访问该站点以下载该软件。