Pharo ( https://pharo.org/ ) 是一种现代动态类型反射式纯面向对象语言。它受到 Smalltalk 的启发。其非常规语法模仿自然语言:参数不是分组放在末尾的括号中,而是分组放在消息内,从而使表达式看起来像句子。此外,所有控制流操作都表示为消息,程序员可以自由定义新的消息,并以此为其任务定义领域特定语言。在本技术报告中,我们讨论了人们使用 Pharo 编程语言编写的源代码的统计特性。我们介绍了从 Pharo 生态系统的项目中选取的源代码的分析方法和工具。通过分析 50 个项目(包含 824 个包、13,935 个类和 151,717 种方法),我们回答了诸如“方法的典型长度是多少?”或“源代码中文字占多少百分比?”等问题。
摘要 与许多其他现代编程语言一样,Pharo 将其应用扩展到计算要求高的领域,例如机器学习、大数据、加密货币等。这就需要快速的数值计算库。在这项工作中,我们建议通过外部函数接口 (FFI) 调用高度优化的外部库(例如 LAPACK 或 BLAS)中的例程来加速低级计算。作为概念验证,我们基于 LAPACK 的 DGELSD 例程构建了线性回归的原型实现。使用三个不同大小的基准数据集,我们将我们的算法的执行时间与纯 Pharo 实现和 scikit-learn(一种流行的机器学习 Python 库)进行比较。我们表明 LAPACK&Pharo 比纯 Pharo 快 2103 倍。我们还表明,scikit-learn 比我们的原型快 8-5 倍,具体取决于数据的大小。最后,我们证明纯 Pharo 比纯 Python 中的等效实现快 15 倍。这些发现可以为未来为 Pharo 构建快速数值库并进一步在更高级的库(如 pharo-ai)中使用它们奠定基础。
如果没有我们与宝贵的合作伙伴和利益相关者之间的支持关系,公司多年来的运营成功是不可能实现的。我们的资产主要通过 JOC 运营,但我们积极参与 JOC 管理,并与合作伙伴合作,以确定互利共赢的领域。长期在国内的存在以及专注于与东道国政府和监管机构建立关系,为集团、我们的合作伙伴、JOC 和当地经济带来了许多成功。我们还与我们宝贵的贷款人群体保持良好的关系,以确保在不确定时期的财务稳定。
摘要 与许多其他现代编程语言一样,Pharo 将其应用扩展到计算要求高的领域,例如机器学习、大数据、加密货币等。这就需要快速的数值计算库。在这项工作中,我们建议通过外部函数接口 (FFI) 调用高度优化的外部库(例如 LAPACK 或 BLAS)中的例程来加速低级计算。作为概念验证,我们基于 LAPACK 的 DGELSD 例程构建了线性回归的原型实现。使用三个不同大小的基准数据集,我们将我们的算法的执行时间与纯 Pharo 实现和 scikit-learn(一种流行的机器学习 Python 库)进行比较。我们表明 LAPACK&Pharo 比纯 Pharo 快 2103 倍。我们还表明,scikit-learn 比我们的原型快 8-5 倍,具体取决于数据的大小。最后,我们证明纯 Pharo 比纯 Python 中的等效实现快 15 倍。这些发现可以为未来为 Pharo 构建快速数值库并进一步在更高级的库(如 pharo-ai)中使用它们奠定基础。